El Conjunto de pruebas de proveedores de Android (VTS) proporciona pruebas exhaustivas sobre lo siguiente:
- Kernel
- Capa de abstracción de hardware (HAL)
VTS se ejecuta en una computadora de escritorio y ejecuta casos de prueba directamente en dispositivos conectados o en emuladores. Al igual que el CTS, el VTS es un conjunto de pruebas automatizadas que utiliza los siguientes componentes de software principales:
- El agente de prueba Trade Federation de VTS se ejecuta en tu máquina host y administra la ejecución de pruebas. Ofrece la capacidad de configurar el sharding en varios dispositivos bajo prueba (DUT). También puedes usar la función Suite Retry para volver a ejecutar solo los errores en lugar de todo el paquete de pruebas, lo que reduce en gran medida el tiempo de reejecució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 distintos tipos de pruebas de VTS.
Pruebas de estilo GTest
La mayoría de las pruebas en VTS son pruebas de estilo GTest que verifican la implementación del 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 determinada y ejecuta todos los casos de prueba en ella. Consulta VtsHalHealthStorageV1_0TargetTest
para ver un ejemplo.
Pruebas de 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 se incluyen en VTS para ejecutarse en ARM.Los proyectos de prueba de Linux (external/ltp) validan la confiabilidad, la solidez y la 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 se asocia con un dispositivo de prueba y puede ejecutar comandos de shell para realizar la validación.
Pruebas independientes de Python 3
Algunas pruebas de VTS, como vts_treble_sys_prop_test
, están escritas en Python 3. Las pruebas basadas en Python se implementan como unittest.TestCase
, y cada caso de prueba puede interactuar con el dispositivo a través de comandos de shell.