Avantages et inconvénients de l'automatisation des tests

L'automatisation des tests, lorsqu'elle est effectuée correctement, peut présenter de nombreux avantages et être très bénéfique pour le projet et l'organisation. Il existe cependant certains pièges ou inconvénients de l'automatisation des tests dont nous devons être conscients.



Avantages de l'automatisation des tests

Quels sont les avantages de l'automatisation des tests?

Confirmation du connu

Les vérifications automatisées sont un excellent moyen de confirmer que l'application fonctionne toujours correctement après les modifications apportées.


Il est possible que lorsqu'une nouvelle fonctionnalité est ajoutée à une application ou qu'un bogue est corrigé, cela affecte la fonctionnalité du logiciel de travail, c'est-à-dire qu'un bogue de régression est introduit.

En exécutant un ensemble de contrôles de régression automatisés lors de la mise à jour de l'application, nous pouvons identifier tous les nouveaux bogues introduits à la suite des modifications.


L'information clé ici est d'exécuter des contrôles automatisés aussi souvent que l'application est mise à niveau.

Pas besoin d'exécuter l'ensemble complet des contrôles automatisés. Un pack de régression rapide de la fumée devrait suffire à détecter tout problème majeur.

Rétroaction rapide

Un autre grand avantage des contrôles automatisés est le retour rapide que nous recevons lorsque l'application est mise à jour. Dans l'idéal, l'équipe de développement devrait corriger les pannes dès qu'elles surviennent, avant de passer à d'autres tâches.

Veuillez noter que ce retour rapide ne peut être obtenu qu'avec des tests unitaires et des tests API. Si nous testons la fonctionnalité à partir de l'interface utilisateur ou au niveau du système, les tests peuvent prendre beaucoup de temps.


Exécution rapide des contrôles

Les vérifications automatisées peuvent prendre un certain temps pour créer un script. Cependant, lorsque nous les exécutons, ils sont généralement rapides et peuvent passer par différentes étapes beaucoup plus rapidement qu'un humain. Par conséquent, ils aident à fournir un retour rapide à l'équipe de développement.

Cela est particulièrement vrai dans le cas des scénarios basés sur les données.

Libère le temps des testeurs

Les tests de régression constituent la meilleure utilisation des contrôles automatisés.

L'automatisation des tests de régression nous libère du temps des testeurs, afin qu'ils puissent se concentrer davantage sur les tests exploratoires de nouvelles fonctionnalités.


De même, lorsqu'ils sont correctement mis en œuvre, les contrôles automatisés peuvent s'exécuter automatiquement avec un minimum ou pas de supervision ou d'intervention manuelle.

L'équipe de développement peut contribuer

Les contrôles automatisés sont généralement rédigés dans la même langue que l'application testée. Pour cette raison, la responsabilité de la rédaction, de la maintenance et de l'exécution des tests devient une responsabilité partagée.

Tout le monde dans l'équipe de développement peut contribuer, pas seulement les testeurs.



Inconvénients de l'automatisation des tests

Quels sont les inconvénients de l'automatisation des tests?


Faux sentiment de qualité

Méfiez-vous des tests réussis! Ceci est particulièrement important pour vérifier la fonctionnalité au niveau de l'interface utilisateur ou du système.

Un contrôle automatisé ne vérifie que ce qui a été programmé pour vérifier.

Tous les contrôles automatisés d'une suite de tests peuvent réussir, mais il peut y avoir des défauts majeurs non détectés. La raison en est que la vérification automatisée n'a pas été codée pour «rechercher» ces échecs.

Solution: assurez-vous de concevoir de bons scénarios de test avant de les automatiser. Un contrôle automatisé ne vaut que la conception du test. Complétez également les contrôles automatisés par des tests manuels / exploratoires.


Pas fiable

Les contrôles automatisés peuvent échouer en raison de nombreux facteurs. Si les contrôles automatisés échouent en raison de problèmes autres que de véritables bogues, ils peuvent déclencher de fausses alarmes.

Par exemple, les contrôles automatisés peuvent être interrompus en raison d'un changement d'interface utilisateur, d'un service en panne ou de problèmes avec le réseau.

Ces problèmes ne proviennent pas directement de l'application testée, mais pourraient avoir un impact sur le résultat des contrôles automatisés.

Solution: Lorsque cela est possible / applicable, utilisez des talons. Les stubs surmontent les problèmes de connectivité ou les changements dans les systèmes tiers. Par conséquent, les contrôles automatisés seraient indépendants de toute défaillance en aval.

