Android ベンダー テストスイート(VTS)には、以下に関する幅広いテストが用意されています。
- カーネル
- Hardware Abstraction Layer(HAL)
VTS は、デスクトップ マシン上で動作し、接続されたデバイスまたはエミュレータで直接テストケースを実行します。CTS と同じように、VTS は、次の主要ソフトウェア コンポーネントを使用する自動テストスイートです。
- VTS Trade Federation テストハーネス: ホストマシン上で実行され、テストの実行を管理します。複数のテスト対象デバイス(DUT)でシャーディングを設定することができます。また、スイート リトライ機能を使用して、テストスイート全体ではなく不合格となった部分のみを再試行し、再実行時間を大幅に短縮できます。
- 個々のテストケース: DUT で実行されます。テストケースは、Java で記述された GTest スタイルのテスト、カーネルテスト、または JUnit スタイルのテストです。
テストの種類
以下のセクションでは、VTS テストのさまざまなタイプについて説明します。
GTest スタイルのテスト
VTS のほとんどのテストは、HAL 実装をチェックする GTest スタイルのテストです。テストは C++ で記述され、デバイス上で実行されます。一般的な VTS GTest では、特定のインターフェースの各インスタンスに対して、すべてのテストケースを実行します。例として VtsHalHealthStorageV1_0TargetTest
を参照してください。
Linux カーネルのテスト
Kselftest(external/linux-kselftest)は、
tools/testing/selftests
の Linux カーネル リポジトリに含まれるテストの集まりであり、そのうちの 23 個が ARM で実行する VTS に含まれています。Linux テスト プロジェクト(external/ltp)のテストは、Linux カーネルの信頼性、堅牢性、安定性を検証します。
JUnit スタイルのテスト
VTS のホスト駆動型テストには、JUnit スタイルのテストの小規模なセットが含まれています(例: KernelApiSysfsTest
)。Java テストは BaseHostJUnit4Test
として実装されます。これはテストデバイスに関連付けられ、シェルコマンドで検証を実行できます。
スタンドアロン Python3 テスト
vts_treble_sys_prop_test
などの一部の VTS テストは Python3 で記述されています。Python ベースのテストは unittest.TestCase
として実装され、各テストケースはシェルコマンドによってデバイスとやり取りできます。