Android Tutoriel sur les tests d'applications avec un framework d'automatisation
โก Rรฉsumรฉ intelligent
Android Les tests d'applications vรฉrifient une version sur un paysage d'appareils fragmentรฉ, en combinant des contrรดles unitaires, d'intรฉgration, opรฉrationnels et systรจme avec des frameworks d'automatisation qui s'exรฉcutent soit sur un appareil, soit directement sur la JVM.
Pourquoi Android Essai?
Android est le plus grand systรจme d'exploitation au monde. En mรชme temps, Android est fragmentรฉ : il existe 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
Un correct Android La stratรฉgie de test devrait inclure les รฉlรฉments suivants
- Test unitaire
- Test d'intรฉgration
- OperaTest national
- test du systรจme
Tests unitaires
Les tests unitaires sont des ensembles de programmes conรงus pour vรฉrifier une unitรฉ atomique de code source, telle qu'une mรฉthode ou une classe.
Le Android La plateforme est prรฉ-intรฉgrรฉe avec JUnit Framework 3.0. Il s'agit d'un framework open source pour l'automatisation. Tests unitaireset il permet aux dรฉveloppeurs d'รฉcrire des programmes de tests unitaires efficaces.
Les tests d'interface utilisateur (UI) complรจtent les tests unitaires. Ils couvrent les composants d'interface utilisateur de votre application cible et vรฉrifient qu'elle renvoie le rรฉsultat attendu pour une sรฉquence d'actions utilisateur sur l'appareil.
La mรฉthode courante pour effectuer des tests d'interface utilisateur sur un appareil est Android Fournisseurs d'instruments. Mais cela pose des problรจmes de performances. L'un des meilleurs outils pour effectuer des tests d'interface utilisateur sur Android is Robotium.
โ ๏ธ Note de version : JUnit 3 classes telles que InstrumentationTestCase ont รฉtรฉ dรฉprรฉciรฉes ร partir de l'API 24 ; les projets actuels utilisent AndroidTest X, Espresso et UI Automator. Robotium Aucune nouvelle sortie n'a eu lieu depuis 2016.
Tests d'intรฉgration
In Test d'intรฉgration, tous les modules testรฉs unitairement sont combinรฉs et vรฉrifiรฉs. Android Cela implique souvent de vรฉrifier l'intรฉgration avec des composants tels que les tests de service, d'activitรฉ et de fournisseur de contenu.
De nombreux frameworks de test sont utilisรฉs pour rรฉaliser des tests d'intรฉgration pour Android, tels que Troyd, Robolectric et Robotium.
Operatests nationaux
OperaLes tests fonctionnels, รฉgalement appelรฉs tests d'acceptation, sont des tests de haut niveau qui vรฉrifient l'exhaustivitรฉ et l'exactitude de l'application.
In Android, FitNesse est un framework open-source qui facilite l'exรฉcution de tests opรฉrationnels sur 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 Tracvoir pour effectuer des tests de performance sur AndroidCet outil peut vous aider ร dรฉboguer votre application et ร analyser ses performances. Traceview est dรฉsormais obsolรจte et remplacรฉ par Profileur de CPU.
Chaรฎnes de vente Android Tests
As Android Le marchรฉ รฉtant fragmentรฉ, il est nรฉcessaire de rรฉaliser des tests sur de nombreux appareils, ce qui engendre des coรปts. Automatisation Android Les tests permettent de rรฉduire ces coรปts.
Avantages de l'automatisation Android vers les tests
- 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 les applications sont Android framework de test. Il est bien intรฉgrรฉ au Android Les outils SDK et leur architecture comportent trois parties.
- Le package d'application est votre application cible qui doit รชtre testรฉe.
- InstrumentationTestRunner est le Cas de test Un exรฉcuteur de tests qui teste l'application cible. Il comprend :
- Outils d'essai : Outils SDK pour la crรฉation de tests. Ils sont intรฉgrรฉs ร l'IDE ou exรฉcutรฉs en ligne de commande.
- SingeRunner : Un outil qui fournit des API pour รฉcrire des programmes qui contrรดlent un Android pรฉriphรฉrique ou รฉmulateur en dehors de Android code.
- Le package de test est organisรฉ en projets de test et suit une convention d'appellation. Si l'application testรฉe a pour nom de package ยซ com.mydomain.myapp ยป, le package de test doit s'appeler ยซ com.mydomain.myapp.test ยป. Le package de test comprend deux objets :
- Classes de cas de test : Inclure les mรฉthodes de test ร exรฉcuter sur l'application cible.
- Objets factices : Inclure des donnรฉes fictives qui serviront d'exemples d'entrรฉe pour les cas de test.
Android Classes de cas de test
- TestCase comprend JUnit mรฉthodes pour exรฉcuter JUnit tester
- TestSuite est utilisรฉ pour exรฉcuter un ensemble de cas de test
- InstrumentationTestSuite est une suite de tests qui injecte l'instrumentation dans InstrumentationTestCase avant de les exรฉcuter.
- InstrumentationTestRunner exรฉcute des cas de test sur l'application cible.
- AndroidTestCase รฉtend JUnit Cas de test avec des mรฉthodes d'accรจs aux ressources telles que le contexte d'activitรฉ.
- ApplicationTestCase vรฉrifie les classes de l'application dans un environnement contrรดlรฉ.
- InstrumentationTestCase vรฉrifie une fonctionnalitรฉ ou un comportement particulier, par exemple l'affichage de l'interface utilisateur de l'application.
- ActivityTestCase est une classe de base qui permet de tester les activitรฉs de l'application.
- ProviderTestCase est une classe permettant de tester un seul ContentProvider.
- ServiceTestCase teste les classes de service dans un environnement de test et prend en charge le cycle de vie des services.
- SingleLaunchActivityTestCase est utilisรฉ pour tester une seule activitรฉ avec un InstrumentationTestCase.
- Cas de test unitaire d'activitรฉ est utilisรฉ pour tester une activitรฉ isolรฉe.
- Instrumentation de l'activitรฉ - Cas test 2 รฉtend le JUnit La classe TestCase vous connecte ร l'application cible grรขce ร l'instrumentation, vous permettant ainsi d'accรฉder aux composants de l'interface graphique et d'envoyer des รฉvรฉnements d'interface utilisateur tels que des frappes au clavier ou des interactions tactiles.
Voici un exemple de cas de test d'instrumentation d'activitรฉ. Il vรฉrifie le fonctionnement de l'interface utilisateur d'une application Calculatrice et contrรดle l'exactitude des rรฉsultats affichรฉs.
Cadre de tests robotiques
Tests utilisant le Android Tester un appareil ou un รฉmulateur avec un framework de test s'avรจre complexe. La crรฉation et l'exรฉcution des tests sont lentes et exigent un effort de dรฉveloppement considรฉrable. Pour pallier ce problรจme, une alternative existe : le framework de test Robolectric.
Robolectric vous permet de gรฉrer Android Effectue des tests directement sur la JVM sans avoir besoin d'un appareil ou d'un รฉmulateur.
Classes de cas de test roboรฉlectriques
Robolectric peut effectuer les actions suivantes :
- Inscrivez-vous et crรฉez une classe Shadow
- Intercepter le chargement de Android classe
- Utilisations Javassist 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 cadres de test
Outre les frameworks de test mentionnรฉs ci-dessus, il en existe beaucoup d'autres, 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.
- Espresso
- Appium
Mythes de Android Tests
De nombreuses entreprises se dรฉveloppent Android Tests 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 รฉtant identiques, les tests sur รฉmulateurs suffisent.
Une application peut fonctionner parfaitement sur des รฉmulateurs, mais planter lors de son exรฉcution sur certains appareils rรฉels.
Les รฉmulateurs ne suffisent pas pour vos tests mobiles. Vous devez tester votre application sur de vrais appareils.
Mythe nยฐ 2 : Tester sur quelques appareils courants suffit
Votre application s'affiche diffรฉremment selon les appareils en raison des variations de matรฉriel, de taille d'รฉcran et de mรฉmoire. Testez-la sur divers appareils, systรจmes d'exploitation, rรฉseaux d'opรฉrateurs et zones gรฉographiques.
Mythe nยฐ 3 : Les tests exploratoires juste avant le lancement suffisent
- Dans la plupart des tests, on conรงoit des cas de test puis on les exรฉcute ; dans les tests exploratoires, la conception et lโexรฉcution se font simultanรฉment.
- Il n'y a ni plan ni prรฉparation, le testeur exรฉcute donc les tests de son choix. Certaines fonctions sont testรฉes ร plusieurs reprises, tandis que d'autres ne le sont jamais.
Mythe nยฐ 4 : Si lโapplication comporte des bugs, les utilisateurs comprendront.
- Si l'application ne fonctionne pas et comporte des bugs, les utilisateurs la dรฉsinstallent.
- Les problรจmes de qualitรฉ sont la premiรจre raison des mauvaises critiques. Google Jouer, c'est nuire ร sa rรฉputation et perdre la confiance de ses clients.
Il est donc essentiel d'avoir un รฉquipement appropriรฉ Android Stratรฉgie de test en place.
Meilleures pratiques en Android Tests
- 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 un systรจme de 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 de vous fier uniquement aux รฉmulateurs et aux appareils rootรฉs ; confirmez les rรฉsultats sur du matรฉriel rรฉel avec un inspecteur tel que uiautomatorviewer





