Pakiet Android 11 Vendor Test Suite (VTS) zapewnia obszerne testy w następujących kwestiach:
- 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 komputerze głównym i zarządza wykonywaniem testów. Oferuje możliwość skonfigurowania dzielenia na fragmenty na wielu testowanych urządzeniach (DUT). Możesz również użyć funkcji Ponawiania pakietu , aby ponawiać tylko błędy, a nie całe zestawy testów, co znacznie skraca czas ponownego uruchomienia.
- Poszczególne przypadki testowe są wykonywane na DUT. Przypadkami testowymi mogą być testy w stylu gtest, testy jądra lub testy w stylu JUnit napisane 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 C++ i działa na urządzeniu. Typowy test gtest VTS przechodzi przez każdą instancję danego interfejsu i uruchamia na niej wszystkie przypadki testowe. Aby zapoznać się z przykładem, zobacz VtsHalHealthStorageV1_0TargetTest
.
Testy jądra Linux
Kselftest ( external/linux-kselftest ) to zbiór testów zawartych w repozytorium jądra Linuksa w
tools/testing/selftests
, z których 23 są zawarte w VTS do uruchomienia na ARM.Testy projektu Linux Test Project ( external/ltp ) weryfikują niezawodność, solidność i stabilność jądra systemu Linux.
Testy w stylu JUnit
Niewielki zestaw testów host-driven w VTS to testy w stylu JUnit, na przykład KernelApiSysfsTest
. Testy Java są zaimplementowane jako BaseHostJUnit4Test
, które są skojarzone z urządzeniem testowym i mogą uruchamiać polecenia powłoki w celu przeprowadzenia walidacji.
Samodzielne testy Pythona3
Niektóre testy VTS, takie jak vts_treble_sys_prop_test
, są napisane w Python3. Testy oparte na języku Python są zaimplementowane jako unittest.TestCase
, a każdy przypadek testowy może wchodzić w interakcje z urządzeniem za pomocą poleceń powłoki.