Suite de pruebas de proveedores (VTS) e infraestructura

Android 11 Vendor Test Suite (VTS) proporciona pruebas exhaustivas de lo siguiente:

  • Núcleo
  • Capa de abstracción de hardware (HAL)

VTS se ejecuta en una máquina de escritorio y ejecuta casos de prueba directamente en dispositivos conectados o en los emuladores. Similar a CTS , VTS es un conjunto de pruebas automatizado que utiliza los siguientes componentes principales de software.

  • El arnés de prueba de VTS Trade Federation se ejecuta en su máquina host y administra la ejecución de la prueba. Ofrece la capacidad de configurar la fragmentación en varios dispositivos bajo prueba (DUT). También puede usar la función Reintentar conjunto para volver a intentar solo los errores en lugar de todos los conjuntos 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

pruebas de estilo gtest

La mayoría de las pruebas en VTS son pruebas de estilo gtest que verifican la implementación de HAL. La prueba está escrita en C++ y se ejecuta en el dispositivo. Un gtest de VTS típico itera a través de cada instancia de una interfaz dada y ejecuta todos los casos de prueba contra ella. Consulte VtsHalHealthStorageV1_0TargetTest para ver un ejemplo.

Pruebas del kernel de Linux

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

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

Pruebas estilo JUnit

Un pequeño conjunto de pruebas controladas por 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 comandos de shell para realizar la validación.

Pruebas independientes de Python3

Algunas pruebas de VTS, como vts_treble_sys_prop_test , están escritas en Python3. Las pruebas basadas en Python se implementan como unittest.TestCase y cada caso de prueba puede interactuar con el dispositivo mediante comandos de shell.