O Conjunto de teste de fornecedor do Android (VTS) oferece testes extensivos sobre o seguinte:
- Kernel
- Camada de abstração de hardware (HAL)
O VTS é executado em uma máquina de mesa e executa casos de teste diretamente em dispositivos conectados ou nos emuladores. Semelhante ao CTS, o VTS é um conjunto de testes automatizados que usa os seguintes componentes principais de software:
- O arcabouço de testes Trade Federation do VTS é executado na máquina host e gerencia a execução do teste. Ele oferece a capacidade de configurar o sharding em vários dispositivos em teste (DUTs). Também é possível usar o recurso Suite Retry para tentar novamente apenas as falhas em vez de todo o conjunto de testes, o que reduz bastante o tempo de execução.
- Casos de teste individuais são executados no DUT. Os casos de teste podem ser testes no estilo GTest, testes de kernel ou testes no estilo JUnit programados em Java.
Tipos de testes
Os vários tipos de testes de VTS são descritos nas seções a seguir.
Testes no estilo GTest
A maioria dos testes no VTS são testes no estilo GTest que verificam a implementação
do HAL. O teste é
escrito em C++ e executado no dispositivo. Um GTest VTS típico faz a iteração
de cada instância de uma determinada interface e executa todos os casos de teste
nele. Consulte VtsHalHealthStorageV1_0TargetTest
para ver um exemplo.
Testes do kernel do Linux
O kselftest (external/linux-kselftest) é uma coleção de testes incluídos no repositório do kernel do Linux em
tools/testing/selftests
, dos quais 23 são incluídos no VTS para execução em ARM.Os testes do Linux Test Project (external/ltp) validam a confiabilidade, a robustez e a estabilidade do kernel do Linux.
Testes no estilo JUnit
Um pequeno conjunto de testes orientados a host no VTS são testes no estilo JUnit, por exemplo,
KernelApiSysfsTest
.
Os testes Java são implementados como
BaseHostJUnit4Test
,
que é associado a um dispositivo de teste e pode executar comandos
do shell para realizar a validação.
Testes independentes do Python3
Alguns testes VTS, como
vts_treble_sys_prop_test
,
são escritos em Python3. Os
testes baseados em Python são implementados como unittest.TestCase
, e cada caso
de teste pode interagir com o dispositivo por comandos do shell.