Vendor Test Suite (VTS) i infrastruktura

Pakiet testów dostawców Androida (VTS) zapewnia kompleksowe testowanie tych elementów:

  • Jądro
  • Warstwa abstrakcji sprzętowej (HAL)

VTS działa na komputerze stacjonarnym i uruchamia przypadki testowe bezpośrednio na podłączonych urządzeniach lub na emulatorach. Podobnie jak CTS, VTS to automatyczny zestaw testów, który korzysta z tych głównych komponentów oprogramowania:

  • Testy Trade Federation VTS są wykonywane na komputerze hosta i zarządzają wykonywaniem testów. Umożliwia konfigurowanie fragmentacji na wielu testowanych urządzeniach. Możesz też użyć funkcji Ponowne uruchomienie testu, aby ponownie uruchomić tylko nieudane testy, a nie całe zestawy testów. Dzięki temu znacznie skrócisz czas ponownego uruchamiania.
  • Poszczególne przypadki testowe są wykonywane na urządzeniu testowym. 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 następnych sekcjach.

Testy w stylu GTest

Większość testów w VTS to testy w stylu GTest, które sprawdzają implementację HAL. Test został napisany w języku C++ i działa na urządzeniu. Typowy test GTest w VTS przechodzi przez każdą instancję danego interfejsu i uruchamia na niej wszystkie testy. Przykład: VtsHalHealthStorageV1_0TargetTest.

Testy jądra Linuksa

  • Kselftest (external/linux-kselftest) to zbiór testów uwzględnionych w repozytorium jądra Linuksa w tools/testing/selftests, z których 23 zostały uwzględnione w VTS do uruchomienia w ARM.

  • Projekt testów Linuksa (external/ltp) weryfikuje 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, na przykład KernelApiSysfsTest. Testy w Javie są implementowane w postaci BaseHostJUnit4Test, która jest powiązana z urządzeniem testowym i może uruchamiać polecenia powłoki służące do weryfikacji.

Samodzielne testy Pythona3

Niektóre testy VTS, takie jak 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.