La suite de tests pour les fournisseurs Android (VTS, Android Vendor Test Suite) fournit des tests complets sur les éléments suivants :
- Noyau
- Couche d'abstraction matérielle (HAL)
La suite VTS s'exécute sur un ordinateur de bureau et exécute des cas de test directement sur les appareils connectés ou sur les émulateurs. Comme la suite CTS, la suite VTS est une suite de tests automatisée 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 permet de configurer le partitionnement sur plusieurs appareils testés (DUT). Vous pouvez également utiliser la fonctionnalité Nouvelle tentative de la suite pour réessayer uniquement les échecs plutôt que l'ensemble des suites de tests, ce qui réduit considérablement le temps de réexécution.
- Les 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 de tests
Les différents types de tests VTS sont décrits dans les sections suivantes.
Tests de style GTest
La plupart des tests de la suite VTS sont des tests de style GTest qui vérifient l'implémentation de la HAL. Le test est écrit en C++ et s'exécute sur l'appareil. Un test VTS GTest type itère sur chaque instance d'une interface donnée et exécute tous les cas de test sur celle-ci. Pour consulter un exemple, voir VtsHalHealthStorageV1_0TargetTest
Tests de noyau Linux
Kselftest (external/linux-kselftest) est un ensemble de tests inclus dans le dépôt du noyau Linux à l'adresse
tools/testing/selftests, dont 23 sont inclus dans la suite 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 pilotés par l'hôte dans la suite 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 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 en tant que unittest.TestCase, et chaque cas de test peut interagir avec l'appareil via des commandes shell.