Pakiet Android Vendor Test Suite (VTS) umożliwia przeprowadzenie kompleksowych testów:
- jądra,
- warstwy abstrakcji sprzętowej (HAL).
VTS działa na komputerze i wykonuje elementy testowania bezpośrednio na podłączonych urządzeniach lub emulatorach. Podobnie jak CTS, VTS to zautomatyzowany zestaw testów, który korzysta z tych głównych komponentów oprogramowania:
- Platforma testowa VTS Trade Federation działa na komputerze hosta i zarządza wykonywaniem testów. Umożliwia konfigurację fragmentacji na wielu testowanych urządzeniach (DUT). Możesz też użyć funkcji ponawiania testów , aby ponowić tylko te, które się nie powiodły, a nie całe pakiety testów. Dzięki temu czas ponownego uruchomienia jest znacznie krótszy.
- Poszczególne elementy testowania są wykonywane na DUT. Elementy testowania mogą być testami w stylu GTest, testami jądra lub testami w stylu JUnit napisanymi w języku Java.
Typy testów
Różne typy testów VTS są opisane w kolejnych sekcjach.
Testy w stylu GTest
Większość testów w VTS to testy w stylu GTest, które sprawdzają implementację HAL. Test jest napisany w języku C++ i działa na urządzeniu. Typowy test VTS GTest iteruje przez każdą instancję danego interfejsu i uruchamia wszystkie elementy testowania. Przykład znajdziesz w sekcji VtsHalHealthStorageV1_0TargetTest.
Testy jądra Linuksa
Kselftest (external/linux-kselftest) to zbiór testów zawartych w repozytorium jądra Linuksa w
tools/testing/selftests. 23 z nich są zawarte w VTS i działają na ARM.Testy Linux Test Project (external/ltp) sprawdzają niezawodność, odporność i stabilność jądra Linuksa.
Testy w stylu JUnit
Niewielki zestaw testów sterowanych przez hosta w VTS to testy w stylu JUnit, np.
KernelApiSysfsTest.
Testy w języku Java są implementowane jako
BaseHostJUnit4Test,
który jest powiązany z urządzeniem testowym i może uruchamiać polecenia powłoki
w celu przeprowadzenia weryfikacji.
Samodzielne testy w Pythonie 3
Niektóre testy VTS, np.
vts_treble_sys_prop_test
są napisane w Pythonie 3. Testy oparte na Pythonie są implementowane jako unittest.TestCase, a każdy element testowania może wchodzić w interakcję z urządzeniem za pomocą poleceń powłoki.