Tester une application sur Android ou iOS n'est pas si différent. Le but est le même, le résultat souhaité est le même et le processus est similaire. La différence majeure vient lorsque nous commençons à regarder les détails. C'est ce que je prévois de faire dans cet article.
Avant de plonger, parlons de quelques bases de test. Il est impossible d'examiner nos options sans connaître et comprendre la situation dans son ensemble..
Ce qui rend Android se démarquer, c'est la myriade de possibilités. Sur iOS, il y a iPhone, iPad et iPod Touch. Ils sont différents, mais le facteur commun entre les appareils iOS est la densité de pixels, la résolution de l'écran, la vitesse du processeur, la taille de la mémoire, etc..
Dans le cas d'Android, il existe des milliers de combinaisons lorsque nous examinons les mêmes facteurs, résolution et taille de l'écran, vitesse du processeur, taille de la mémoire et, cerise sur le gâteau, la fragmentation du système d'exploitation.
En parlant de versions de systèmes d'exploitation, il n'est pas rare que les opérateurs et les fabricants de téléphones arrêtent de publier des mises à jour peu de temps après la sortie du produit. Est-ce un problème? Oui. Consultez les statistiques officielles de Google relatives aux parts de marché sur Android pour avoir une idée de l'ampleur du problème..
Par ordre décroissant de part de marché, nous avons Jelly Bean (4.1-4.3), Pain d’épice (2.3) et Sandwich à la crème glacée (4.0)..
Comparez cela avec le taux d'adoption d'iOS 7 d'Apple. À la fin du mois de janvier de cette année, 80% des appareils iOS fonctionnaient sous iOS 7. Rappelez-vous que iOS 7 est sorti en septembre 2013. C'est une différence majeure..
Avez-vous déjà utilisé une très mauvaise application Android? Pire qu'une mauvaise application pure et simple est une très bonne application qui a quelques bogues persistants.
Je pense qu'un bon facteur dans un bon test est de prêter attention à ce que vous utilisez, aimez et détestez. La haine est un mot fort, mais je suis sûr qu'il y a quelque chose qui se démarque toujours.
Posez-vous les questions suivantes:
Nous allons référencer ce tableau de parts de marché Android OS que nous avons vu plus tôt. Il est irréaliste de penser aux tests que vous allez prendre en charge tous les appareils et toutes les saveurs d'Android..
Mon point est que nous devons penser à la distribution. Que fait notre application et à quoi ressemble le marché cible? Est-ce un jeu ou une application utilitaire??
Si c'est un jeu, il est probable que l'accent ne soit mis que sur les nouveaux appareils haut de gamme. Cependant, une application utilitaire peut être utilisée par un public plus large et doit fonctionner sur un plus grand nombre de périphériques..
Un problème que la plupart d’entre nous rencontrons, c’est que nous sommes trop proches de nos projets. Nous savons comment faire échouer notre application et comment la faire fonctionner. Pour cette raison, j'essaie intentionnellement de mettre mon esprit dans celui d'un utilisateur. Je mets les utilisateurs dans deux grandes catégories, le Bouton Masher et le Utilisateur.
Button Masher est le type d’utilisateur qui va commencer à appuyer sur l’écran, un bouton ici, un bouton ici. "Ce dernier bouton n'a rien fait. Je vais en frapper un autre."
Ce que nous pouvons apprendre de ce type d’utilisateur, c’est que nous avons des processus intensifs dans notre application. Si quelque chose se produit et qu'une autre demande ou action se produit, est-ce que nous augmentons le processeur ou remplissons la mémoire de l'appareil? Cela provoque-t-il un blocage de l'application??
L'autre question qui se pose est la suivante: "Dans quelle mesure informons-nous l'utilisateur de ce qui se passe?" Pourquoi ont-ils appuyé sur un autre bouton au lieu d'attendre? Peut-on remédier à cela en affichant un écran de chargement?
L'utilisateur a l'intention. Une meilleure façon d'expliquer ce type d'utilisateur serait d'examiner les cas d'utilisation. Ils veulent accomplir une tâche spécifique et essaient de suivre un flux spécifique.
Nous pouvons apprendre à quel point l'application est claire pour guider une personne dans un processus ou une action. Cela nous indiquera où un utilisateur se perd et quels domaines nécessitent plus d'attention ou de précision.
Nous avons parlé de notre objectif et des différents types d’utilisateurs, mais sont nos options et comment devrions-nous les tester? Heureusement, il y en a beaucoup. Et je vous recommande d'en faire autant que possible.
Si vous n'avez pas le luxe de pouvoir vous rendre au département d'assurance qualité ou à un laboratoire de test, vous pouvez appeler un ami. Vous avez besoin d'yeux et d'appareils.
Quand il s’agit de tester des applications mobiles, le volume peut faire la différence, surtout si vous pouvez vous procurer divers appareils..
Le test automatisé est votre ami. Même si rien ne vaut une application complète, il est également important de voir ce qui se passe sous le capot et de voir comment votre application réagira par programme à certaines situations ou en cas de stress..
Plus important encore, les tests unitaires vous permettent de tester au fur et à mesure, ce qui peut vous faire gagner beaucoup de temps lors des tests et de l'assurance qualité, avant la publication..
Le SDK Android est livré avec le framework de test Android, qui consiste en une API de test basée sur JUnit et monkeyrunner..
L'extension Android JUnit permet aux développeurs d'écrire des tests unitaires par rapport aux composants Android et à l'API Android avec des classes de scénarios de test prédéfinies spécifiques aux composants..
Monkeyrunner est une API basée sur Python qui vous permet d'écrire des programmes qui contrôlent un périphérique du point de vue de l'utilisateur. Cela signifie que vous pouvez créer des tests à exécuter sur de nombreux appareils ou émulateurs qui interagiront avec votre application, lui envoyant des frappes au clavier et capturant des captures d'écran..
Il y a beaucoup de cadres de test disponibles. Quelques-uns des plus populaires sont Robolectric et Robotium.
Robolectric est une infrastructure de test unitaire qui s'exécute dans votre IDE. C'est parfait pour l'audit de votre pré-génération de code. Robotium exécute des tests sur l'API Android dans les émulateurs. Bien que les tests prennent plus de temps, le code de votre application sera soumis à davantage de tests réels sur les périphériques et l'API..
Une autre option intéressante est l'espresso. Il sert un objectif très spécifique par rapport aux deux options précédentes. C'est une API pour exécuter des tests sur l'interface utilisateur Android.
Toutes les options ci-dessus sont excellentes, mais si vous construisez une application hybride, vous ne pourrez peut-être pas les utiliser. Appium est un cadre d'automatisation multiplateforme qui vous permet de créer des tests avec le langage de votre choix pour les deux principales plates-formes mobiles..
Il est également très utile de pouvoir consulter certaines statistiques et, plus important encore, de collecter des journaux d’erreurs et d’incidents. Ceci est particulièrement utile si de nombreuses personnes testent votre application, car il peut être fastidieux de collecter des journaux de chaque utilisateur..
Outre le suivi de l'utilisation des applications, Google Analytics peut également vous envoyer des exceptions. Flurry est une autre option testée. Ils existent depuis longtemps et leurs rapports et rapports d'incidents sont un peu plus détaillés..
Bien que cela n’aide en rien la phase de développement de votre application, Google collecte également des rapports de plantage pour les applications du Play Store..
Nous aimerions tous avoir 400 appareils sur lesquels effectuer des tests, comme ces énormes laboratoires de tests que nous avons vus en ligne. Cependant, ce n'est pas réaliste. Pour répondre à ce problème, de nombreux services sont disponibles si vous êtes prêt à investir dans les tests..
Ces services vont des tests individuels face à face à des tests entièrement automatisés sur des centaines de périphériques. Si vous êtes prêt à payer pour cela, il est disponible.
Je n'ai pas l'expérience de la plupart d'entre eux, mais celui que j'ai utilisé est le test utilisateur. Il est très utile de voir une personne suivre votre script de test pendant qu'elle exploite votre application et vous donne son opinion..
Voici quelques services à considérer:
Trop souvent, je me suis retrouvé dans une situation où l'assurance qualité et les tests semblaient être une réflexion après coup. En réalité, c'est probablement la partie la plus importante du processus de développement.
Android, avec ses nombreuses saveurs, peut sembler intimidant, mais quand on l’approche presque par programme, cela fait vraiment partie du processus. Cela vaut le temps et les efforts supplémentaires. Des applications de qualité ne se produisent pas.