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 esegue gli scenari di test direttamente sui dispositivi collegati o sugli emulatori. Analogamente al CTS, la VTS è una suite di test automatica che utilizza i seguenti componenti software principali:
- L'ambiente di test Trade Federation di VTS viene eseguito sulla macchina host e gestisce l'esecuzione dei test. Consente di configurare lo sharding su più dispositivi sottoposti a test (DUT). Puoi anche utilizzare la funzionalità Ritenta Suite per riprovare solo gli errori anziché l'intera suite di test, riducendo notevolmente il tempo di esecuzione.
- Sul DUT vengono eseguiti scenari di test individuali. Gli scenari di test possono essere test di stile GTest, test del kernel o test di stile JUnit scritti in Java.
Tipi di test
I vari tipi di test VTS sono descritti nelle sezioni che seguono.
Test in stile GTest
La maggior parte dei test in VTS è di tipo GTest che verifica l'implementazione dell'HAL. Il test è scritto in C++ e viene eseguito sul dispositivo. Un tipico GTest VTS esegue un'iterazione su ogni istanza di una determinata interfaccia ed esegue tutti gli scenari di test al suo interno. Per un esempio, consulta VtsHalHealthStorageV1_0TargetTest
.
Test del kernel Linux
Kselftest (external/linux-kselftest) è una raccolta di test inclusi nel repository del kernel Linux al seguente indirizzo:
tools/testing/selftests
, di cui 23 sono inclusi in VTS per l'esecuzione su ARM.I test del progetto di test di Linux (external/ltp) verificano l'affidabilità, la robustezza e la stabilità del kernel di 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 sono implementati come
BaseHostJUnit4Test
,
che è associato a un dispositivo di test e può eseguire comandi shell
per eseguire la convalida.
Test Python 3 autonomi
Alcuni test VTS, come
vts_treble_sys_prop_test
sono scritti in Python 3. I test basati su Python sono implementati come unittest.TestCase
e ogni test case può interagire con il dispositivo tramite i comandi della shell.