L'automatisation des tests ne teste pas

Malheureusement, de nombreuses personnes confondent «Automatisation des tests» et Test.

Une fois qu'ils ont les outils pour automatiser les tests, ils veulent «automatiser tous les tests». Ils veulent se débarrasser de tous les «testeurs manuels».

La vérité est que les tests sont un exercice d'exploration. Les tests nécessitent une connaissance du domaine, un esprit concentré et la volonté d'apprendre l'application.

Le test ne consiste pas seulement à exécuter un ensemble d'étapes de test prédéfinies et à comparer les résultats réels avec les résultats attendus. C'est le travail des contrôles automatisés.

Pour bien tester une application, une intelligence humaine est toujours nécessaire.

Solution: Comprenez que pour une livraison réussie d'un projet, vous avez besoin à la fois de tests automatisés et manuels.

L'un ne remplace pas l'autre; compléter les contrôles automatisés par des tests manuels / exploratoires.

Temps et effort de maintenance

Vous devez accepter le fait que les tests automatisés nécessitent une maintenance. Au fur et à mesure que l'application testée évolue, les contrôles automatisés devraient également évoluer.

Les contrôles automatisés sont de courte durée. Si les packs de régression ne sont pas tenus à jour, vous commencez à voir toutes sortes d'échecs.

Peut-être que certains contrôles ne sont plus pertinents. Ou peut-être que les contrôles ne sont pas une représentation fidèle des nouvelles implémentations.

Ces échecs pourraient polluer les résultats des tests.

Se lancer dans l'automatisation des tests n'est pas un effort ponctuel. Pour tirer le meilleur parti des contrôles automatisés, ils doivent être tenus à jour et pertinents. Cela demande beaucoup de temps, d'efforts et de ressources.

Solution: Parce que le facteur de maintenance est une activité continue, investissez du temps dans la conception d'un bon cadre. Utilisez des modules réutilisables, séparez les tests du framework et utilisez de bons principes de conception pour alléger l'effort de maintenance.

Rétroaction lente

Lorsqu'une fonctionnalité est prête à être testée, la plupart du temps, il est plus rapide d'effectuer une vérification manuelle.

Le problème est que les contrôles automatisés peuvent prendre beaucoup de temps à script en fonction de la complexité du test. Par conséquent, une vérification manuelle donne un retour plus rapide que la création de scripts, l'exécution et la vérification des résultats.

En outre, en termes de tests au niveau de l'interface utilisateur et du système, les contrôles automatisés peuvent prendre beaucoup de temps à compléter et à générer des rapports. Par conséquent, s'il y a un véritable bogue, nous ne serons peut-être pas au courant tant que tous les tests ne seront pas terminés.

Solution: Essayez d'automatiser les tests parallèlement au développement afin que, une fois le développement terminé, vous puissiez exécuter les tests automatisés sur la nouvelle fonctionnalité.

De plus, séparez les contrôles automatisés en différents packs.

Un pack de régression de fumée devrait être super rapide. Les tests doivent uniquement vérifier que l'application peut être démarrée et accessible.

Ensuite, vous pouvez avoir un pack de régression fonctionnel qui vérifie les principales fonctionnalités.

Un autre pack de régression peut inclure tous les tests de bout en bout et les tests approfondis. Ces contrôles peuvent être exécutés du jour au lendemain.

Les vérifications automatisées inter-navigateurs sont un exemple d'une exécution nocturne. Ceux-ci prennent généralement beaucoup de temps à s'exécuter sur tous les navigateurs.

Pas beaucoup de bugs trouvés

La majorité des bogues semblent être trouvés par «accident» ou lors de tests exploratoires.

C'est probablement parce que dans chaque session de test exploratoire, nous pourrions tester l'application de différentes manières.

Les contrôles de régression automatisés, quant à eux, suivent toujours un chemin donné. Parfois avec le même ensemble de données de test. Cela réduit le risque de trouver de nouveaux défauts dans l'application.

De plus, le nombre de bogues de régression semble être inférieur à celui des bogues de nouvelles fonctionnalités.

Solution: Essayez de créer un caractère aléatoire dans le scénario et les données. Essayer différents chemins avec des données différentes à chaque fois peut révéler des problèmes potentiels.



Conclusion

Dans cet article, nous avons examiné certains des avantages et des inconvénients des tests automatisés. Lorsque nous sommes impliqués dans l'automatisation des tests, nous devons tenir compte des points ci-dessus pour en tirer le meilleur parti.