Infraestructura y Conjunto de pruebas de proveedores (VTS)

El Paquete de pruebas del proveedor de Android (VTS) proporciona pruebas exhaustivas sobre los siguientes elementos:

  • Kernel
  • Capa de abstracción de hardware (HAL)

El VTS se ejecuta en un de escritorio y ejecuta casos de prueba directamente en dispositivos conectados o en los emuladores. Al igual que CTS, la VTS es un paquete de pruebas automatizadas usa los siguientes componentes de software principales.

  • La Federación de Comercio de VTS el agente de prueba se ejecuta en tu máquina anfitrión y administra la prueba ejecución. Ofrece la capacidad de Configura la fragmentación en varios dispositivos sometidos a prueba (DUT). También puedes usar la opción Reintentar con Suite para reintentar solo las fallas y no todo el conjunto de pruebas lo que reduce en gran medida el tiempo de repetición.
  • Los casos de prueba individuales se ejecutan en el DUT. Los casos de prueba pueden ser pruebas de estilo gtest, pruebas de kernel o pruebas de estilo JUnit escritas en Java

Tipos de pruebas

En las siguientes secciones, se describen los diferentes tipos de pruebas de VTS.

pruebas de estilo gtest

La mayoría de las pruebas de VTS son pruebas de estilo gtest que verifican la HAL para implementarlos. La prueba es escrito en C++ y se ejecuta en el dispositivo. Una gtest de VTS típica se itera en cada instancia de una interfaz determinada y ejecuta todos los casos de prueba y defenderte. Consulta VtsHalHealthStorageV1_0TargetTest. para ver un ejemplo.

Pruebas de kernel de Linux

  • Kselftest (external/linux-kselftest) es una colección de pruebas incluida en el repositorio de kernel de Linux. en tools/testing/selftests, de las cuales 23 están incluidas en VTS para que se ejecuten en ARM.

  • Proyecto de prueba de Linux (external/ltp) validan la confiabilidad, solidez y estabilidad del kernel de Linux.

Pruebas de estilo JUnit

Un pequeño conjunto de pruebas controladas por el host en VTS son pruebas de estilo JUnit, por ejemplo, KernelApiSysfsTest Las pruebas de Java se implementan como BaseHostJUnit4Test, que está asociado con un dispositivo de prueba y puede ejecutar shell comandos para realizar la validación.

Pruebas de Python3 independientes

Algunas pruebas de VTS, como vts_treble_sys_prop_test están escritos en Python3. El Las pruebas basadas en Python se implementan como unittest.TestCase, y cada prueba case pueden interactuar con el dispositivo a través de comandos shell.