供應商測試套件 (VTS) 和基礎架構

Android 供應商測試套件 (VTS) 可針對下列項目進行全面測試:

  • 核心
  • 硬體抽象層 (HAL)

VTS 會在桌上型電腦上執行,並直接在已連接的裝置或模擬器上執行測試案例。VTS 與 CTS 類似,是自動化測試套件,會使用下列主要軟體元件:

  • VTS Trade Federation 測試控管工具會在主體機器上執行,並管理測試執行。這項工具可讓您在多個測試裝置 (DUT) 上設定區塊處理。您也可以使用套件重試功能僅重試失敗情形,而非整個測試套件,大幅縮短重新執行的時間。
  • 個別測試案例會在 DUT 上執行。測試案例可以是 GTest 樣式的測試、核心測試,或是以 Java 編寫的 JUnit 樣式測試。

測試類型

以下各節將說明各種 VTS 測試。

GTest 樣式測試

VTS 中的大多數測試都是 GTest 樣式的測試,用於檢查 HAL 實作方式。這項測試是以 C++ 編寫,並在裝置上執行。一般 VTS GTest 會對給定介面的每個例項進行迴迭,並針對該例項執行所有測試案例。如需範例,請參閱 VtsHalHealthStorageV1_0TargetTest

Linux 核心測試

  • Kselftest (external/linux-kselftest) 是 tools/testing/selftests 中 Linux 核心存放區所包含的測試集合,其中 23 項包含在 VTS 中,可在 ARM 上執行。

  • Linux 測試專案 (external/ltp) 可驗證 Linux 核心的可靠性、穩健性和穩定性。

JUnit 風格測試

VTS 中少數由主機控管的測試為 JUnit 樣式測試,例如 KernelApiSysfsTest。Java 測試會以 BaseHostJUnit4Test 的形式實作,與測試裝置相關聯,並可執行殼層指令來執行驗證作業。

獨立 Python3 測試

部分 VTS 測試 (例如 vts_treble_sys_prop_test) 是使用 Python 3 編寫。以 Python 為基礎的測試會以 unittest.TestCase 的形式實作,而每個測試案例都可以透過殼層指令與裝置互動。