Vendor Test Suite (VTS) e infrastruttura

La suite di test del fornitore Android (VTS) fornisce test approfonditi su quanto segue:

  • Kernel
  • Hardware Abstraction Layer (HAL)

VTS viene eseguito su un computer desktop ed esegue scenari di test direttamente sui dispositivi collegati o sugli emulatori. Analogamente a CTS, VTS è una suite di test automatizzata che utilizza i seguenti componenti software principali:

  • L'ambiente di test VTS Trade Federation viene eseguito sulla macchina host e gestisce l'esecuzione dei test. Offre la possibilità di configurare lo sharding su più dispositivi in test (DUT). Puoi anche utilizzare la funzionalità Riprova suite per riprovare solo gli errori anziché l'intera suite di test, riducendo notevolmente il tempo di esecuzione.
  • I singoli scenari di test vengono eseguiti sul DUT. Gli scenari di test possono essere test in stile GTest, test del kernel o test in stile JUnit scritti in Java.

Tipi di test

I vari tipi di test VTS sono descritti nelle sezioni seguenti.

Test in stile GTest

La maggior parte dei test in VTS sono test in stile GTest che controllano l'implementazione HAL. Il test è scritto in C++ e viene eseguito sul dispositivo. Un tipico test GTest VTS scorre ogni istanza di una determinata interfaccia ed esegue tutti gli scenari di test. Per un esempio, consulta VtsHalHealthStorageV1_0TargetTest.

Test del kernel Linux

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

  • Linux Test Project (external/ltp) i test convalidano l'affidabilità, la robustezza e la stabilità del kernel Linux.

Test in stile JUnit

Un piccolo insieme di test basati sull'host in VTS sono test in stile JUnit, ad esempio, KernelApiSysfsTest. I test Java vengono implementati come BaseHostJUnit4Test, che è associato a un dispositivo di test e può eseguire comandi 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 case può interagire con il dispositivo tramite comandi shell.