Android Vendor Test Suite (VTS) zapewnia do szczegółowych testów:
- Jądro
- Sprzętowa warstwa abstrakcji (HAL)
VTS działa na na komputerze i uruchamia przypadki testowe bezpośrednio na podłączonych urządzeniach. za pomocą emulatorów. Podobnie jak w przypadku CTS, wskaźnik VTS to z automatycznym zestawem testów, korzysta z wymienionych poniżej głównych komponentów oprogramowania.
- Federacja handlowa VTS. jarzmo testowe działa na hoście i zarządza testem Zapewnia możliwość Konfigurowanie fragmentacji na wielu testowanych urządzeniach. Możesz też użyć the Suite Ponów aby ponawiać próby tylko błędów, a nie całego zestawu testów, co znacznie skraca czas ponownego wykonywania.
- Na urządzeniu DUT wykonywane są osobne przypadki testowe. Przypadki testowe mogą to być testy w stylu gtest, testy jądra lub testy w stylu JUnit Java.
Rodzaje testów
W poniższych sekcjach opisano różne typy testów VTS.
testy w stylu gtest
Większość testów w VTS to testy w stylu gtest, które sprawdzają wartość HAL
implementacji. Test jest
w języku C++ i działa na urządzeniu. Typowy test gtest VTS powtarza się
w każdej instancji danego interfejsu i uruchamia wszystkie przypadki testowe
i ochrony danych. Więcej informacji: VtsHalHealthStorageV1_0TargetTest
.
Testy jądra systemu Linux
Kselftest (external/linux-kselftest), to zbiór testów zawartych w repozytorium jądra systemu Linux w środowisku
tools/testing/selftests
, z których 23 jest uwzględnionych w VTS przeznaczonych do działania w architekturze ARM.Projekt testowy Linuksa (external/ltp) w celu sprawdzenia niezawodności, wytrzymałości i stabilności jądra systemu Linux.
Testy w stylu JUnit
W VTS dostępny jest niewielki zestaw testów opartych na hoście, na przykład w stylu JUnit
KernelApiSysfsTest
Testy w Javie są implementowane w taki sposób,
BaseHostJUnit4Test
,
które jest powiązane z urządzeniem testowym i może uruchamiać powłokę
do weryfikacji.
Samodzielne testy Pythona3
Niektóre testy VTS, takie jak
vts_treble_sys_prop_test
są napisane w języku Python3.
Testy oparte na Pythonie są wdrażane jako unittest.TestCase
, a każdy test
umożliwia interakcję z urządzeniem za pomocą poleceń powłoki.