Le cycle de vie d'un test exécuté à l'aide de Trade Federation se compose de quatre étapes distinctes, conçues autour d'interfaces définies formellement.
Interfaces définies
- Fournisseur de compilation: fournit une compilation à tester, en téléchargeant les fichiers appropriés si nécessaire.
- Préparation de la cible: prépare l'environnement de test, y compris éventuellement l'installation de logiciels et la configuration de l'appareil.
- Test: exécute un ou plusieurs tests et collecte les résultats. Il peut s'agir de n'importe quel test JUnit, bien que notre interface IRemoteTest soit spécifiquement conçue pour fonctionner correctement dans l'environnement de la Trade Federation.
- Écouteur d'appel de test (rapport sur les résultats): écoute les résultats des tests, généralement dans le but de les transmettre à un dépôt ou de les afficher dans le testeur de test.
L'entité de test fondamentale dans TF est une configuration. Une configuration est un fichier XML qui déclare les composants de cycle de vie d'un test.
Cette séparation du cycle de vie du test vise à permettre sa réutilisation. Avec cette conception, le développeur peut créer un test une seule fois, puis l'intégrateur peut créer différentes configurations pour exécuter ce test dans différents environnements. Par exemple, il peut créer une configuration qui exécute un test sur une machine locale et vide le résultat dans la sortie standard. Il peut ensuite créer une deuxième configuration qui exécutera ce même test, mais utilisera un autre écouteur d'appel de test pour stocker les résultats du test dans une base de données. Une troisième configuration peut être conçue pour exécuter des tests en continu à partir d'un laboratoire de test.
Il est utile de noter ici qu'une configuration avec ses arguments de ligne de commande (fournis par le testeur) est appelée commande. Lorsque TF associe une commande à un ITestDevice
et l'exécute, l'objet qui suit est appelé Invocation.
En résumé, une invocation englobe une exécution de test TF complète, tout au long de son cycle de vie.
Composants de configuration supplémentaires
- Device Recovery (Récupération de l'appareil) : mécanisme permettant de récupérer la communication de l'appareil en cas de perte.
- Logger : collecte les données de journalisation de Tradefed.
Sortie et erreurs de l'étape
Chaque étape d'une invocation s'exécute de manière séquentielle et a un objectif spécifique. Cette section décrit les sorties et les erreurs habituelles de chaque étape.
Fournisseur de compilation
Cette étape crée et génère un objet IBuildInfo
contenant toutes les références de fichiers requises pour configurer et exécuter les tests.
L'erreur la plus courante à ce stade est l'échec du téléchargement ou de la recherche des fichiers demandés.
En cas d'erreur à ce stade, l'erreur est signalée directement et aucun test n'est exécuté.
Préparation des cibles
Cette étape configure les états nécessaires pour la cible testée. Cette étape peut modifier la configuration de l'appareil ou de l'hôte si nécessaire pour l'appel de test donné.
Les erreurs courantes à ce stade consistent généralement à ne pas configurer l'appareil dans un état donné (par exemple, échec du flashage) et à ne pas trouver les fichiers requis pour la configuration.
Une erreur à ce stade entraîne l'exécution du nettoyage des cibles, le signalement de l'erreur et l'absence de tests.
Tests
Cette étape exécute les tests demandés sur la cible préparée précédemment et génère tous les résultats d'exécution des tests.
Les erreurs courantes à ce stade concernent généralement l'indisponibilité de la cible testée ou une erreur entraînant une exécution partielle des tests. Ces erreurs sont des problèmes d'infrastructure qui affectent l'exécution du test elle-même, par opposition à l'échec d'un seul scénario de test.
Une erreur à ce stade entraîne l'arrêt de l'exécution du test, l'exécution du nettoyage de la cible, le signalement de l'erreur et l'obtention de résultats partiels.
Rapports sur les résultats
Cette étape signale les résultats et les erreurs aux services configurés (par exemple, les serveurs et les fichiers locaux).
Bien que des erreurs puissent se produire dans des rapports de résultats individuels, ils sont isolés les uns des autres (un rapport ne voit pas les erreurs d'un autre). Ces erreurs n'affectent que les rapports sur les résultats d'un utilisateur spécifique et peuvent être consultées dans les journaux.