Présentation de la fédération du commerce

Trade Federation (Tradefed ou TF, pour faire court) est un framework de test continu conçu pour exécuter des tests sur des appareils Android. Par exemple, Tradefed permet d'exécuter la suite de tests de compatibilité (CTS) et la suite de tests du fournisseur (VTS).

Trade Federation est une application Java qui s'exécute sur un ordinateur hôte et communique avec un ou plusieurs appareils Android à l'aide de ddmlib (la bibliothèque derrière DDMS) via adb.

Vous trouverez ci-dessous quelques-unes des principales fonctionnalités de TF, ainsi que quelques exemples d'utilisation. Toutefois, si vous souhaitez vous lancer directement, vous pouvez accéder directement à la page Premiers pas.

Fonctionnalités

  • une conception modulaire, flexible et évolutive ;
  • est compatible avec l'exécution de nombreux types de tests Android : instrumentation, uiautomator, natif/gtest, JUnit basé sur l'hôte, etc.
  • fournit des mécanismes de fiabilité et de récupération en plus d'adb
  • permet de planifier et d'exécuter des tests sur plusieurs appareils en parallèle ;

Consultez Tester via TF pour obtenir les informations les plus récentes sur l'exécution de vos tests existants, tels que l'instrumentation.

Cas d'utilisation

La modularité de la Trade Federation permet de l'intégrer facilement à des environnements dotés d'infrastructures de compilation, de test et de création de rapports existantes. Vous trouverez ci-dessous quelques cas d'utilisation où Tradefed peut permettre des pratiques de test efficaces et évolutives.

Tout d'abord, il est utile d'examiner le paysage des cas d'utilisation potentiels en termes de la question "Quelles parties sont modifiables et quelles parties sont statiques ?". Par exemple, un OEM d'appareil peut modifier le framework, le système et le matériel, mais a peu ou pas d'influence sur les applications existantes. En revanche, un développeur d'applications peut modifier l'application, mais a peu de contrôle sur la plupart des aspects du système ou du framework.

Par conséquent, une entité dans chaque cas d'utilisation aura des objectifs de test différents et des options différentes en cas d'échec d'un ensemble de tests. Malgré ces différences, Trade Federation peut aider à rendre chacun de leurs processus de test efficaces, flexibles et évolutifs.

OEM de l'appareil

Un OEM d'appareil fabrique du matériel et ajuste souvent le système et les frameworks Android pour qu'ils fonctionnent correctement sur ce matériel. L'OEM peut s'efforcer d'atteindre ces objectifs tout en conservant la stabilité et les performances au niveau du matériel et du système, et en s'assurant que les modifications apportées au framework ne compromettent pas la compatibilité avec les applications existantes.

L'OEM peut implémenter un module de flashage d'appareil qui s'exécutera lors de l'étape de configuration de la cible du cycle de vie. Ce module aurait un contrôle total sur l'appareil pendant sa période d'exécution, ce qui lui permettrait de forcer l'appareil à passer en mode bootloader, à flasher, puis à redémarrer en mode espace utilisateur. Combiné à un module à associer à un système de compilation continue, cela permettrait à l'OEM d'exécuter des tests sur son appareil lorsqu'il modifie le micrologiciel au niveau du système et les frameworks au niveau Java.

Une fois l'appareil complètement démarré, l'OEM peut utiliser les tests basés sur JUnit existants ou en écrire de nouveaux pour vérifier la fonctionnalité de son choix. Enfin, il peut écrire un ou plusieurs modules de création de rapports sur les résultats à associer à des dépôts de résultats de test existants ou à générer directement des rapports sur les résultats (par exemple, par e-mail).

Développeur d'applications

Un développeur d'applications crée une application qui doit fonctionner sur différentes versions de plates-formes et sur différents appareils. Si un problème survient sur une version de plate-forme et/ou un appareil en particulier, la seule solution consiste à ajouter une solution de contournement et à passer à autre chose. Pour les développeurs plus importants, le processus de test peut être intégré à une séquence de compilation continue. Pour les petits développeurs, il peut être lancé périodiquement ou manuellement.

La plupart des développeurs d'applications utilisent les modules d'installation de test apk déjà disponibles dans TF. Il existe une version qui s'installe à partir du système de fichiers local, ainsi qu'une version pouvant installer des APK téléchargés à partir d'un service de compilation. Il est important de noter que la dernière version continuera de fonctionner correctement avec un nombre arbitraire d'instances TF exécutées sur la même machine hôte.

En raison de la capacité de TF à gérer plusieurs appareils, il serait simple de classer chaque résultat de test par type d'appareil utilisé pour ce test. Ainsi, TF pourrait potentiellement générer une matrice de compatibilité bidimensionnelle (ou multidimensionnelle) pour chaque build de l'application.

Service de test

Un service de test peut, par exemple, permettre aux développeurs d'applications d'envoyer des applications et d'exécuter des tests sur des appareils instrumentés avec des outils de mesure de la consommation d'énergie pour déterminer la consommation d'énergie de l'application. Cela diffère des deux cas d'utilisation précédents, car le générateur de services ne contrôle pas les appareils ni les applications en cours d'exécution.

Étant donné que la Trade Federation peut exécuter n'importe quelle classe Java implémentant l'interface simple IRemoteTest, il est facile d'écrire des pilotes capables de coordonner un matériel externe avec le cas de test exécuté sur l'appareil. Le pilote lui-même peut générer des threads, envoyer des requêtes à d'autres serveurs ou effectuer toute autre action dont il a besoin. De plus, la simplicité et la polyvalence de l'interface de création de rapports sur les résultats, ITestInvocationListener, permettent de représenter facilement des résultats de test arbitraires (y compris, par exemple, des métriques de puissance numérique) dans le pipeline de création de rapports sur les résultats standard.