Android平台測試

AOSP 提供了多種工具和測試套件來測試實作的各個部分。在繼續本部分之前,您應該熟悉以下術語:

Android 相容裝置
可以運行第三方開發人員使用 Android SDK 和 NDK 編寫的任何第三方應用程式的裝置。 Android 相容裝置必須遵守相容性定義文件 (CDD)的要求並通過相容性測試套件 (CTS) 。 Android 相容設備有資格參與 Android 生態系統,其中包括 Google Play 商店的潛在許可、 Google 行動服務 (GMS)應用程式和 API 套件的潛在許可以及 Android 商標的使用。歡迎任何人使用 Android 原始碼,但要被視為 Android 生態系統的一部分,裝置必須與 Android 相容。
人工製品
工件是與建置相關的日誌,可實現本機故障排除。
相容性定義文檔 (CDD)
枚舉 Android 相容裝置的軟體和硬體要求的文件。
相容性測試套件 (CTS)

免費的商業級測試套件,可作為二進位或 AOSP 原始碼下載。 CTS 是一組單元測試,旨在整合到您的日常工作流程中。 CTS 的目的是揭示不相容性,並確保軟體在整個開發過程中保持相容。

CTS 和平台測試並不互相排斥。以下是一些一般準則:

  • 如果測試斷言框架 API 功能或行為的正確性,並且應在 OEM 合作夥伴之間強制執行,則應在 CTS 中進行。
  • 如果測試旨在捕獲平台開發期間的回歸,並且可能需要特權權限才能執行,並且可能依賴實作細節(如 AOSP 中發布的),那麼它應該是平台測試。
Google行動服務(GMS)

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

谷歌測試(GTest)

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

儀器儀表測試

插樁測試提供了一個由am instrument命令啟動的特殊測試執行環境,其中目標應用程式進程使用基本應用程式上下文重新啟動並初始化,並且插樁執行緒在應用程式進程虛擬機內啟動。 CTS 包含儀器測試。

日誌貓

Logcat 是一個命令列工具,可建立系統訊息日誌,包括裝置拋出錯誤時的堆疊追蹤以及您使用Log類別從應用程式寫入的訊息。

記錄

日誌記錄是指使用日誌來追蹤電腦系統事件,例如錯誤。由於 Logcat 工具中組合使用了多種標準,因此 Android 中的日誌記錄非常複雜。

提交後測試

當新補丁提交到公共核心分支時,會執行 Android 提交後測試。輸入aosp_kernel作為部分分支名稱,您可以看到具有可用結果的核心分支清單。例如, android-mainline的結果可以在https://ci.android.com/builds/branches/aosp_kernel-common-android-mainline/grid找到。

預提交測試

提交前測試用於防止將故障引入通用核心。

貿易聯盟

Trade Federation,也稱為 Tradefed,是一個持續測試框架,設計用於在 Android 裝置上執行測試。例如,Tradefed 用於執行相容性測試套件和供應商測試套件測試。

供應商測試套件 (VTS)

Android 供應商測試套件 (VTS) 提供了廣泛的 Android 測試功能,促進測試驅動的開發流程,並自動化 HAL 和作業系統核心測試。

平台測試類型

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

  • (類型 1)使用 Android 框架練習框架 API。正在執行的具體 API 可包括:
    • 用於第三方應用程式的公共 API
    • 用於特權應用程式的隱藏 API,即係統 API 或私有 API( @hide , or protected , package private`)
  • (類型2)直接使用原始綁定器或IPC代理程式呼叫Android系統服務。
  • (類型 3)使用低階 API 或 IPC 介面直接與 HAL 互動。

類型 1 和類型 2 測試通常是儀器測試,而類型 3 測試通常是 GTest。

下一步是什麼?

以下是您可能會閱讀的後續文件的清單: