Suite de tests des fournisseurs (VTS) et infrastructure

L'Android Vendor Test Suite (VTS) propose des tests approfondis sur les éléments suivants :

  • Noyau
  • Couche d'abstraction matérielle (HAL)

VTS s'exécute sur un ordinateur de bureau et exécute les cas de test directement sur les appareils connectés ou sur les émulateurs. Semblable à CTS , VTS est une suite de tests automatisés qui utilise les principaux composants logiciels suivants.

  • Le harnais de test VTS Trade Federation s'exécute sur votre machine hôte et gère l'exécution des tests. Il offre la possibilité de configurer le partage sur plusieurs appareils testés (DUT). Vous pouvez également utiliser la fonctionnalité Suite Retry pour réessayer uniquement les échecs plutôt que l'intégralité des suites de tests, ce qui réduit considérablement le temps de réexécution.
  • Des cas de test individuels sont exécutés sur le DUT. Les cas de test peuvent être des tests de style gtest, des tests de noyau ou des tests de style JUnit écrits en Java.

Types d'examens

tests de style gtest

La plupart des tests dans VTS sont des tests de style gtest qui vérifient l'implémentation de HAL. Le test est écrit en C++ et s'exécute sur l'appareil. Un gtest VTS typique parcourt chaque instance d'une interface donnée et exécute tous les cas de test sur celle-ci. Reportez-vous à VtsHalHealthStorageV1_0TargetTest pour un exemple.

Tests du noyau Linux

  • Kselftest ( external/linux-kselftest ) est une collection de tests inclus dans le référentiel du noyau Linux à l'adresse tools/testing/selftests , dont 23 sont inclus dans VTS pour s'exécuter sur ARM.

  • Les tests du Linux Test Project ( external/ltp ) valident la fiabilité, la robustesse et la stabilité du noyau Linux.

Tests de style JUnit

Un petit ensemble de tests pilotés par l'hôte dans VTS sont des tests de style JUnit, par exemple KernelApiSysfsTest . Les tests Java sont implémentés en tant que BaseHostJUnit4Test , qui est associé à un périphérique de test et peut exécuter des commandes shell pour effectuer la validation.

Tests Python3 autonomes

Certains tests VTS, tels que vts_treble_sys_prop_test sont écrits en Python3. Les tests basés sur Python sont implémentés sous le nom unittest.TestCase et chaque scénario de test peut interagir avec l'appareil via des commandes shell.