Manuel VS. Automatisé : Quelle est la bonne façon de tester votre application ?

Publié: 2022-02-24
essai

Lorsque vous publiez une application, vous devez être sûr à 100 % qu'elle fonctionnera de manière fluide et sans faille. Et bien sûr, il doit également répondre aux attentes de vos utilisateurs ! Sinon, votre projet risque d'échouer, ce qui n'est pas le résultat souhaité, n'est-ce pas ? Vous devez donc prêter une attention particulière aux tests d'assurance qualité (QA) des applications.

Mais quelle est la bonne approche pour tester votre plateforme ? Quelles techniques sélectionner ? Vaut-il la peine de vérifier manuellement les performances du produit ou d'utiliser l'automatisation ? Ou peut-être choisir les deux options à la fois ?

En assurance qualité (AQ), l'automatisation des tests est l'un des plus grands champions de la vitesse. Mais, en ce qui concerne la fonctionnalité et les premières impressions, rien ne remplace les tests manuels. Le fait est que, même si les logiciels de test automatisés deviennent plus raffinés, les tests manuels d'applications mobiles jouent toujours un rôle énorme dans la livraison d'applications de qualité.

Les deux catégories de tests d'applications mobiles présentent des avantages et des inconvénients distincts, mais il est particulièrement important pour les sociétés de développement d'applications mobiles de pratiquer des tests manuels pour offrir une expérience utilisateur exceptionnelle.

Service de classement des applications ASO World
Cliquez sur "En savoir plus" pour piloter votre activité d'applications et de jeux avec le service de promotion d'applications ASO World dès maintenant.

Principes de base des tests d'applications mobiles

Dans les termes les plus larges, il existe deux approches pour tester une application mobile. Vous pouvez demander à des humains d'utiliser l'application dans différentes situations pour voir comment elle réagit, ou vous pouvez demander à une application de conduire le logiciel dans des endroits intéressants et de rechercher les résultats attendus.

Ce deuxième terme est communément appelé « automatisation des tests », ou peut-être « tests automatisés ». Il serait peut-être plus exact de l'appeler "exécution et évaluation automatisées des tests" ou "vérification automatisée", mais les termes précédents se sont imposés.

Ces deux approches peuvent être valides dans des circonstances différentes, et cette validité peut changer au fil du temps à différents moments du cycle de vie d'une application. En pratique, la plupart des organisations utilisent un mélange des deux, poussant peut-être certaines des explorations humaines aux clients.

Qu'est-ce que les tests automatisés et manuels ?

Garantir un logiciel de haute qualité est un processus complexe, qui prend beaucoup de temps et coûte de l'argent. Cependant, de telles dépenses ne peuvent être évitées (à condition de vouloir réussir sur le long terme).

Il est important d'élaborer une stratégie de test compétente qui vous permettrait d'obtenir le maximum d'effet avec un minimum d'effort et de comprendre si le site ou l'application répond aux exigences définies.

Test manuel

Les tests automatisés sont le processus dans lequel des tests pré-scriptés sont exécutés sur une application avant qu'elle ne soit mise en production. Les tests automatisés vous aident à trouver plus rapidement les défauts de votre application. L'automatisation des tests peut être utilisée pour exécuter des tests répétitifs, qui doivent être exécutés périodiquement et qui peuvent vous aider à trouver des bogues dans les premières étapes.

Alors que le but des tests manuels est de tester ce qu'on appelle « l'expérience utilisateur », les tests automatisés visent à tester toutes les fonctionnalités qui caractérisent une application.

Seize ans après qu'on m'ait dit pour la première fois que les tests sur l'homme allaient "disparaître" et près d'une décennie après avoir entendu pour la première fois des explorateurs humains appelés "dinosaures", les tests manuels restent l'approche de test la plus courante pour les applications mobiles et de bureau.

Par test manuel, j'entends un humain utilisant réellement l'application via le frontal. Il existe une variété d'endroits où ce test manuel peut avoir lieu. La plupart des programmeurs simulent au moins une application, sinon la mettent sur un téléphone, avant de la transmettre à quelqu'un d'autre pour la tester. Certaines entreprises emploient des testeurs pour aller plus loin, en regardant au-delà du chemin heureux ou dans différents modèles d'appareils.

Si le logiciel est interne, l'entreprise peut demander aux personnes qui utiliseront le logiciel d'effectuer des tests d'acceptation par l'utilisateur, qui sont davantage axés sur "puis-je faire mon travail avec ce logiciel". Certaines entreprises publient le logiciel plus tôt que prévu pour les testeurs « bêta », qui peuvent être des employés, à l'aide d'un outil tel que Microsoft AppCenter.

