Android Tutoriel de test d'application avec Automation Framework
Pourquoi Choisir Android Essai?
Android est le plus grand système d'exploitation au monde. En même temps, Android est fragmenté. il y a des tonnes d'appareils et Android versions avec lesquelles votre application doit être compatible.
Peu importe le temps que vous investissez dans la conception et la mise en œuvre, les erreurs sont inévitables et des bugs apparaîtront.
Android Stratégie de test
Une stratégie de test Android correcte doit inclure les éléments suivants
- Test unitaire
- Test d'intégration
- OperaTest national
- test du système
Tests unitaires
Les tests unitaires incluent des ensembles d'un ou plusieurs programmes conçus pour vérifier une unité atomique du code source, telle qu'une méthode ou une classe.
Android la plateforme est pré-intégrée Junite Cadre 3.0. C'est un framework open source pour automatiser Tests unitaires. Android Testing Framework est un outil puissant permettant aux développeurs d'écrire un programme de tests unitaires efficace.
Les tests d'interface utilisateur (UI) constituent un complément aux tests unitaires. Ces tests concernent les composants de l'interface utilisateur de votre application cible. Les tests d'interface utilisateur garantissent que votre application renvoie la sortie d'interface utilisateur correcte en réponse à la séquence d'actions de l'utilisateur sur l'appareil.
La méthode courante pour effectuer des tests d'interface utilisateur sur un appareil est Android Instrumentation. Mais cela pose des problèmes de performances. L'un des meilleurs outils pour effectuer des tests d'interface utilisateur sur Android is Robotique.
Tests d'intégration
In Test d'intégration, tous les modules testés unitairement, sont combinés et vérifiés. Dans Android, les tests d'intégration impliquent souvent de vérifier l'intégration avecAndroid composants tels que les tests de service, les tests d'activité, les tests du fournisseur de contenu, etc.
De nombreux frameworks de tests sont utilisés pour effectuer des tests d'intégration pour Android comme Troyd, Robolectric, Robotium.
Operatests nationaux
- Operationnels sont également appelés Tests Fonctionnels ou Tests d’Acceptation. Il s’agit de tests de haut niveau destinés à vérifier l’exhaustivité et l’exactitude de la candidature.
- In Android, FitNesse est un framework open source qui facilite la réalisation de tests opérationnels pour l'application cible.
Essais système
In Test du système le système est testé dans son ensemble et l'interaction entre les composants, les logiciels et le matériel est vérifiée.
In Android, Les tests système comprennent normalement
- Tests d'interface graphique
- Tests d'utilisabilité
- Des tests de performance
- Tests de résistance
Dans la liste ci-dessus, Test de performance est davantage concentré. Vous pouvez utiliser des outils comme Vue de trace effectuer des tests de performances sur Android .Cet outil peut vous aider à déboguer votre application et à profiler ses performances.
TESTS ANDROID automatisés
Comme Android est fragmenté, il est nécessaire de tester sur une multitude d'appareils. Mais cela vous coûtera également de l'argent. Automatisé Android Les tests peuvent aider à réduire les coûts
Avantages des tests Android automatisés
- Réduisez le temps d’exécution des cas de test
- Augmentez la productivité de votre processus de développement
- Détection précoce des bogues, économisez sur les coûts de maintenance des logiciels
- Rapidement trouvé et corrigé les bugs lors de la mise en œuvre
- Assurer la qualité des logiciels
Nous étudierons les 2 frameworks suivants
- Android Cadre de test
- Cadre de tests robotiques
Android cadre de test
L'un des cadres de test standard pour Android application est Android cadre de test. Il s'agit d'un framework de test puissant et facile à utiliser, bien intégré au Android Outils SDK.
- Dossier de candidature est votre application cible qui doit être testée
- InstrumentationTestRunner est le Cas de test exécuteur qui exécute le scénario de test sur l’application cible. Il comprend:
2) Outils d'essai : Un outil SDK pour créer des tests. Ils sont intégrés dans Eclipse IDE ou exécuté en ligne de commande.
2b) SingeRunner : Un outil qui fournit des API pour écrire un programme qui contrôle un Android périphérique ou émulateur en dehors de Android code.
- Package de test sont organisés en projets tests. Ce package suit la convention de dénomination. Si l'application testée a un nom de package « com.mydomain.myapp », le package de test doit être « com.mydomain.myapp.test ». Le package de test comprend 2 objets comme ci-dessous :
3a) Classes de cas de test : incluent les méthodes de test à exécuter sur l'application cible.
3b) Objets simulés : inclut des données fictives qui seront utilisées comme exemple d'entrée pour les cas de test.
Android Classes de cas de test
- Cas de test inclut JUnit méthodes pour exécuter JUnit tester
- Suite de tests est utilisé pour exécuter un ensemble de cas de test
- InstrumentationTestSuite est une TestSuite qui injecte l'instrumentation dans InstrumentationTestCase avant de les exécuter.
- InstrumentationTestRunner est l'exécuteur de scénario de test qui exécute le scénario de test sur l'application cible.
- AndroidCas de test S'étend JUnit Cas de test. Il contient des méthodes pour accéder à des ressources telles que le contexte d'activité.
- ApplicationTestCase vérifie les classes d'application dans un environnement contrôlé.
- InstrumentationTestCase vérifie une fonctionnalité ou un comportement particulier de l'application cible, par exemple, vérifie la sortie de l'interface utilisateur de l'application.
- ActivityTestCaseActivityTestCase est une classe de base qui prend en charge le test des activités d'application.
- FournisseurTestCase est une classe permettant de tester un seul ContentProvider.
- ServiceTestCase est utilisé pour tester les classes de service dans un environnement de test. Il prend également en charge le cycle de vie du service.
- SingeLauchActivityTestCase est utilisé pour tester une seule activité avec un InstrumentationTestCase.
- ActivitéUnitTestCase est utilisé pour tester une activité isolée unique.
- ActivitéInstrumentationTestCase2 s'étend à l' JUnit Classe TestCase. Il vous connecte à l'application cible avec l'instrumentation. Avec cette classe, vous pouvez accéder au composant GUI de l'application et envoyer un événement d'interface utilisateur (frappe de touche ou événement tactile) à l'interface utilisateur.
Vous trouverez ci-dessous un exemple d’ActivityInstrumentationTestCase. Il vérifie le fonctionnement de l'interface utilisateur de l'application Calculatrice, vérifie l'exactitude des sorties de l'interface utilisateur.
Cadre de tests robotiques
Test en utilisant Android Tester le framework avec un appareil ou un émulateur est difficile. La création et l'exécution de tests sont lentes et nécessitent beaucoup d'efforts de développement. Pour résoudre ce problème, il existe un autre choix : Robolectrique cadre de test.
Le framework Robolectric vous permet d'exécuter Android tests directement sur JVM sans le besoin d'un appareil ou d'un émulateur.
Classes de cas de test roboélectriques
- Comme indiqué ci-dessus, Robolectric peut effectuer les actions suivantes :
- Inscrivez-vous et créez une classe Shadow
- Intercepter le chargement de Android classe
- Utilise javaassist pour remplacer les corps de méthode de Android classe
- Lier l'objet Shadow à Android classe
- Cela permet au code testé de s'exécuter sans Android sûr et sécurisé.
Autres framework de tests
Outre les frameworks de test mentionnés ci-dessus, il existe de nombreux autres frameworks de test tels que :
- Android Rapport Junit, un outil de test d'instrumentation personnalisé pour Android qui génère des rapports XML pour l'intégration avec d'autres outils.
- Expresso
- Appium
Mythes de Android Contrôle de qualité
De nombreuses entreprises développent Android Contrôle de qualité des stratégies basées sur des idées fausses courantes. Cette section examine quelques mythes et réalités populaires de Android test.
Mythe n°1 : Tous Android les appareils sont les mêmes… un test sur des émulateurs suffit
Commençons par un exemple simple. Une application fonctionne parfaitement sur les émulateurs mais sur certains appareils réels, elle plante lors de l'exécution
Les émulateurs sont insuffisant pour vos tests mobiles. Vous devez tester votre application sur de vrais appareils.
Mythe n°2 : il suffit de tester sur certains appareils courants
- Sur différents appareils, votre application est différente car différents appareils ont un matériel, des tailles d'écran, une mémoire, etc. différents. Vous devez tester votre application sur différents appareils, versions de système d'exploitation, réseaux d'opérateurs et emplacements.
Mythe n°3 : des tests exploratoires juste avant le lancement suffisent
- Généralement, dans tous les tests, nous concevons les cas de test puis les exécutons. Mais dans les tests exploratoires, la conception et l’exécution des tests seront réalisées ensemble.
- Dans les tests exploratoires, il n'y a ni plan ni préparation, alors le testeur ferait les tests qu'il souhaite faire. Certaines fonctions seront testées à plusieurs reprises, tandis que d'autres ne seront pas testées complètement.
Mythe n°4 : S'il y a des bugs dans l'application, les utilisateurs comprendront
- Si l'application ne fonctionne pas et présente des bugs, les utilisateurs désinstallent votre application
- Les problèmes de qualité sont la première raison d’une mauvaise évaluation sur Google Play. Cela affecte votre réputation et vous perdez la confiance des clients.
Il est donc essentiel de mettre en place une stratégie de test Android appropriée.
Meilleures pratiques en Android Contrôle de qualité
- Les développeurs d'applications doivent créer les cas de test en même temps qu'ils écrivent le code.
- Tous les cas de test doivent être stockés dans le contrôle de version avec le code source
- Utilisez l'intégration continue et exécutez des tests à chaque fois que le code est modifié
- Évitez d'utiliser des émulateurs et des appareils rootés