O Android 11 Vendor Test Suite (VTS) oferece testes extensivos no seguinte:
- Núcleo
- Camada de abstração de hardware (HAL)
O VTS é executado em uma máquina desktop e executa casos de teste diretamente nos dispositivos conectados ou nos emuladores. Semelhante ao CTS , o VTS é um conjunto de testes automatizados que usa os seguintes principais componentes de software.
- O equipamento de teste da VTS Trade Federation é executado em sua máquina host e gerencia a execução do teste. Ele oferece a capacidade de configurar a fragmentação em vários dispositivos sob teste (DUTs). Você também pode usar o recurso Suite Retry para repetir apenas as falhas em vez de todos os conjuntos de teste, o que reduz bastante o tempo de nova execução.
- Casos de teste individuais são executados no DUT. Os casos de teste podem ser testes de estilo gtest, testes de kernel ou testes de estilo JUnit escritos em Java.
Tipos de testes
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 itera através de cada instância de uma determinada interface e executa todos os casos de teste contra ela. Consulte VtsHalHealthStorageV1_0TargetTest
para obter um exemplo.
Testes do kernel do Linux
Kselftest ( external/linux-kselftest ) é uma coleção de testes incluídos no repositório do kernel Linux em
tools/testing/selftests
, dos quais 23 estão incluídos no VTS para serem executados em ARM.Os testes do Linux Test Project ( external/ltp ) validam a confiabilidade, robustez e estabilidade do kernel Linux.
Testes no estilo JUnit
Um pequeno conjunto de testes orientados por host no VTS são testes no estilo JUnit, por exemplo, KernelApiSysfsTest
. Os testes Java são implementados como BaseHostJUnit4Test
, que está associado a um dispositivo de teste e pode executar comandos 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 meio de comandos shell.