Die Android Vendor Test Suite (VTS) bietet umfassende Tests zu Folgendem:
- Kernel
- Hardware-Abstraktionsschicht (HAL)
VTS läuft auf einem Desktop-Rechner und führt Testfälle direkt auf angeschlossenen Geräten oder auf den Emulatoren aus. Ähnlich wie CTS ist VTS eine automatisierte Testsuite, die die folgenden Hauptsoftwarekomponenten verwendet.
- Die Testumgebung der VTS Trade Federation läuft auf Ihrem Host-Rechner und verwaltet die Testausführung. Es bietet die Möglichkeit, Sharding über mehrere zu testende Geräte (DUTs) hinweg zu konfigurieren . Sie können die Suite-Wiederholungsfunktion auch verwenden, um nur die Fehler und nicht die gesamten Testsuiten erneut zu versuchen, was die Zeit für die erneute Ausführung erheblich verkürzt.
- Einzelne Testfälle werden auf dem DUT ausgeführt. Die Testfälle können Tests im gtest-Stil, Kernel-Tests oder in Java geschriebene Tests im JUnit-Stil sein.
Arten von Tests
Tests im gtest-Stil
Die meisten Tests in VTS sind Tests im gtest-Stil, die die HAL-Implementierung überprüfen. Der Test ist in C++ geschrieben und läuft auf dem Gerät. Ein typischer VTS-Gtest durchläuft jede Instanz einer bestimmten Schnittstelle und führt alle Testfälle dafür 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/selftests
enthalten sind, von denen 23 in VTS zur Ausführung auf ARM enthalten sind.Die Tests des Linux Test Project ( external/ltp ) validieren die Zuverlässigkeit, Robustheit und Stabilität des Linux-Kernels.
Tests im JUnit-Stil
Eine kleine Reihe hostgesteuerter Tests in VTS sind Tests im JUnit-Stil, zum Beispiel KernelApiSysfsTest
. Die Java-Tests werden als BaseHostJUnit4Test
implementiert, das einem Testgerät zugeordnet ist und Shell-Befehle ausführen kann, um eine Validierung durchzuführen.
Eigenständige Python3-Tests
Einige VTS-Tests, wie z. B. vts_treble_sys_prop_test
, sind in Python3 geschrieben. Die Python-basierten Tests werden als unittest.TestCase
implementiert und jeder Testfall kann über Shell-Befehle mit dem Gerät interagieren.
Die Android Vendor Test Suite (VTS) bietet umfassende Tests zu Folgendem:
- Kernel
- Hardware-Abstraktionsschicht (HAL)
VTS läuft auf einem Desktop-Rechner und führt Testfälle direkt auf angeschlossenen Geräten oder auf den Emulatoren aus. Ähnlich wie CTS ist VTS eine automatisierte Testsuite, die die folgenden Hauptsoftwarekomponenten verwendet.
- Die Testumgebung der VTS Trade Federation läuft auf Ihrem Host-Rechner und verwaltet die Testausführung. Es bietet die Möglichkeit, Sharding über mehrere zu testende Geräte (DUTs) hinweg zu konfigurieren . Sie können die Suite-Wiederholungsfunktion auch verwenden, um nur die Fehler und nicht die gesamten Testsuiten erneut zu versuchen, was die Zeit für die erneute Ausführung erheblich verkürzt.
- Einzelne Testfälle werden auf dem DUT ausgeführt. Die Testfälle können Tests im gtest-Stil, Kernel-Tests oder in Java geschriebene Tests im JUnit-Stil sein.
Arten von Tests
Tests im gtest-Stil
Die meisten Tests in VTS sind Tests im gtest-Stil, die die HAL-Implementierung überprüfen. Der Test ist in C++ geschrieben und läuft auf dem Gerät. Ein typischer VTS-Gtest durchläuft jede Instanz einer bestimmten Schnittstelle und führt alle Testfälle dafür 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/selftests
enthalten sind, von denen 23 in VTS zur Ausführung auf ARM enthalten sind.Die Tests des Linux Test Project ( external/ltp ) validieren die Zuverlässigkeit, Robustheit und Stabilität des Linux-Kernels.
Tests im JUnit-Stil
Eine kleine Reihe hostgesteuerter Tests in VTS sind Tests im JUnit-Stil, zum Beispiel KernelApiSysfsTest
. Die Java-Tests werden als BaseHostJUnit4Test
implementiert, das einem Testgerät zugeordnet ist und Shell-Befehle ausführen kann, um eine Validierung durchzuführen.
Eigenständige Python3-Tests
Einige VTS-Tests, wie z. B. vts_treble_sys_prop_test
, sind in Python3 geschrieben. Die Python-basierten Tests werden als unittest.TestCase
implementiert und jeder Testfall kann über Shell-Befehle mit dem Gerät interagieren.