Enfin, des entreprises comme Applause et Testio existent pour prendre cette version "bêta" et la crowdsourcing, fournissant des dizaines à des milliers de globes oculaires pour regarder le logiciel, dans une variété de configurations, sur une courte période de temps.

Indépendamment de qui, comment ou quand les tests manuels vous donnent une idée réelle de l'utilisation réelle de l'application. Les tests manuels peuvent voir si les boutons sont dans la bonne position s'ils sont assez gros s'ils se chevauchent si les couleurs vont bien ensemble, etc. Les ordinateurs s'avèrent particulièrement mauvais pour évaluer si une image sur un écran "semble correcte".

Cependant, il existe certaines actions que les ordinateurs peuvent tester facilement. Par exemple, lorsque vous tapez un nom d'utilisateur et un mot de passe et que vous soumettez, vous devez accéder à l'écran qui affiche votre nom et que vous êtes connecté, et laisser le mot de passe erroné devrait produire un texte d'erreur particulier.

Le défi des tests mobiles est moins susceptible d'être lequel des deux paradigmes accepter, mais combien, quand et qui.

Pourquoi ai-je besoin de tests manuels ?

Les tests manuels fournissent des informations sur la convivialité et l'apparence ainsi que sur les fonctionnalités. Le testeur joue le rôle d'un utilisateur essayant tout dans cette application, effectuant des actions typiques qu'un utilisateur ferait, pour voir si ou quand l'application plante. Avec les tests manuels, vous obtenez souvent des informations sur les performances, l'épuisement de la batterie ou la surchauffe suffisamment tôt pour les corriger avant la sortie. Le feedback est souvent "gratuit" simplement parce que le testeur y prêtait attention.

De combien d'appareils ai-je besoin pour tester ?

Vous pouvez essayer de tester manuellement chaque appareil pris en charge avec chaque version de système d'exploitation prise en charge. La dernière fois que nous avons vérifié il y a trois ans, il y avait plus de 24 000 appareils Android différents, et nous avons arrêté de compter. De manière réaliste, la plupart des organisations testent avec la version la plus récente prise en charge, une version précédente et la version la plus ancienne prise en charge. Entre Android et iOS, tablette et téléphone, la plupart des moyennes et grandes entreprises avec lesquelles nous travaillons se retrouvent avec un laboratoire de test de 10 à 20 appareils.

Tests automatisés

Qu'est-ce que les tests automatisés ?

Lorsque les gens utilisent l'expression test automatisé, cela signifie généralement qu'un outil, comme Selenium ou Appium, pilote l'interface utilisateur de l'application, vérifiant les résultats attendus en cours de route.

Cette vérification provient d'une série de commandes et de points d'inspection, qui peuvent être stockés soit dans quelque chose comme une feuille de calcul, soit, plus probablement, dans un programme informatique réel.

Ainsi, les tests sont pré-scénarisés ; chaque test pourrait être un programme informatique. Chaque test peut cliquer ou taper une douzaine de fois et avoir une autre douzaine de points de vérification. Une fois que les tests existent, si le comportement de l'application n'a pas changé, les tests automatisés peuvent trouver des défauts dans l'application très rapidement, généralement quelques minutes après une validation dans le contrôle de version.

L'automatisation des tests peut être utilisée pour exécuter des tests répétitifs, qui ne nécessitent pas de discernement humain, qui doivent être exécutés périodiquement et qui peuvent vous aider à trouver des bogues à un stade précoce. Alors que le but des tests manuels est de tester "l'expérience utilisateur", les tests automatisés visent à tester toutes les fonctionnalités qui caractérisent une application.

Les tests automatisés cliqueront sur le bouton qui "ne semble pas correct" et qui se trouve au mauvais endroit et n'enregistreront pas de problème (sauf si vous avez pensé à vérifier à l'avance) - il est plus susceptible de trouver des erreurs, des résultats de recherche incorrects, etc.

Pourquoi ai-je besoin de tests automatisés ?

Au fur et à mesure que l'application grandit, le temps de la tester augmente également. Les tests automatisés réduisent ce temps pour une publication fréquente. Cela rend les tests automatisés essentiels pour accélérer le processus de test, réduire les coûts et réduire radicalement le temps de retour d'informations pour les erreurs majeures de quelques jours à quelques minutes. L'automatisation des tests vous permet de :

