Application mobile: Tutoriel de test d’applications Android : un guide pour les débutants

Collecte des connaissances de base avant de tester les applications Android :

Comme son titre le suggère, dans ce didacticiel, nous discuterons davantage 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 le système d’exploitation qui est là 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 %.

Test d'application Android

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.

BasicAndorid ios

[image source]

  • Les numéros ci-dessus sont uniquement pour 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, cela témoigne de l’intérêt que les gens ont développé pour les tablettes sous Android.

Part de marché des tablettes Android de base

[image source]

  • Le Google Play Store a également connu une augmentation rapide du nombre de téléchargements. De 2010 à 2016, les chiffres sont passés de 1 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 prix bas [Avg: 0.06$/app] des applications Android par rapport aux applications iOS.

Pourquoi est-ce que je t’ai juste expliqué tous ces chiffres ?

C’était juste pour vous faire comprendre à quel point Android s’est développé, à quel point le développement d’applications est devenu délicat et combien de marché ce système d’exploitation a conquis au cours de la dernière décennie.

Chaque site Web, application Windows et application Mac a désormais 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 qui sont 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 l’essor 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 simple 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 constitue un avantage supplémentaire.
  • Le prix des téléphones Android n’est pas trop élevé et il est abordable, etc.

Parallèlement aux exigences de développement des applications Android, il y a également eu une augmentation des exigences en matière 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, la durée de vie 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é, donc 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 complète de l’écosystème Android complet.

Présentation de l’application Android

Il existe différentes méthodes de test suivies pour certifier avec succès une application Android.

Une architecture d’application Android typique ressemblerait au schéma ci-dessous :

Architecture d'application Android

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 passeraient 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 distincte pour ses chauffeurs afin de faciliter une livraison en douceur et de supprimer la paperasse.

Les chauffeurs ont installé l’application sur leurs téléphones pour déplacer l’expédition vers différentes étapes de livraison et leur statut correspondant, et les mises à jour de livraison ont été reflétées dans leur application Web existante.

D’autres tels Exemples où l’application mobile est une entité distincte sont WhatsApp, les applications de suivi de la santé comme S Health, etc.

Liste « à 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, certains éléments nécessitent des recherches et une planification supplémentaires pour une livraison réussie de l’application.

Voici quelques-unes des activités qu’il est important pour un AQ d’effectuer avant le début des tests réels :

#1) Recherche sur les systèmes d’exploitation et les appareils :

En plus de comprendre les exigences de l’application, vous devez également comprendre l’impact des différentes versions du système d’exploitation et des modèles d’appareils. Vous devez créer des cas de test ou des scénarios avec le système d’exploitation et les modèles d’appareils.

#2) Banc d’essai :

Contrairement aux applications de bureau, Web et iOS, la création d’un 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 le 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 test, etc., doit être en place. S’il y a un temps séparé requis pour rechercher des fonctionnalités ou des règles commerciales 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 à l’apprentissage de l’outil. Le temps et les efforts requis pour cela doivent être approuvés par le propriétaire du produit ou le client.

#5) Techniques ou méthodes d’essai :

Contrairement aux tests classiques que nous effectuons habituellement, il existe peu de tests très spécifiques aux applications mobiles. À savoir test sur le terrain, test GPS, test de capture d’image, etc. Ceux-ci doivent être documentés dans les cas de test ainsi que 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 :

Le test est normalement réalisé par des flux de test initié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 sont affichées par rapport à l’emplacement.
  • 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.

BasicAndroid zomato

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 sur divers écrans de l’application, les messages interactifs, l’alignement des données, l’apparence et la convivialité de l’application pour différents écrans, la taille des champs, etc. sont testés dans ce cadre.

Pour le même exemple ci-dessus de Zomato, les tests d’interface utilisateur seraient :

  • Vérifiez si les cartes s’affichent 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 s’affichent pas 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 d’application OS Vs et d’application Device Model Vs. Généralement, 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.

La nécessité de ce test est :

  • Lorsqu’un OS comme Android est pris en compte, 7 versions de base se retrouvent en négligeant le nombre de release releases/EPs.
  • Pouvez-vous deviner les types d’appareils Android qui fonctionnent actuellement dans le monde entier ? 1000 ? 2000 ? Tort! 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 fonctionnalités incluent :
    • 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é une fois que tous les modules de l’application sont complètement développés, testés individuellement et que tous les bogues sont corrigés et vérifiés.

Les tests d’interface incluent des tests tels qu’un test complet de bout en bout de l’application, une interaction avec d’autres applications telles que des cartes, des applications sociales, etc.

Toujours en considérant Zomato, les tests d’intégration seraient comme :

  • Vérifiez si l’utilisateur peut réserver une table pour un restaurant.
  • Vérifiez si l’utilisateur peut afficher le menu et commander des plats 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 peut afficher l’emplacement du restaurant sur Google Maps.
  • Vérifiez si l’utilisateur est en mesure d’ouvrir le numéroteur téléphonique et d’appeler le restaurant, etc.

5) Test de réseau :

Les principales caractéristiques des tests de réseau incluent :

  • L’application doit communiquer avec le service intermédiaire afin de mener à bien le processus.
  • Au cours de ce test, la demande/réponse au/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 mobile.
  • Il s’agit d’un test en interne.

6) Tests de performances :

Les performances de l’application dans certaines conditions particulières sont vérifiées.

Ces conditions comprennent :

  • Mémoire faible dans l’appareil.
  • La batterie est à un niveau extrêmement bas.
  • Mauvaise/mauvaise réception 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’applications

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 cas ci-dessus, des tests d’installation doivent être effectués. Cela permet 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) Tests de sécurité :

La confidentialité et la sécurité sont les 2 exigences majeures d’une application. Cependant, dans la banque, les soins de santé, cela devient la principale 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) Tests 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 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é, testé et régressé (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. Les tests sur le terrain vérifient si l’application plante avec une 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 connu sous le nom de vérification de scénario hors ligne. Les conditions où 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 du réseau pendant la phase de comptabilisation de la transaction.
  • Récupération du réseau après une panne.
  • Retrait de la batterie ou Power On/Off lorsqu’il est en phase transactionnelle.

Meilleures pratiques de test d’applications Android

Certains facteurs doivent être pris 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 commencer le processus de test des applications Android.
  • Décidez quels appareils doivent être pris en compte pour le processus de test.
  • La sélection est à faire de manière à maximiser le nombre de clients cibles.
  • Facteurs tels que la version du système d’exploitation, les résolutions d’écran et les facteurs de forme [Tablet or smart phones] 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 d’appareils sont rentables et ils sont utiles pendant la phase de développement initiale.
  • Mais, pour tester les scénarios de la vie réelle, 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ées 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, and 2G] et l’impact sur l’application.
  • Les tests bêta dans le monde réel sont uniques 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 connectivité est principalement contrôlée par un logiciel de simulation qui aide à réguler la vitesse du réseau, la latence et la connectivité limitée lors des tests.
  • Il est dit que les tests sous des connexions réseau réelles sont toujours conseillés pour des résultats/données en temps réel.

4) Tests manuels ou automatisés :

  • Bien que les tests d’automatisation prennent beaucoup de temps pour la première exécution, ils s’avèrent utiles 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.
  • Android Automation doit être associé aux tests manuels lorsque la répétition des tests de régression est élevée dans la phase de développement de l’application, les tests de compatibilité doivent être effectués pour la même application sur différentes versions de système d’exploitation, les points de contrôle de compatibilité descendante, etc.

Cadre 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 robo-électrique
  • Cadre 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 à la fois les clients natifs et hybrides.
  • Les fonctions, les cas de test système et les cas de test d’acceptation utilisateur 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 aide à 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 fantômes.
  • Chaque fois qu’une méthode est implémentée, Robo-electric envoie en interne l’appel à l’objet fantôme.
  • En fonction de l’implémentation, si une méthode est implémentée par un objet fantôme, une valeur est renvoyée. Sinon, NULL est renvoyé.
  • En raison des objets fantômes et de la JVM, l’exécution devient plus rapide.

3) Cadre de test Appium :

  • Ce cadre fonctionne pour les applications Web natives, hybrides et mobiles pour les appareils Android.
  • Appium est libre d’utiliser l’utilitaire.
  • 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 à l’aide de nombreux langages de programmation tels que Java, C#, Python, PHP, Ruby, etc.

Conclusion

L’automatisation des applications Android peut être associée à 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 de l’outil d’automatisation, des facteurs 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 les défis et les solutions de test mobile.

#Tutoriel #test #dapplications #Android #guide #pour #les #débutants