Teste de fornecedor (VTS) e infraestrutura

O Pacote de testes de fornecedor do Android (VTS, na sigla em inglês) oferece testes extensivos do seguinte:

  • Kernel
  • Camada de abstração de hardware (HAL)

O VTS é executado em uma desktop e executa casos de teste diretamente em dispositivos conectados ou nos emuladores. Assim como o CTS, o VTS é um pacote de testes automatizados que usa os principais componentes de software a seguir.

  • A VTS Trade Federation (em inglês) o arcabouço de testes é executado na máquina host e gerencia execução. Ele oferece a capacidade de Configurar a fragmentação em vários dispositivos em teste (DUTs). Você também pode usar a nova tentativa do Suite recurso para tentar novamente apenas as falhas, e não 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, kernel ou JUnit criados na Java.

Tipos de testes

Os vários tipos de testes VTS são descritos nas seções a seguir.

testes no estilo gtest

A maioria dos testes em VTS são no estilo gtest que verificam a HAL. implementação. O teste é escrito em C++ e executado no dispositivo. Um gtest VTS típico itera instância de uma determinada interface e executa todos os casos de teste contra ele. Consulte VtsHalHealthStorageV1_0TargetTest como exemplo.

Testes do kernel do Linux

  • Kselftest (external/linux-kselftest) é uma coleção de testes incluída no repositório do kernel do Linux em tools/testing/selftests, das quais 23 estão incluídas no VTS para execução no ARM.

  • Projeto de teste do Linux (external/ltp) validam a confiabilidade, robustez e estabilidade do kernel do 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, associado a um dispositivo de teste que pode executar para realizar a validação.

Testes independentes do Python3

Alguns testes VTS, como vts_treble_sys_prop_test são escritos em Python3. O Os testes baseados em Python são implementados como unittest.TestCase e cada teste o caso pode interagir com o dispositivo por comandos do shell.