ios app testing beginners guide with practical approach
Collection de connaissances de base pour les tests d'applications iOS:
«Vous savez, tout le monde a un téléphone portable, mais je ne connais pas une personne qui aime son téléphone portable. Je veux créer un téléphone que les gens adorent. » - Steve Jobs.
C'était à propos de l'iPhone de Steve Jobs. Steve a vraiment fait en sorte qu'Apple s'efforce de faire de son appareil mobile un appareil préféré de tous les temps.
Les utilisateurs ont toujours aimé les appareils mobiles Apple, que ce soit l'iPhone, l'iPod Touch ou l'iPad. Les données actuelles suggèrent qu'il y a près d'un milliard d'appareils Apple opérationnels dans le monde qui fonctionnent sur iOS.
C’est un milliard d’entre eux.
Voici l'analyse de la part de marché des iPhones en 2016:
(image la source )
Ce que vous apprendrez:
- ios
- Test iOS
- Types de tests d'applications iOS
- Test manuel - Utilisation de l'appareil
- Test manuel - Utilisation de l'émulateur
- Automatisation iOS
- Meilleures pratiques pour tester une application iOS
- Cadres d'automatisation iOS
- Conclusion
- lecture recommandée
ios
iOS est un système d'exploitation mobile qui a été conçu par Apple précisément pour ses appareils, souvent appelés iDevices. Depuis 2007, lorsque l'iOS a été conçu pour les iPhones uniquement, le système d'exploitation a évolué pour prendre en charge les appareils Touch et les iPad également.
Les recherches actuelles indiquent qu'iOS est le deuxième système d'exploitation mobile le plus populaire du marché. Android fonctionne sur des appareils construits par divers fabricants, mais la beauté d'iOS est qu'il est limité uniquement au matériel Apple, ce qui indique clairement la popularité du système d'exploitation.
iOS a vu un total de 10 versions majeures au fil des ans et a offert des mises à jour de fonctionnalités notables dans chacune de ses versions.
Ce système d'exploitation iOS est réputé pour sa convivialité, sa fluidité dans les opérations, ses applications sans crash, etc. Tout en discutant des applications, l'App Store Apple iTunes pour iOS est assez trop riche avec un certain nombre d'applications pouvant atteindre 2,2 millions. Le téléchargement d'applications est rapidement passé à 130 milliards.
iOS est un système d'exploitation qui n'est limité par aucune barrière zonale ou linguistique. C'est l'un des facteurs majeurs de ce système d'exploitation qui devient si célèbre en seulement 10 ans de son développement. Il prend en charge 40 langues différentes.
Pas seulement les langues, même l'interface utilisateur des appareils iOS est également très attrayante et élégante par rapport aux appareils Android.
Tout en parlant des applications en détail, vous trouverez ci-dessous quelques statistiques à ce sujet:
- L'App Store d'Apple iTunes reçoit chaque jour près de 1000 nouvelles candidatures.
- Environ 1/3rddu total des applications de l'App Store Apple iTunes sont téléchargeables gratuitement.
- Les frais d'application iOS payés varient de 1,10 à 1,30 $ en moyenne.
- Le prix moyen d'un jeu iOS varie de 0,55 à 0,65 $.
Combien d'applications avez-vous utilisées sur votre iPhone, iPod Touch ou iPad?
Une poignée! Droit? De Gmail et Facebook à Clash of Clans and Asphalts. Ce type d'applications, les nombres et la variété des utilisateurs apportent aux testeurs de logiciels des affaires sérieuses. N'est-ce pas ??
En tant que testeur, non seulement la fonctionnalité, mais un test approfondi de l'interface utilisateur doit également être effectué pour vérifier l'application sur iPhone, iPod et iPad en raison de la variation de leurs tailles.
Test iOS
Comme indiqué précédemment, iOS est uniquement limité au matériel Apple ou aux appareils fabriqués par Apple. C’est en effet un énorme soulagement. Cependant, de nombreux appareils Apple et leurs versions prennent en charge iOS.
En bout de ligne, Apple a un système fermé, contrairement à Android qui est un système ouvert. Les versions d'OS ou d'appareils sont bien planifiées.
C'est un avantage supplémentaire car:
- La taille des appareils disponibles ou sur le point de sortir est fixe et en tant que QA, nous devons avoir une idée très claire de ce que tous les appareils sont hors du marché. Il devient facile pour un AQ de décider du banc d'essai pour les tests
- Comme pour les appareils, nous n'avons pas besoin de faire une analyse approfondie du système d'exploitation, car il s'agit d'un système fermé, il est moins coûteux en temps (et en efforts) de décider du banc de test pour les tests du système d'exploitation.
- Apple a une bonne variété de ses propres outils d'automatisation, bien qu'ils soient un peu difficiles à apprendre.
- Je me souviens que pour les tests GPS pour Android, j'ai dû passer 2-3 jours pour découvrir comment créer des scripts factices pour envoyer de faux emplacements. Mais c'était très simple et direct dans iOS car il dispose d'une fonctionnalité intégrée pour envoyer de faux GPS pour marcher, courir, faire du vélo, etc.
- Pour le test initial, il n'est pas recommandé de tester le GPS par un test sur le terrain, l'envoi de données GPS factices est conseillé et cela permet également de gagner du temps.
- Apple a des directives strictes pour soumettre une demande, c'est une grande aide en quelque sorte plutôt que d'être rejeté après la soumission et une bonne chance de succès, contrairement à d'autres OS où il n'y a pas de directives strictes.
- La fonctionnalité de l'appareil et du système d'exploitation lui-même est fixe et simple, ce qui réduit les chances de passer à côté de la manière dont une application peut fonctionner. Dans iOS, il n'y a aucun moyen de forcer l'arrêt d'une application pendant que nous pouvons tuer et forcer l'arrêt des applications sur Android. Ainsi, les complexités sont réduites pour les tests ici.
Voici quelques-uns des avantages que nous tirons des produits Apple, mais pas nécessairement que ce sont les avantages de chaque produit ou application. Alors que pour les applications développées en multiplateforme, iOS est difficile à gérer.
Le haut niveau la classification est comme indiqué ci-dessous:
La première étape pour se lancer dans les tests d'applications iOS consiste à prendre en compte le type d'implémentation.
L'implémentation de l'application peut être l'un des 3 types ci-dessous:
1) Applications Web: Ce sont les applications qui se comportent de la même manière que la construction dans les applications iOS. Il s’agit des sites Web normaux auxquels un utilisateur accède sur le navigateur Safari de l’iPhone.
2) Application native: Une application développée à l'aide du SDK iOS (Kit de développement logiciel) s'exécute de manière native sur les appareils iOS pris en charge tels que VLC, Flipboard, Uber, etc.
3) Application hybride: Il s'agit du mélange ou de l'hybride des deux types mentionnés ci-dessus. Cela donne accès au contenu Web via une zone de visualisation de contenu Web et comporte également des éléments d'interface utilisateur pour iOS. Par exemple. Zomato, Twitter, Gmail, etc.
Types de tests d'applications iOS
Les différents types de tests d'applications iOS (tels qu'ils sont effectués dans des conditions typiques) peuvent être les suivants:
- Test manuel - Utilisation de l'appareil
- Test du système
- Test UI / UX
- Test de sécurité
- Test sur le terrain
- Test manuel - Utilisation de l'émulateur
- Test unitaire
- Test d'intégration
- Test de l'interface utilisateur
- Test d'automatisation
- Les tests de régression
- Test BVT
- Test de compatibilité
- Test de performance
Exemple d'application:
Avant de passer aux différents aspects des processus de test iOS, prenons un exemple d'application iOS typique.
Prenons en compte une demande de financement d'équipe sportive. L'application aura une connexion à un compte social (Google / Facebook) et une page de paiement.
Avant d'accéder à la page de paiement, il devrait y avoir une option pour sélectionner les montants définis par le système ou un champ personnalisé pour saisir le montant. Une fois le paiement effectué, un certificat PDF doit être affiché à l'écran et en même temps, le PDF doit également être envoyé par courrier électronique au compte de messagerie de l'utilisateur actuellement connecté.
Test manuel - Utilisation de l'appareil
a) Test du système:
Ce type de test iOS est effectué sur le système pour vérifier si les différents composants du système fonctionnent ensemble.
Dans ce processus de test, l'application iOS est lancée sur un véritable appareil Apple, suivie de son interaction avec l'interface utilisateur pour déclencher un ou des ensembles spécifiques d'actions utilisateur. Les actions typiques de l'utilisateur peuvent être une opération tactile ou une opération de balayage sur l'écran.
comment créer une liste java
Enfin, le résultat est testé par rapport au résultat attendu.
Pour notreExempledonné ci-dessus, un test système typique peut comprendre les étapes suivantes:
- Connectez-vous à l'équipe sportive iOS et à l'application de collecte de fonds en utilisant la connexion au compte Facebook en utilisant l'authentification ouverte.
- Sélectionnez un montant système prédéfini de 10 $ parmi les options proposées.
- Accédez à la passerelle de paiement.
- Sélectionnez l'option de portefeuille mobile PayTm pour le processus de paiement.
Les tests système sont les opérations qui couvrent principalement les différents flux de bout en bout dans le système. Chaque test doit être exécuté avec les différentes configurations disponibles. Et cela dépend également de l'appareil et de la version iOS sur lesquels l'application est installée.
b) Test de l'interface utilisateur iOS
L'interface utilisateur / UX des appareils iOS a été un élément clé de leur réussite.
Les tests UI / UX sur les appareils iOS peuvent être classés dans les catégories suivantes:
- Contributions: Les tests des fonctionnalités de l'écran tactile (comme le toucher long / court, le toucher 3D, le défilement), la taille des boutons, le positionnement des boutons, la couleur des polices et leur taille, etc., entrent dans cette catégorie.
- Clés matérielles: Les applications natives fonctionnent de manière transparente avec les touches matérielles / physiques intégrées présentes sur l'appareil, telles que la touche Accueil, les boutons Son, etc. L'application testée doit également interagir avec les touches matérielles de la même manière.
- Touches programmables / clavier virtuel: À quel point est-il ennuyeux lorsque le clavier n'apparaît pas lorsque vous êtes dans votre page de message Whatsapp? L'apparence d'un clavier, la possibilité de se cacher lorsque vous n'en avez pas besoin, la prise en charge des smileys, des symboles, de tous les caractères / symboles etc. sont nécessaires.
- Dans notre Exemple , le clavier peut entrer dans l'image à plusieurs endroits tels que la saisie du montant personnalisé, la saisie des informations d'identification / détails de la carte dans la passerelle de paiement, etc.
- Écran: L'application, si elle est prise en charge sur plusieurs appareils, doit être testée pour son orientation dans tous les appareils. Il peut y avoir des changements de résolution en fonction de l'appareil choisi pour le processus de test. Dans le même temps, des tests doivent également être effectués pour les modes portrait / paysage et l'utilisation du clavier dans chacun des cas.
Si votre application est créée non seulement pour iOS, il y a quelques pointeurs qui doivent être spécifiquement testés pour iOS, comme:
- Listes: Dans iOS, lorsqu'une liste doit être affichée, elle affiche toujours un tout nouvel écran, contrairement à Android où une fenêtre contextuelle apparaît.
Voici un exemple de la même chose:
( la source )
- Messages: Lorsqu'une application plante, le message affiché dans iOS est différent de celui affiché sur un Android. De plus, si vous avez observé, de petits messages clignotent sur les téléphones Android lorsque vous libérez de la mémoire comme «# Go de mémoire libérée», etc., mais nous ne pouvons jamais voir les messages flash dans iOS.
Voici un exemple:
( la source )
- Confirmation de suppression: Si vous observez de près une application iOS, dans une fenêtre contextuelle de confirmation de suppression, l'action Annuler se trouve à gauche de l'option Supprimer. Alors que dans Android ou un autre système d'exploitation, c'est l'inverse.
Voici quelques exemples qui nécessitent des cas de test et des tests séparés, car iOS a son interface utilisateur par défaut, ses messages, etc., qui ne peuvent pas être modifiés.
c) Test de sécurité:
Dans notre Exemple , nous avons une application avec une passerelle de paiement et une page de connexion soutenue par l'intégration de pages sociales.
Par exemple , supposons que vous avez une application ICICI sur votre téléphone et lorsque vous vous connectez plutôt que les informations de votre compte si les informations de quelqu'un d'autre sont affichées ou si vous effectuez un transfert d'argent et que l'application envoie l'OTP à un autre numéro de téléphone qui n'est pas le vôtre , vous pouvez imaginer ce qui va se passer. Ainsi, les tests de sécurité sont indispensables.
Les données en termes de connexion aux réseaux sociaux et de passerelle de paiement doivent être cryptées ou sécurisées afin de protéger l'application contre les piratages.
d) Test sur le terrain:
Un test sur le terrain est effectué pour vérifier le comportement de l'application sur le réseau de données du téléphone.
Ce test est généralement effectué lorsque l'application atteint un stade stable et ne plante pas lorsqu'elle est testée en interne et que tous les problèmes de fonctionnalité ont été résolus. Ceci est principalement fait pour tester les performances de l'application sur le réseau de données lent.
Test manuel - Utilisation de l'émulateur
a) Test unitaire:
Ceci est principalement effectué par l'équipe de développement / développeur individuel. Ce test vérifie si un module particulier du code source fonctionne comme prévu ou non.
Les développeurs conçoivent des cas de test unitaires pour un seul composant, c'est-à-dire un module isolé sur lequel ils travaillent. Ce test prouve que le module individuel fonctionne après quoi il est injecté dans le code source pour fonctionner comme un élément de l'architecture intégrée. Comme le dit l'en-tête, il s'agit principalement d'un test manuel et effectué à l'aide de l'émulation de test.
b) Test d'intégration:
Dans les étapes précédentes, nous avons discuté plus en détail des tests unitaires. Maintenant, comme nous sommes sûrs de la fonctionnalité des unités / modules individuels, il devient également nécessaire de vérifier l'intégration. Ce test est effectué pour découvrir les problèmes liés aux différents points d'intégration.
Dans notre Exemples , nous pouvons appeler la connexion comme un module et la passerelle de paiement comme un autre module.
Les tests unitaires couvriront les tests des deux individuellement. Cependant, les tests d'intégration testeront l'intégrité des deux modules.
c) Test de l'interface utilisateur:
Comme expliqué ci-dessus, un test d'interface utilisateur doit être effectué pour une application, car c'est un facteur clé du succès de l'application.
L'achat de tous les modèles de téléphones pour les tests n'est pratiquement pas possible car cela coûterait cher. Par conséquent, l'utilisation d'un émulateur est la meilleure option car elle est gratuite et les bogues d'interface utilisateur évidents sont facilement détectés par les émulateurs.
Automatisation iOS
a) Test de régression:
Dans l'environnement en constante évolution, des modifications sont apportées en permanence pour améliorer l'application ou pour résoudre les problèmes détectés dans la version précédente de celle-ci. Lors de la mise en œuvre des modifications, il est possible que les modifications apportées à l'application altèrent la fonctionnalité existante.
En termes simples, les modifications apportées peuvent introduire un nouvel ensemble de problèmes dans l'application.
Pour vérifier si l'application fonctionne de la même manière même après la mise en œuvre des modifications, des tests de régression doivent être effectués. Et, comme il s'agit d'une activité répétitive, l'automatisation est pratique pour ce type de test.
b) Test BVT:
C'est une bonne coutume de faire exécuter une suite automatisée sur la nouvelle version publiée pour les tests, car cela permet de gagner beaucoup de temps et si les fonctionnalités de base tombent en panne, elles sont immédiatement signalées. Par rapport à un effort manuel, les résultats des tests de vérification de base automatisés pour accepter ou rejeter une version peuvent être pris en quelques minutes.
c) Test de compatibilité:
Comme indiqué, il existe de nombreux appareils / types publiés par Apple. Pour être exact, il existe 15 types différents d'iPhones, 6 modèles d'iPod Touch, 10 modèles d'iPad et 2 modèles d'iPad Pro sur le marché.
Désormais, lorsqu'une application comme la nôtre (Application de collecte de fonds pour les équipes sportives) est développée, elle doit être prise en charge par tous les appareils mentionnés ci-dessus. Cela implique une chose: tous les cas de test doivent s'exécuter sur tous ces appareils.
Désormais, l'effort manuel n'est pas possible lorsque le nombre d'appareils est énorme. Pour la compatibilité, les tests d'automatisation sont préférés.
d) Test de performance:
Certains de ceux qui sont testés dans les tests de performance sont:
- Comment l'application se comporte lorsqu'elle est rendue opérationnelle ou qu'elle s'exécute pendant très longtemps. Pendant la période opérationnelle, faites communiquer / interagir / inactive l'application.
- La même opération doit être effectuée avec une quantité de charges différente à chaque fois.
- Comment le système se comporte lorsque le transfert de données est vraiment énorme.
Ces cas sont de nature répétitive et sont principalement réalisés à l'aide de l'automatisation.
Meilleures pratiques pour tester une application iOS
Tester des applications iOS peut être difficile, délicat, difficile à moins que cela ne soit fait correctement.
Afin de faire avancer les tests d'applications iOS dans la bonne direction, les pratiques suivantes peuvent être mises en œuvre:
# 1) Oubliez les émulateurs: Dans la plupart des cas, les émulateurs sont préférés aux vrais appareils. Mais ce n’est pas le cas idéal. Des éléments tels que les interactions utilisateur, la consommation de la batterie, la disponibilité du réseau, les performances d'utilisation, l'allocation de mémoire ne peuvent pas être testés sur les émulateurs. Alors, essayez de tester sur de vrais appareils tout le temps.
# 2) Automatisez les choses plutôt que de le faire manuellement: À quelle vitesse faites-vous une tâche spécifique? Dans le monde d’aujourd’hui, tout le monde se préoccupe principalement du temps passé. L'automatisation réduit non seulement le temps d'exécution, mais augmente également l'efficacité, l'efficience et la couverture des tests logiciels.
# 3) Partagez le travail: Partagez les tests entre les équipes, y compris l'équipe de développement. Nous pouvons obtenir de l'aide pour exécuter manuellement les cas de test ainsi que l'aide de l'équipe de développement pour automatiser les cas de test manuels.
# 4) Attrapez les journaux de crash: L'application pour iOS peut se figer ou se bloquer dans certaines circonstances. Pour résoudre le problème, les journaux de plantage jouent un rôle essentiel.
Les étapes suivantes peuvent être effectuées pour capturer les journaux des pannes:
- Pour MacOS:
- Synchronisez l'appareil iOS avec l'ordinateur (Mac).
- Sous Mac OS, maintenez la touche Option enfoncée pour ouvrir la barre de menus.
- Allez dans le menu Aller et cliquez sur Bibliothèque.
- Accédez à ~ / Library / Logs / CrashReporter / MobileDevice //.
- Le nom du fichier journal doit commencer par le nom de l'application.
- Pour le système d'exploitation Windows:
- Synchronisez l'appareil iOS avec l'ordinateur (Windows).
- Accédez à C: Users AppData Roaming Applecomputer Logs CrashReporter MobileDevice \
- Le nom du fichier journal doit commencer par le nom de l'application.
# 5) Capture des journaux de la console:
Les journaux de la console fournissent les informations générales des applications sur l'appareil iOS.
Cela peut être fait à l'aide d'outils tels que iTools. Dans l'application iTools, cliquez sur l'icône «Boîte à outils» lorsque l'appareil iOS est connecté au système sur lequel fonctionne iTools. Cliquer sur 'Journal en temps réel' donne le journal de la console en temps réel.
# 6) Écran de capture: Il devient facile de comprendre le problème et il est donc facile de le résoudre si les étapes sont visuelles.
Il est conseillé d'enregistrer l'écran ou de prendre des captures d'écran des problèmes pour que l'équipe de développement les comprenne mieux. La capture d'écran peut être prise à l'aide de la fonction intégrée en appuyant simultanément sur les boutons d'alimentation et d'accueil.
L'enregistrement d'un écran peut être effectué à l'aide de l'enregistrement Quick Time Player lorsque l'appareil iOS est connecté au Mac à l'aide du câble Lightning.
Cadres d'automatisation iOS
Certains des cadres d'automatisation les plus couramment utilisés sont répertoriés ci-dessous:
# 1) époques;
Appium utilise le pilote Web Selenium pour automatiser les tests d'applications iOS.
Cette plate-forme est indépendante et peut être utilisée à la fois sur le Web et sur les appareils mobiles (Android et iOS). Il s'agit d'un Open source et n'est pas limité par la langue. Les changements d'application ou l'accès au code source ne sont pas requis pour l'automatisation à l'aide d'Appium.
Appium fonctionne de manière transparente indépendamment du type d'application: que ce soit natif, hybride ou Web.
# 2) Calebasse:
Calabash est un framework multiplateforme open source qui prend en charge les tests d'automatisation Android et iOS.
Questions et réponses sur l'entretien de la base de données Oracle
Les tests de calebasse sont écrits en concombre qui est similaire à celui d'une spécification et est facile à comprendre. Calabash se compose de bibliothèques qui permettent à l'utilisateur d'interagir avec des applications natives et hybrides. Il prend en charge les interactions telles que les gestes, les assertions, les captures d'écran, etc.
# 3) Earl Grey:
Earl Grey est le propre cadre de test d'interface utilisateur interne de Google. Cela a été utilisé pour tester YouTube, Google Photos, Google Play Musique, Google Agenda, etc.
Earl Grey est récemment devenu Open source. Certains des principaux avantages d'Earl Grey sont la synchronisation intégrée, les contrôles de visibilité avant les interactions, une véritable interaction de l'utilisateur (tapotement, glissement, etc.). Ceci est très similaire à Espresso de Google qui est utilisé pour l'automatisation de l'interface utilisateur Android.
# 4) Automatisation de l'interface utilisateur:
UI Automation est développé par Apple et est très similaire à UI Automator à Android. Les API sont définies par Apple et les tests sont écrits en JAVA.
# 5) COMMENT:
KIF signifie «Keep it Functional». Il s'agit d'un framework tiers et open source.
Il s'agit d'un cadre de test d'intégration iOS étroitement lié et utilisé pour les cibles de test XCTest. KIF est facile à configurer ou à intégrer au projet Xcode et donc un serveur Web supplémentaire ou des packages supplémentaires ne sont pas nécessaires. KIF a une large couverture en termes de versions iOS.
Conclusion
Les tests d'applications iOS peuvent être une tâche des plus difficiles à faire. J'espère que vous avez une bonne compréhension des tests d'applications iOS grâce à cet article.
Cependant, la sélection de la bonne approche, du meilleur processus de test possible, des méthodologies, des outils, des émulateurs / appareils, etc. rendra les tests d'applications iOS très réussis.
Notre prochain tutoriel vous présentera tous les concepts de base impliqués dans Tutoriel de test d'applications Android .
lecture recommandée
- Meilleurs outils de test de logiciels 2021 (Outils d'automatisation des tests QA)
- Guide de test de portabilité avec des exemples pratiques
- Test alpha et test bêta (un guide complet)
- Test fonctionnel vs test non fonctionnel
- Créer un test Appium pour une application iOS
- Téléchargement de l'e-book 'Testing Primer'
- Qu'est-ce que le test précoce: testez tôt, testez souvent MAIS comment? (Un guide pratique)
- Tutoriels de test d'applications mobiles (un guide complet avec plus de 30 tutoriels)