安卓平台測試

此內容面向 Android 平台開發人員。在了解如何在 Android 平台上進行測試之前,請參閱Android 平台架構的概述。

然後深入研究本節中可用的精確技術,例如供應商測試套件 (VTS)及其無數的視頻和代碼實驗室教程

另請注意可用於檢測和強化設備以抵禦漏洞的特定安全測試機制。

對於應用程序測試,請從測試基礎開始,並使用提供的示例進行Android 測試代碼實驗室

最後,請注意基本的提交前測試可以通過Repo Hooks提供,可以在繼續之前運行 linter、檢查格式和触發單元測試,例如上傳提交。請注意,這些鉤子默認情況下是禁用的。有關詳細信息,請參閱Repo Hooks介紹。

測試什麼以及如何測試

平台測試通常與一個或多個 Android 系統服務或硬件抽象層 (HAL) 層交互,測試被測對象的功能,並斷言測試結果的正確性。

因此,平台測試可能:

  1. 通過應用程序框架練習框架 API;正在執行的特定 API 可能包括:
    • 用於第三方應用程序的公共 API
    • 用於特權應用程序的隱藏 API,即係統 API
    • 私有 API(@hide 或受保護的包私有)
  2. 直接通過原始 binder/IPC 代理調用 Android 系統服務
  3. 通過低級 API 或 IPC 接口直接與 HAL 交互

類型 1 和 2 通常編寫為插裝測試,而類型 3 通常編寫為GTest

要了解更多信息,請參閱我們的端到端示例:

熟悉這些工具,因為它們是 Android 測試所固有的。

兼容性測試套件 (CTS)

Android 兼容性測試套件是一套不同類型的測試,用於確保 Android 框架實現跨 OEM 合作夥伴和跨平台版本的兼容性。該套件還包括儀器測試和 GTest 框架。

CTS 和平台測試不是相互排斥的,這裡有一些通用指南:

  • 如果測試斷言框架 API 功能/行為的正確性,並且應該在 OEM 合作夥伴之間強制執行,則它應該在 CTS 中
  • 如果測試旨在在平台開發週期中捕獲回歸,並且可能需要特權權限才能執行,並且可能取決於實現細節(如 AOSP 中發布的那樣),則它應該只是平台測試

供應商測試套件 (VTS)

供應商測試套件(VTS) 可自動執行 HAL 和操作系統內核測試。要使用 VTS 測試內置 Android 系統實現,請設置測試環境,然後使用 VTS 計劃測試補丁。

貿易聯盟測試基礎設施

Trade Federation (tradefed 或簡稱 TF)是一個持續測試框架,專為在 Android 設備上運行測試而設計。 TF 可以在本地、在您的辦公桌上、在您的平台結帳中運行功能測試。在 TF 中運行測試需要兩個文件,一個 java 測試源和一個 XML 配置。有關示例,請參見RebootTest.javareboot.xml

調試

調試部分總結了在開發平台級功能時用於調試、跟踪和分析內置 Android 平台代碼的有用工具和相關命令。