Vendor Test Suite (VTS) e infrastruttura

Android 11 Vendor Test Suite (VTS) fornisce test approfonditi su quanto segue:

  • kernel
  • Livello di astrazione hardware (HAL)

VTS viene eseguito su una macchina desktop ed esegue casi di test direttamente sui dispositivi collegati o sugli emulatori. Simile a CTS , VTS è una suite di test automatizzato che utilizza i seguenti principali componenti software.

  • Il VTS della Federazione test harness viene eseguito sul computer host e gestisce l'esecuzione del test. Esso offre la possibilità di configurare Sharding su più dispositivi in prova (DUT). È inoltre possibile utilizzare la Suite Riprova funzione per ripetere solo i fallimenti piuttosto che l'intero suite di test, il che riduce notevolmente il tempo di ri-correre.
  • I singoli casi di test vengono eseguiti sul DUT. I casi di test possono essere test in stile gtest, test del kernel o test in stile JUnit scritti in Java.

Tipi di test

test in stile gtest

La maggior parte dei test in VTS sono test in stile gtest che controllano l'implementazione di HAL. Il test è scritto in C++ e viene eseguito sul dispositivo. Un tipico gtest VTS scorre ogni istanza di una data interfaccia ed esegue tutti i test case su di essa. Consultare VtsHalHealthStorageV1_0TargetTest per un esempio.

Test del kernel Linux

  • Kselftest ( esterno / linux-kselftest ) è una raccolta di test inclusi nel repository del kernel Linux in tools/testing/selftests , di cui 23 sono inclusi nel VTS per l'esecuzione su ARM.

  • Test Project Linux ( esterno / LTP ) prove di convalidare l'affidabilità, la robustezza, e la stabilità del kernel di Linux.

Test in stile JUnit

Una piccola serie di test di host-driven in VTS sono test JUnit in stile, per esempio, KernelApiSysfsTest . I test Java sono implementati come BaseHostJUnit4Test , che è associato con un dispositivo di prova e può eseguire comandi di shell per eseguire la convalida.

Test Python3 autonomi

Alcuni test VTS, come vts_treble_sys_prop_test sono scritti in python3. I test basati su Python sono implementati come unittest.TestCase e ogni test possono interagire con il dispositivo attraverso comandi shell.