Android 平台測試

Android 開放原始碼計畫 (AOSP) 提供多種工具和測試套件,可用於測試實作內容的各個部分。使用本節的頁面前,請先熟悉下列術語:

Android 相容裝置
可執行任何由第三方開發人員使用 Android SDK 和 NDK 編寫的第三方應用程式的裝置。與 Android 相容的裝置必須遵守相容性定義說明文件 (CDD) 的規定,並通過相容性測試套件 (CTS) 測試。支援 Android 的裝置可參與 Android 生態系統,包括 Google Play 的潛在授權、Google 行動服務 (GMS) 應用程式和 API 套件的潛在授權,以及 Android 商標的使用權。任何人都可以使用 Android 原始碼,但裝置必須與 Android 相容,才能算是 Android 生態系統的一部分。
成果
建構相關記錄,可用於本機疑難排解。
相容性定義文件 (CDD)
這份文件列出 Android 相容裝置的軟硬體需求。
Compatibility Test Suite (CTS)

免費的商業級測試套件,可下載為 AOSP 中的二進位檔或來源。CTS 是一組單元測試,可整合至您的日常工作流程。CTS 的用意是找出不相容性問題,並確保軟體在整個開發過程中保持相容性。

CTS 和平台測試並非互斥。以下列出一些一般準則:

  • 如果測試是驗證架構 API 函式或行為的正確性,且應在所有原始設備製造商 (OEM) 合作夥伴中強制執行,則應在 CTS 中進行測試。
  • 如果測試目的是在平台開發期間找出回歸現象,且可能需要特殊權限才能執行,並且可能會依實作細節 (如 AOSP 中發布的內容) 而異,那麼應視為平台測試。
Google 行動服務 (GMS)

可在裝置上預先安裝的 Google 應用程式和 API 集合。

GoogleTest (GTest)

C++ 測試和模擬架構。GTest 二進位檔通常會存取較低層級的抽象層,或針對各種系統服務執行原始 IPC。GTest 的測試方法通常會與要測試的服務緊密結合。CTS 包含 GTest 架構。

檢測設備測試

am instrument 指令啟動的特殊測試執行環境,其中會重新啟動目標應用程式程序,並使用基本應用程式內容進行初始化,並在應用程式程序虛擬機器中啟動檢測執行緒。CTS 包含檢測設備測試。

Logcat

這是一種指令列工具,可建立系統訊息記錄,包括裝置擲回錯誤時的堆疊追蹤,以及您使用 Log 類別在應用程式寫入的訊息。

記錄

使用記錄追蹤電腦系統事件 (例如錯誤)。由於 Logcat 工具會結合多種標準,因此在 Android 中記錄資料相當複雜。

postsubmit test

當新的修補程式提交至通用核心分支時,系統會執行的 Android 測試。輸入 aosp_kernel 做為部分分支名稱,即可查看可用結果的核心分支清單。舉例來說,您可以前往 https://ci.android.com/builds/branches/aosp_kernel-common-android-mainline/grid 查看 android-mainline 的結果。

presubmit test

這項測試可避免在常見核心中引入失敗。

Trade Federation

也稱為 Tradefed,這是專為在 Android 裝置上執行測試而設計的持續測試架構。舉例來說,Tradefed 可用於執行 Compatibility Test Suite 和供應商 Test Suite 測試。

供應商測試套件 (VTS)

一組 Android 測試的廣泛功能,可促進以測試為導向的開發程序,並自動執行硬體抽象層 (HAL) 和 OS 核心測試。

平台測試類型

平台測試通常會與一或多個 Android 系統服務或 HAL 層互動,測試測試對象的功能,並斷言測試結果是否正確。平台測試可能會:

  • (類型 1) 使用 Android 架構的練習架構 API。執行的特定 API 可能包括:
    • 供第三方應用程式使用的公用 API
    • 隱藏的 API,適用於特權應用程式,也就是系統 API 或私人 API (@hideprotectedpackage private)
  • (類型 2) 直接使用原始 Binder 或 IPC 代理程式叫用 Android 系統服務。
  • (類型 3) 使用低階 API 或 IPC 介面,直接與 HAL 互動。

類型 1 和 2 的測試通常是檢測設備測試,而類型 3 的測試通常是 GTest。

後續步驟

以下是您可以參考的文件清單,其中包含更多詳細資訊: