android app testing tutorial
Collecte de connaissances de base avant de tester les applications Android:
Comme son titre l'indique, dans ce tutoriel, nous discuterons plus en détail du processus de test Android.
Mais, avant d'entrer dans les différents détails du processus de test Android, je voudrais poser quelques questions.
Possédez-vous un téléphone mobile?
Maintenant, comme cette question est stupide! Bien sûr, nous le faisons tous. Tout le monde a un téléphone portable. Les téléphones portables sont devenus une nécessité fondamentale de l'existence humaine de nos jours.
Pouvez-vous me dire quel système d'exploitation est présent sur votre téléphone?
Si vous avez acheté votre téléphone entre 2014 et 2016, les chances que votre téléphone fonctionne sur Android sont d'environ 80 à 85%.
Ce que vous apprendrez:
- Croissance d'Android
- Présentation de l'application Android
- Liste des choses à faire avant le début du processus de test
- Types de test pour les applications mobiles
- Bonnes pratiques pour les tests d'applications Android
- Framework de test Android
- Conclusion
- lecture recommandée
Croissance d'Android
Les statistiques ci-dessous décrivent plus en détail la croissance d'Android d'une manière facilement compréhensible.
- En 2009, Android était un débutant et ne représentait que 3,9% du marché total.
- Le principal contributeur était alors le système d'exploitation Symbian avec un nombre impressionnant de 47% (Golden days of Nokia).
- Cette tendance a commencé à changer au fil des ans et Android a maintenant atteint 85,2% en 2016.
( source d'image )
- Les numéros ci-dessus ne concernent que les téléphones mobiles. Le système d'exploitation Android a également un grand impact sur l'industrie des tablettes. De 4,4% de part de marché en 2011 à 35,7% en 2015, on parle de l'intérêt que les gens ont développé pour les tablettes Android.
( source d'image )
- Le Google Play Store a également connu une augmentation rapide du nombre de téléchargements. De 2010 à 2016, les chiffres sont passés d'un milliard de téléchargements par mois à 65 milliards de téléchargements par mois.
- Les téléchargements d'applications sont également grandement affectés par les bas prix (Moy: 0,06 $ / application) des applications Android par rapport aux applications iOS.
Pourquoi est-ce que je viens de vous expliquer tous ces chiffres?
C'était juste pour vous faire prendre conscience de l'ampleur de la croissance d'Android, de la complexité du développement de l'application et du marché que ce système d'exploitation a capturé au cours de la dernière décennie.
Chaque site Web, application Windows et application Mac a maintenant un frère Android. Tout le monde se lance dans le développement d'une application pour Android dès qu'il envisage de développer un site Web / une application Windows. Cela est maintenant devenu nécessaire, car les clients ont également commencé à préférer les applications mobiles aux applications informatiques ou aux sites Web ces dernières années.
Certaines des applications très fréquemment utilisées dans nos activités quotidiennes sont Flipkart, Amazon, Zomato, DeliveryHero, Citi Bank, TrueCaller, Facebook, Gmail, Whatsapp, etc.
La raison de la flambée du marché Android est que:
- C'est un système ouvert, il est donc facile à personnaliser, facile à apprendre et même le développement d'applications est plus facile.
- La publication d'une application sur Google Play Store est assez facile par rapport aux autres play stores.
- Il existe plusieurs fabricants sur le marché des téléphones Android comme Sony, HTC, Samsung, Motorola, etc.
- Il existe un grand nombre de fonctionnalités sur Android telles que DualSIM, microSD, batterie amovible, etc., ce qui est un avantage supplémentaire.
- Le prix des téléphones Android n'est pas trop élevé et il est abordable, etc.
Parallèlement à l'exigence de développement des applications Android, il y a également eu une augmentation du besoin de testeurs connaissant les tests Android.
En tant que testeur, avant de commencer à tester une application Android, vous devez faire beaucoup de devoirs. La première chose à faire est d'étudier l'OS et son histoire. Si vous ne connaissez pas le système d'exploitation, vous ne pouvez pas tester l'application avec les différentes versions. Les fonctionnalités de base de la version du système d'exploitation, l'interface utilisateur, le GPS, la prise en charge du type de réseau, l'autonomie de la batterie, etc., sont quelques-unes des facettes importantes qui affectent une application.
Avec Android, ce n'est pas seulement le système d'exploitation, mais la pléthore d'appareils qui nécessitent également une étude.
Un grand nombre d'appareils sont disponibles sur le marché.Par conséquent, avant de finaliser et de geler votre banc d'essai, vous devez connaître la part d'appareils du public cible. Les différents appareils offrant différentes fonctionnalités telles que DualSIM, double caméra, résolution d'écran, thèmes, etc. affectent une application et doivent être testés.
Par conséquent, il est très important pour un QA de rassembler une connaissance approfondie de l'écosystème Android complet.
Présentation de l'application Android
Il existe différentes méthodes de test qui sont suivies par la certification réussie d'une application Android.
Une architecture d'application Android typique ressemblerait au diagramme ci-dessous:
implémenter la table de hachage c ++
Sur la base de la figure ci-dessus, il existe 2 possibilités pour une application:
1) Application mobile pour l'application Web: Il est possible que le client dispose d'une application Web et souhaite créer une application mobile pour celle-ci. Amazon, Jabong, Myntra, etc., ont fait la même chose, et au moment où les applications mobiles ont commencé à créer un boom sur le marché, ces sociétés commerciales ont réalisé que bientôt les gens passeront des applications Web aux applications mobiles.
2) Application mobile en tant qu'entité commerciale distincte: J'ai testé une application logistique similaire, afin d'augmenter l'activité, elle a créé une application séparée pour ses chauffeurs afin de faciliter une livraison fluide et a supprimé la paperasse.
Les chauffeurs avaient installé l'application sur leurs téléphones pour déplacer l'envoi à différentes étapes de livraison et leur statut correspondant, et les mises à jour de livraison étaient reflétées dans leur application Web existante.
Autre tel Exemples où l'application mobile est une entité distincte sont WhatsApp, les applications de suivi de la santé comme S Health, etc.
Liste des choses à faire avant le début du processus de test
Contrairement à un cycle de test normal, pour la toute première version d'une application mobile, il y a quelques éléments qui nécessitent des recherches et une planification supplémentaires pour une livraison réussie de l'application.
Voici quelques-unes des activités importantes pour un AQ avant le début des tests:
#1) Recherche sur le système d'exploitation et les appareils:
En plus de comprendre les exigences de l'application, vous devez également comprendre l'impact des différentes versions de système d'exploitation et des modèles d'appareils. Vous devez créer des cas de test ou des scénarios avec les modèles de système d'exploitation et de périphérique.
#deux) Banc d'essai:
Contrairement aux applications de bureau, Web et iOS, la création du banc d'essai pour les applications Android est très délicate en raison du système Android ouvert. La décision doit être prise après discussion avec la BA, les développeurs et les propriétaires de produits pour trouver le public cible.
# 3) Plan de test:
Comme il s'agit de la première version, un plan approuvé avec un banc d'essai approuvé, des types de tests, etc., devrait être en place. S'il y a un temps séparé nécessaire pour rechercher des fonctionnalités ou des règles métier ou si les tests vont être délicats, etc., tout doit être couvert dans le plan.
# 4) Outils d'automatisation:
Les outils d'automatisation requis pour les applications mobiles sont très différents de ceux des applications de bureau ou Web. Par conséquent, vous devrez peut-être consacrer plus de temps et d'efforts pour apprendre l'outil. Le temps et les efforts nécessaires pour cela doivent être approuvés par le propriétaire du produit ou le client.
# 5) Techniques ou méthodes de test:
Contrairement aux tests conventionnels que nous effectuons normalement, il existe peu de tests très spécifiques aux applications mobiles. À savoir le test sur le terrain, le test GPS, le test de capture d'image, etc. Ceux-ci doivent être documentés dans les cas de test avec la manière dont ces types seront testés.
Types de test pour les applications mobiles
Les types de tests suivants sont effectués afin de certifier une application Android:
1) Test fonctionnel:
Les tests sont normalement réalisés par des flux de test lancés par l'interface utilisateur. Non seulement le flux d'un cas d'utilisation est testé, mais les différentes règles métier sont également testées. Les tests sont effectués en certifiant les exigences. c'est-à-dire si l'application fonctionne en fonction des exigences.
Prenons le Exemple de l'application Zomato.
Lorsque vous lancez l'application, en fonction de l'emplacement, la liste des restaurants s'affiche. Maintenant, en tant que QA, vous devez tester la liste des restaurants.
Il s'agit de tests de fonctionnalités et vous testerez ici des fonctionnalités telles que:
- Vérifiez si les cartes de restaurant s'affichent à l'endroit.
- Vérifiez si les restaurants affichés sont dans la plage donnée (km) de l'emplacement.
- Vérifiez si le nombre d'avis pour chaque carte est synchronisé avec les avis donnés.
- Vérifiez si l'ajout d'un nouveau restaurant pour un emplacement se reflète dans la liste.
- Vérifiez si les restaurants sont répertoriés en fonction de la règle de filtrage de Zomato, etc.
2) Test de l'interface utilisateur Android:
Il s'agit d'un test de l'application centré sur l'utilisateur. Dans cette phase de test, des éléments tels que la visibilité du texte dans divers écrans de l'application, les messages interactifs, l'alignement des données, l'aspect et la convivialité de l'application pour différents écrans, la taille des champs, etc. sont testés sous celui-ci.
Pour le même exemple ci-dessus de Zomato, les tests d'interface utilisateur seraient:
- Vérifiez si les cartes sont correctement alignées avec la taille de l'écran du mobile.
- Vérifiez si l'image du restaurant s'affiche comme prévu.
- Vérifiez si les détails de la carte, la note du restaurant, le type de cuisine, l'adresse, etc. sont correctement alignés.
- Vérifiez si le défilement de la liste est sans problème et si les cartes ne sont pas affichées mal alignées lorsqu'une longue liste de cartes défile, etc.
3) Test de compatibilité:
Ces tests sont effectués principalement sous la forme de deux matrices de l'application OS Vs et de l'application Device model Vs. Habituellement, une liste des systèmes d'exploitation pris en charge (et parfois des périphériques) est fournie par le propriétaire du produit ou le client.
Le besoin de ces tests est:
comment réparer la passerelle par défaut windows 10
- Lorsqu'un OS comme Android est pris en compte, 7 versions de base sont trouvées négligeant le nombre de versions de correctifs / EP.
- Pouvez-vous deviner les types d'appareils Android fonctionnant actuellement dans le monde entier? 1000? 2000? Mal! La bonne réponse est 24 000. Il existe 24 000 types d'appareils Android uniques qui sont présents et actifs dans le monde.
- Avec de telles variantes, les tests de compatibilité jouent un rôle essentiel dans la certification d'une application Android.
- Nous devons non seulement valider le système d'exploitation et le type de l'appareil, mais également valider quelques autres fonctionnalités qui relèvent des tests de compatibilité. Les caractéristiques comprennent:
- Taille de l'écran
- Résolution d'écran
- Connectivité réseau
4) Test d'interface:
En d'autres termes, il est également appelé test d'intégration. Ce test est effectué après que tous les modules de l'application sont complètement développés, testés individuellement et tous les bogues corrigés vérifiés.
Les tests d'interface incluent des tests comme un test complet de bout en bout de l'application, l'interaction avec d'autres applications telles que Maps, les applications sociales, etc., l'utilisation du microphone pour saisir du texte, l'utilisation de l'appareil photo pour scanner un code-barres ou prendre une photo, etc.
En considérant à nouveau Zomato, les tests d'intégration seraient comme:
- Vérifiez si l'utilisateur est en mesure de réserver une table pour un restaurant.
- Vérifiez si l'utilisateur peut afficher le menu et commander des aliments en ligne.
- Vérifiez si l'utilisateur peut bénéficier d'un coupon PayTM lors de la commande de nourriture.
- Vérifiez si l'utilisateur est en mesure de voir l'emplacement du restaurant sur Google Maps.
- Vérifiez si l'utilisateur est capable d'ouvrir le composeur téléphonique et d'appeler le restaurant, etc.
5) Test de réseau:
Les principales caractéristiques des tests de réseau comprennent:
- L'application doit parler au service intermédiaire afin d'exécuter le processus.
- Au cours de ce test, la demande / réponse vers / depuis le service est testée pour diverses conditions.
- Ce test est principalement effectué pour vérifier le temps de réponse dans lequel l'activité est effectuée comme l'actualisation des données après la synchronisation ou le chargement des données après la connexion, etc.
- Ceci est fait à la fois pour une connexion wifi forte et le réseau de données mobiles.
- Il s'agit d'un test en interne.
6) Test de performance:
Les performances de l'application dans certaines conditions particulières sont vérifiées.
Ces conditions comprennent:
- Mémoire insuffisante dans l'appareil.
- La batterie est extrêmement à un niveau bas.
- Mauvaise / mauvaise réception du réseau.
Les performances sont essentiellement testées à partir de 2 extrémités, l'extrémité de l'application et l'extrémité du serveur d'application
7) Test d'installation:
Il existe deux types d'applications sur un appareil Android, à savoir les applications préinstallées et les applications installées ultérieurement par l'utilisateur.
Pour les deux éléments ci-dessus, des tests d'installation doivent être effectués. Ceci afin d'assurer une installation fluide de l'application sans se retrouver dans des erreurs, une installation partielle, etc.
Les tests de mise à niveau et de désinstallation sont effectués dans le cadre des tests d'installation.
8) Test de sécurité:
La confidentialité et la sécurité sont les 2 principales exigences d'une application. Cependant, dans la banque, la santé, cela devient la première exigence.
Le test du flux de données pour le mécanisme de cryptage et de décryptage doit être testé dans cette phase. L'accès aux données stockées est également testé dans cette phase.
9) Test sur le terrain:
Les tests sur le terrain sont effectués spécifiquement pour le réseau de données mobiles et non en interne, mais en sortant et en utilisant l'application en tant qu'utilisateur normal. Ces tests sont effectués «uniquement» après que l’ensemble de l’application a été développée, testée et régressée (pour les bogues et les cas de test).
Il s'agit essentiellement de vérifier le comportement de l'application lorsque le téléphone dispose d'une connexion 2G ou 3G. Le test sur le terrain vérifie si l'application plante en cas de connexion réseau lente ou si le chargement des informations prend trop de temps.
Vous pouvez en savoir plus sur les tests sur le terrain dans notre article «Importance et nécessité des tests sur le terrain pour les applications mobiles»
10) Test d'interruption:
Ce type de test est également appelé vérification de scénario hors ligne. Les conditions dans lesquelles la communication est interrompue au milieu sont appelées conditions hors ligne.
Certaines des conditions dans lesquelles les interruptions d'un réseau peuvent être testées sont les suivantes:
- Retrait du câble de données pendant le processus de transfert de données.
- Panne de réseau pendant la phase de validation des transactions.
- Récupération du réseau après une panne.
- Retrait de la batterie ou mise sous / hors tension lorsqu'elle est en phase transactionnelle.
Bonnes pratiques pour les tests d'applications Android
Il y a certains facteurs à prendre en compte lors de la mise en place d'une stratégie de test d'applications mobiles.
Elles sont:
1) Sélection de l'appareil:
- C'est l'une des étapes les plus critiques avant de démarrer le processus de test des applications Android.
- Décidez des appareils à prendre en compte pour le processus de test.
- La sélection est à faire de manière à maximiser le nombre de clients cibles.
- Des facteurs tels que la version du système d'exploitation, les résolutions d'écran et les facteurs de forme (tablette ou smartphone) jouent un rôle essentiel dans la phase de sélection.
- Si nécessaire, même l'aide d'émulateurs peut être prise en compte.
- Mais les émulateurs ne doivent pas remplacer le processus de test des périphériques physiques.
- Les émulateurs de périphériques sont rentables et ils sont utiles pendant la phase de développement initiale.
- Mais, pour tester les scénarios réels, les appareils physiques sont indispensables. Les émulateurs et les appareils physiques doivent être utilisés de manière équilibrée pour un résultat optimisé.
2) Test bêta de l'application:
- Les tests bêta sont très efficaces pour tester avec les utilisateurs du monde réel, les appareils réels, les réseaux réels et les applications installés dans une vaste zone géographique.
- Cela donne une image claire de la densité du réseau, des variations du réseau (Wi-Fi, 4G, 3G et 2G) et de l'impact sur l'application.
- Les tests bêta dans le monde réel sont uniques en leur genre et ne peuvent pas être répliqués dans un environnement contrôlé.
3) Connectivité:
- Normalement, les applications Android sont connectées à Internet pour diverses exigences.
- La connectivité sur différents appareils joue un rôle clé dans la mise en place de la stratégie.
- La plupart du temps, la connectivité est contrôlée par un logiciel de simulation qui aide à réguler la vitesse du réseau, la latence et la connectivité limitée pendant les tests.
- On dit que le test sous des connexions réseau réelles est toujours conseillé pour les résultats / données en temps réel.
4) Test manuel ou automatisé:
- Bien que les tests d'automatisation prennent beaucoup de temps pour la première exécution, ils sont pratiques lorsque les tests doivent être répétés. Cela réduit également la durée globale des tests au cours des différentes étapes de développement.
- L'automatisation Android doit être assortie de tests manuels lorsque la répétition des tests de régression est élevée dans la phase de développement de l'application, des tests de compatibilité doivent être effectués pour la même application sur différentes versions de système d'exploitation, des points de contrôle de compatibilité descendante, etc.
Framework de test Android
Il existe une poignée de frameworks de test Android disponibles.
Dans ce tutoriel, nous allons discuter de 3 types différents de frameworks les plus couramment utilisés:
- Cadre de test Robotium
- Cadre de test robot-électrique
- Framework de test Appium
1) Cadre de test Robotium:
- Ce framework est utilisé pour écrire des cas de test de boîte noire sophistiqués et robustes pour les applications Android.
- Il prend en charge les clients natifs et hybrides.
- Les fonctions, les cas de test système et les cas de test d'acceptation des utilisateurs peuvent être écrits à l'aide de ce cadre.
- Robotium prend en charge Android 1.6 et supérieur et prend également en charge les boîtes de dialogue, les menus, les activités, etc.
- Ce framework gère automatiquement plusieurs activités Android.
- Une poignée de méthodes sont fournies dans le cadre de Robotium pour interagir avec différents composants graphiques de l'application Android. Certains d'entre eux sont comme ci-dessous:
- retourner();
- getButton ();
- isRadioButtonChecked ();
- searchText («Utilisateur»);
- cliquez sur le bouton («Déconnexion»);
2) Cadre de test Robo-électrique:
- Ce framework permet de tester les applications Android sur la JVM basée sur le framework JUnit4.
- Il utilise l'API Android.
- Cela aide à écrire des cas de test et à les exécuter sur la JVM.
- En vertu de cela, toutes les classes sont remplacées par quelque chose appelé objets d'ombre.
- Chaque fois qu'une méthode est implémentée, Robo-electric envoie en interne l'appel à l'objet shadow.
- En fonction de l'implémentation, si une méthode est implémentée par un objet shadow, une valeur est renvoyée. Sinon, NULL est retourné.
- En raison des objets d'ombre et de la JVM, l'exécution devient plus rapide.
3) époques du cadre de test;
- Cette structure fonctionne pour les applications Web natives, hybrides et mobiles pour les appareils Android.
- Appium est un utilitaire gratuit.
- L'API unique fonctionne à la fois pour Android et pour la plate-forme iOS. C'est l'un des frameworks qui prend en charge les tests multiplateformes.
- Il utilise le pilote Web Selenium pour interagir avec l'application Android.
- Appium prend en charge l'écriture de scripts en utilisant de nombreux langages de programmation tels que Java, C #, Python, PHP, Ruby, etc.
Conclusion
L'automatisation des applications Android peut être assortie d'un manuel selon les besoins. Cependant, si les tests Androind Automation sont ajoutés à la stratégie, la sélection du bon outil est une tâche ardue. Lors de la sélection des facteurs de l'outil d'automatisation tels que le support multi-plateforme, le flux de travail de test, le prix de l'outil, le service / support, etc. doivent être pris en compte.
Les tests d'applications Android comportent plusieurs défis. Il y a différents facteurs à prendre en compte avant que le processus de test Android puisse vraiment être mis en œuvre, mais une fois cela fait, cela devient une tâche très intéressante.
Regardez notre prochain tutoriel pour en savoir plus sur Défis et solutions de test mobile.
lecture recommandée
- 11 meilleurs outils d'automatisation pour tester les applications Android (outils de test des applications Android)
- Services de test bêta des applications mobiles (outils de test bêta iOS et Android)
- Créer des tests Appium pour une application Android
- Test fonctionnel vs test non fonctionnel
- Tutoriels de test d'applications mobiles (un guide complet avec plus de 30 tutoriels)
- Meilleurs outils de test de logiciels 2021 (Outils d'automatisation des tests QA)
- Test alpha et test bêta (un guide complet)
- Tutoriels Eclipse détaillés pour les débutants