Infrastructure et suite de tests des fournisseurs

La suite de tests pour les fournisseurs Android (VTS) permet de réaliser 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 des scénarios de test directement sur les appareils connectés ou sur les émulateurs. Comme la suite de tests de compatibilité, la VTS est une suite de tests automatisés qui utilise les principaux composants logiciels suivants:

  • Le banc d'essais Trade Federation VTS s'exécute sur votre machine hôte et gère l'exécution des tests. Il permet de configurer la segmentation sur plusieurs appareils testés. Vous pouvez également utiliser la fonctionnalité de nouvelle tentative de la suite pour ne relancer que les échecs plutôt que les suites de tests entières, ce qui réduit considérablement le temps de réexécution.
  • Des scénarios de test individuels sont exécutés sur le DUT. Les cas de test peuvent être des tests de style GTest, des tests de kernel ou des tests de style JUnit écrits en Java.

Types de tests

Les différents types de tests VTS sont décrits dans les sections suivantes.

Tests de style GTest

La plupart des tests dans VTS sont des tests de style GTest qui vérifient l'implémentation du HAL. Le test est écrit en C++ et s'exécute sur l'appareil. Un GTest VTS typique itère sur chaque instance d'une interface donnée et exécute tous les scénarios de test à son encontre. Pour consulter un exemple, consultez VtsHalHealthStorageV1_0TargetTest.

Tests du noyau Linux

  • Kselftest (external/linux-kselftest) est un ensemble de tests inclus dans le dépôt du kernel Linux à tools/testing/selftests, dont 23 sont inclus dans VTS pour s'exécuter sur ARM.

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

Tests de style JUnit

Un petit ensemble de tests hôtes 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 appareil de test et peut exécuter des commandes shell pour effectuer la validation.

Tests Python 3 autonomes

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