Zestaw testów dostawcy (VTS) i infrastruktura

Zestaw testów dostawcy Androida (VTS) zapewnia obszerne testy w zakresie:

  • Bąbelki
  • Warstwa abstrakcji sprzętowej (HAL)

VTS działa na komputerze stacjonarnym i wykonuje testy bezpośrednio na podłączonych urządzeniach lub emulatorach. Podobnie jak CTS, VTS to zautomatyzowany pakiet 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 konfigurowanie dzielenia na wiele testowanych urządzeń. Możesz też użyć funkcji Suite Retry, aby ponownie uruchomić tylko testy, które zakończyły się niepowodzeniem, a nie całe pakiety testów. Znacznie skraca to czas ponownego uruchomienia.
  • Poszczególne przypadki testowe są wykonywane na testowanym urządzeniu. Przypadki testowe mogą być testami w stylu GTest, testami jądra lub testami w stylu JUnit napisanymi w języku Java.

Rodzaje testów

Różne typy testów VTS są opisane w sekcjach poniżej.

Testy w stylu GTest

Większość testów w VTS to testy w stylu GTest, które sprawdzają implementację HAL. Test jest napisany w C++ i uruchamiany na urządzeniu. Typowy test VTS GTest iteruje przez każdą instancję danego interfejsu i uruchamia na niej wszystkie przypadki testowe. Przykład znajdziesz w sekcji VtsHalHealthStorageV1_0TargetTest.

Testy jądra systemu Linux

  • Kselftest (external/linux-kselftest) to zbiór testów znajdujących się w repozytorium jądra systemu Linux pod adresem tools/testing/selftests. 23 z nich są uwzględnione w VTS i mogą być uruchamiane na urządzeniach z procesorem ARM.

  • Linux Test Project (external/ltp) sprawdza niezawodność, odporność i stabilność jądra systemu Linux.

Testy w stylu JUnit

Mały zestaw testów opartych na hoście w VTS to testy w stylu JUnit, np.KernelApiSysfsTest. Testy w języku Java są implementowane jako BaseHostJUnit4Test, które jest powiązane 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 języku Python są implementowane jako unittest.TestCase, a każdy przypadek testowy może wchodzić w interakcję z urządzeniem za pomocą poleceń powłoki.