Test de la plate-forme Android

Ce contenu est destiné aux développeurs de plateformes Android. Avant de comprendre comment les tests sont effectués sur la plate - forme Android, s'il vous plaît se référer à l' architecture de la plate - forme Android pour un aperçu.

Ensuite , plonger dans les technologies précises à votre disposition dans cette section, comme le test du fournisseur Suite (VTS) et ses innombrables tutoriels vidéo et codelab .

Notez également les tests spécifiques à la sécurité des mécanismes disponibles pour détecter et durcir vos appareils contre les vulnérabilités.

Pour les tests d'application, commencez par les Principes de base de tests et d' effectuer le test Android Codelab en utilisant les échantillons fournis.

Enfin, notez les tests de preSubmit de base est à votre disposition à travers Repo crochets qui peuvent exécuter bourres, vérifier la mise en forme et les tests unitaires de déclenchement avant de procéder, comme le téléchargement d' un commettras. Notez que ces crochets sont désactivés par défaut. Voir les crochets Repo l' introduction pour plus de détails.

Quoi et comment tester

Un test de plate-forme interagit généralement avec un ou plusieurs des services système Android, ou des couches de couche d'abstraction matérielle (HAL), exerce les fonctionnalités du sujet testé et confirme l'exactitude du résultat du test.

En tant que tel, un test de plate-forme peut :

  1. exercer les API du framework via le framework d'application ; les API spécifiques exercées peuvent inclure :
    • API publiques destinées aux applications tierces
    • API cachées destinées aux applications privilégiées, à savoir les API système
    • API privées (@hide, ou protected, package private)
  2. invoquer directement les services système Android via un classeur brut/proxy IPC
  3. interagir directement avec les HAL via des API de bas niveau ou des interfaces IPC

Les types 1 et 2 sont généralement écrits comme des tests d'instrumentation , tandis que le type 3 sont généralement écrites comme des tests natifs en utilisant le gtest cadre.

Pour en savoir plus, consultez nos exemples de bout en bout :

Familiarisez-vous avec ces outils, car ils sont intrinsèques aux tests sous Android.

Suite de tests de compatibilité (CTS)

Android Compatibility Test Suite est une suite de différents types de tests, utilisés pour assurer la compatibilité des implémentations cadres Android entre les partenaires OEM, et à travers les versions de la plate - forme. La suite comprend également des tests d'instrumentation et des tests natifs (utilisant également le framework gtest).

Les tests CTS et de plate-forme ne s'excluent pas mutuellement, et voici quelques directives générales :

  • si un test affirme l'exactitude des fonctions/comportements de l'API du framework, et qu'il doit être appliqué à tous les partenaires OEM, il doit être dans CTS
  • si un test est destiné à détecter les régressions pendant le cycle de développement de la plate-forme, et peut nécessiter une autorisation privilégiée pour être exécuté, et peut dépendre des détails de l'implémentation (tels que publiés dans AOSP), il ne devrait s'agir que de tests de plate-forme

Suite de tests des fournisseurs (VTS)

Le test du fournisseur Suite (VTS) automatise HAL et OS test noyau. Pour utiliser VTS pour tester une implémentation de système natif Android, configurez un environnement de test, puis testez un correctif à l'aide d'un plan VTS.

Infrastructure de test de la fédération du commerce

Fédération du commerce (tradefed ou TF pour faire court) est un cadre de test continu conçu pour l' exécution des tests sur les appareils Android. TF peut exécuter des tests fonctionnels localement, à votre bureau, au sein de votre plateforme de paiement. Il y a deux fichiers requis pour exécuter un test dans TF, une source de test Java et une configuration XML. Voir RebootTest.java et reboot.xml des exemples.

Débogage

Le Debugging section résume les outils utiles et les commandes associées pour le débogage, le traçage et le profilage du code de la plate - forme Android natif lors du développement des fonctionnalités de niveau plate - forme.