O Android Vendor Test Suite (VTS) oferece testes extensivos sobre o seguinte:
- Núcleo
- Camada de abstração de hardware (HAL)
O VTS é executado em uma máquina desktop e executa casos de teste diretamente em dispositivos conectados ou em emuladores. Semelhante ao CTS , o VTS é um conjunto de testes automatizados que usa os seguintes componentes principais 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 em teste (DUTs). Você também pode usar o recurso Suite Retry para tentar novamente apenas as falhas, em vez de todos os conjuntos de testes, 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 no estilo gtest, testes de kernel ou testes no estilo JUnit escritos em Java.
Tipos de testes
Os vários tipos de testes VTS são descritos nas seções a seguir.
testes estilo gtest
A maioria dos testes no VTS são testes do 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 nela. Consulte VtsHalHealthStorageV1_0TargetTest
para obter um exemplo.
Testes de kernel 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 execução em ARM.Os testes do Linux Test Project ( external/ltp ) validam a confiabilidade, robustez e estabilidade do kernel Linux.
Testes estilo JUnit
Um pequeno conjunto de testes controlados 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 autônomos 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.