Android Vendor Test Suite (VTS) zapewnia obszerne testy następujących elementów:
- Jądro
- Warstwa abstrakcji sprzętu (HAL)
VTS działa na komputerze stacjonarnym i wykonuje przypadki testowe bezpośrednio na podłączonych urządzeniach lub na emulatorach. Podobnie jak CTS , VTS to zautomatyzowany zestaw testów, który wykorzystuje następujące główne komponenty oprogramowania.
- Wiązka testowa VTS Trade Federation działa na maszynie hosta i zarządza wykonywaniem testów. Oferuje możliwość konfiguracji dzielenia na wiele testowanych urządzeń (DUT). Możesz także użyć funkcji Suite Retry , aby ponawiać tylko awarie zamiast całych zestawów testów, co znacznie skraca czas ponownego uruchomienia.
- Poszczególne przypadki testowe są wykonywane na badanym urządzeniu. Przypadki testowe mogą być testami w stylu gtest, testami jądra lub testami w stylu JUnit napisanymi w Javie.
Rodzaje testów
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 gtest VTS przechodzi przez każdą instancję danego interfejsu i uruchamia wszystkie przypadki testowe względem niego. Przykład można znaleźć w VtsHalHealthStorageV1_0TargetTest
.
Testy jądra Linuksa
Kselftest ( external/linux-kselftest ) to zbiór testów zawartych w repozytorium jądra Linuksa pod adresem
tools/testing/selftests
, z których 23 są zawarte w VTS do uruchamiania na ARM.Testy Linux Test Project ( external/ltp ) sprawdzają niezawodność, solidność i stabilność jądra Linuksa.
Testy w stylu JUnit
Niewielki zestaw testów sterowanych hostem w VTS to testy w stylu JUnit, na przykład KernelApiSysfsTest
. Testy Java są implementowane jako BaseHostJUnit4Test
, który jest powiązany z urządzeniem testowym i może uruchamiać polecenia powłoki w celu przeprowadzenia walidacji.
Samodzielne testy Python3
Niektóre testy VTS, takie jak vts_treble_sys_prop_test
, są napisane w języku Python3. Testy oparte na języku Python są implementowane jako unittest.TestCase
, a każdy przypadek testowy może wchodzić w interakcje z urządzeniem za pomocą poleceń powłoki.