Tester les fonctionnalités qui sont répétitives et donc sujettes aux erreurs si elles sont effectuées manuellement ; cas de test qui ont un résultat prévisible ;

Configurez et exécutez facilement des scénarios de test complexes et fastidieux

Le plus important : vous pouvez tester simultanément sur un plus grand nombre d'appareils mobiles, ce qui vous fait gagner du temps. En utilisant des simulateurs ou le cloud, vous pouvez le faire sans acheter ni gérer les appareils !

De combien de cas de test ai-je besoin pour un ensemble de tests de base ?

Cela variera considérablement en fonction de l'application et de la taille du "cas de test". Si les cas de test sont de simples tests dom-to-database qui vérifient une opération logique, alors une fonction typique peut avoir quatre à dix tests, et une application typique peut avoir quatre à dix fonctionnalités.

Si l'application est codée avec deux langages de programmation différents, un pour iOs et un pour Android, vous devrez peut-être doubler cela, ou bien écrire une couche d'abstraction et avoir un ensemble de scénarios métier et deux implémentations qui varient selon le système d'exploitation.

Tests manuels pour les applications mobiles

Avantages des tests manuels

  • Tester l'interface utilisateur avec précision et rapidité
  • Expérimenter et tester l'application en tant qu'utilisateur réel pour reproduire l'expérience finale
  • Identifier et reproduire facilement les problèmes signalés
  • Résoudre les problèmes complexes et les cas d'utilisation
  • Tester de petits changements et projets plus rapidement et de manière plus rentable

Inconvénients des tests manuels

  • L'erreur humaine affecte la précision
  • Les tests doivent être répétés manuellement à chaque fois
  • Les tâches de test fastidieuses sont beaucoup plus difficiles
  • Une couverture énorme nécessite beaucoup de ressources, comme l'effectif des testeurs et l'accès à un large éventail d'appareils

Les tests manuels dans les applications mobiles sont utilisés pour :

  • Tests exploratoires : en tant qu'approche, les tests exploratoires valorisent le testeur en tant que partie intégrante du processus de test. Cela nécessite un testeur manuel pour bénéficier de leur perspicacité, de leur créativité et de leurs connaissances.
  • Tests ad hoc : Par définition, les tests ad hoc sont un type de test informel. Il vise à casser le système, par conséquent, il ne peut pas être exécuté de manière planifiée. Il faut qu'un testeur se comporte de manière irrégulière pour essayer de casser le système.
  • Test d'utilisabilité : le testeur manuel peut avoir une idée de l'expérience utilisateur finale. L'utilisation de l'application telle qu'elle est conçue pour être utilisée aidera à déterminer la convivialité de l'application et la contribution humaine est essentielle à cet égard.

Tests automatisés pour les applications mobiles

Avantages des tests automatisés

  • Réaliser plus rapidement des tests fastidieux et exigeants
  • Tester de nombreux appareils
  • Les tests automatisés peuvent être utilisés à plusieurs reprises
  • Des résultats rapides, efficaces et précis
  • Plusieurs tests automatisés peuvent être effectués en même temps
  • Pour les grandes applications mobiles, les tests automatisés sont plus rentables

Inconvénients des tests automatisés

  • Aucun aperçu de l'expérience utilisateur d'un point de vue visuel
  • Le coût de la mise en place et de l'exécution des tests automatisés est élevé en raison du code nécessaire
  • Gaspillage dans des situations à plus petite échelle
  • Encore une erreur humaine car le test d'automatisation est programmé par un humain et nécessite ses propres tests
  • Nécessite des configurations et un code spécifiques pour chaque application mobile

Les tests automatisés dans les applications mobiles sont utilisés pour :

  • Tests de régression : L'une des plus grandes forces des tests automatisés est la possibilité d'avoir un script de test prêt à être exécuté à tout moment. L'une des meilleures façons d'utiliser les tests automatisés consiste à effectuer de petits changements constants lorsque vous voulez vous assurer qu'ils n'auront pas d'effets négatifs.
  • Tests de performance : contrairement aux tests d'utilisabilité, les performances sont davantage un jeu de chiffres. Tester la rapidité, la réactivité et la stabilité d'une application sur différents appareils ou dans différentes conditions est quelque chose que les tests automatisés réussissent à exécuter. L'échelle et la précision des résultats rendent les tests automatisés essentiels pour les tests de performance.
  • Tests répétés : Après un coût initial de codage et de configuration d'un script de test, les tests automatisés à long terme deviennent très rentables. La possibilité de répéter les tests sans coût supplémentaire en ressources de testeur facilite grandement les tests et l'obtention de résultats.