Die Android Vendor Test Suite (VTS) bietet umfangreiche Tests für Folgendes:
- Kernel
- Hardware-Abstraktionsschicht (HAL)
VTS wird auf einem Desktop-Computer ausgeführt und führt Testfälle direkt auf angeschlossenen Geräten oder auf den Emulatoren aus. Ähnlich wie die CTS ist die VTS eine automatisierte Testsuite, die die folgenden wichtigen Softwarekomponenten verwendet:
- Der VTS-Testbereich wird auf Ihrem Hostcomputer ausgeführt und verwaltet die Testausführung. Sie bietet die Möglichkeit, für mehrere zu testende Geräte (DUTs) die Fragmentierung zu konfigurieren. Mit der Funktion Suite Retry können Sie auch nur die fehlgeschlagenen Tests und nicht die gesamten Test-Suites noch einmal ausführen. Dadurch wird die Wiedergabezeit erheblich verkürzt.
- Einzelne Testfälle werden auf dem DUT ausgeführt. Die Testfälle können GTest-Tests, Kernel-Tests oder JUnit-Tests in Java sein.
Testtypen
In den folgenden Abschnitten werden die verschiedenen Arten von VTS-Tests beschrieben.
Tests im GTest-Stil
Die meisten VTS-Tests sind GTest-ähnliche Tests, mit denen die HAL-Implementierung geprüft wird. Der Test ist in C++ geschrieben und wird auf dem Gerät ausgeführt. Ein typischer VTS-GTest durchläuft jede Instanz einer bestimmten Schnittstelle und führt alle Testfälle darauf aus. Ein Beispiel finden Sie unter VtsHalHealthStorageV1_0TargetTest
.
Linux-Kerneltests
Kselftest (external/linux-kselftest) ist eine Sammlung von Tests, die im Linux-Kernel-Repository unter
tools/testing/selftests
enthalten sind. Davon sind 23 im VTS enthalten, um auf ARM-Prozessoren ausgeführt zu werden.Mit dem Linux Test Project (external/ltp) werden die Zuverlässigkeit, Robustheit und Stabilität des Linux-Kernels überprüft.
JUnit-Tests
Einige hostbasierte Tests in der VTS sind JUnit-Tests, z. B. KernelApiSysfsTest
.
Die Java-Tests werden als BaseHostJUnit4Test
implementiert, das einem Testgerät zugeordnet ist und Shell-Befehle zur Validierung ausführen kann.
Eigenständige Python 3-Tests
Einige VTS-Tests, z. B. vts_treble_sys_prop_test
, sind in Python 3 geschrieben. Die Python-basierten Tests werden als unittest.TestCase
implementiert und jeder Testfall kann über Shell-Befehle mit dem Gerät interagieren.