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。

後續步驟

您可以參閱下列文件清單,瞭解詳細資訊: