Vendor Test Suite (VTS) e infraestrutura

O Android Vendor Test Suite (VTS) fornece 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 principais componentes de software a seguir.

  • O equipamento de teste VTS Trade Federation é executado em sua máquina host e gerencia a execução do teste. Ele oferece a capacidade de configurar o sharding 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 reexecuçã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 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 típico VTS gtest 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 do kernel do Linux

  • 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 estão incluídos no VTS para serem executados no ARM.

  • Os testes do Linux Test Project ( externo/ltp ) validam a confiabilidade, robustez e estabilidade do kernel do Linux.

Testes de 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 executar 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.