Die Android Vendor Test Suite (VTS) bietet umfangreiche Tests für Folgendes:
- Kernel
- Hardwareabstraktionsschicht (HAL)
VTS wird auf einem Desktopcomputer ausgeführt und führt Testläufe direkt auf angeschlossenen Geräten oder auf den Emulatoren aus. Ähnlich wie CTS ist VTS eine automatisierte Testsuite, die die folgenden wichtigen Softwarekomponenten verwendet:
- Das VTS-Testharness Trade Federation wird auf Ihrem Hostcomputer ausgeführt und verwaltet die Testausführung. Damit können Sie Sharding auf mehreren zu testenden Geräten (DUTs) konfigurieren. Sie können auch die Funktion Suite Retry verwenden, um nur die fehlgeschlagenen Tests und nicht die gesamten Testsuiten noch einmal auszuführen. Dadurch wird die Ausführungszeit erheblich verkürzt.
- Einzelne Testläufe werden auf dem DUT ausgeführt. Die Testläufe können GTest-, Kernel- oder JUnit-Tests sein, die in Java geschrieben wurden.
Testtypen
Die verschiedenen Arten von VTS-Tests werden in den folgenden Abschnitten beschrieben.
Tests im GTest-Stil
Die meisten Tests in VTS sind GTest-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 Testläufe für sie aus. Ein Beispiel finden Sie unter VtsHalHealthStorageV1_0TargetTest.
Linux-Kernel-Tests
Kselftest (external/linux-kselftest) ist eine Sammlung von Tests, die im Linux-Kernel-Repository unter
tools/testing/selftestsenthalten sind. 23 davon sind in VTS enthalten und werden auf ARM ausgeführt.Mit den Tests des Linux Test Project (external/ltp) werden die Zuverlässigkeit, Robustheit und Stabilität des Linux-Kernels validiert.
Tests im JUnit-Stil
Eine kleine Gruppe von hostgesteuerten Tests in VTS sind Tests im JUnit-Stil, z. B. KernelApiSysfsTest.
Die Java-Tests werden als BaseHostJUnit4Test implementiert, die mit einem Testgerät verknüpft ist und Shell-Befehle zur Validierung ausführen kann.
Eigenständige Python3-Tests
Einige VTS-Tests, z. B. vts_treble_sys_prop_test, werden in Python3 geschrieben. Die Python-basierten Tests werden als unittest.TestCase implementiert und jeder Testlauf kann über Shell-Befehle mit dem Gerät interagieren.