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