[Tribune] L'automatisation des tests, une étape cruciale pour son site e-commerce
Publié par Marco Bormann, QA Automation Tester, SQLI le - mis à jour à
Un projet logiciel, ce n'est pas comme une voiture où il est possible de compartimenter. Quand un pneu doit être changé, il n'est pas nécessaire pour autant d'allumer le moteur pour vérifier que tout fonctionne encore. Dans un projet logiciel, en revanche, c'est préférable.
Pourquoi recourir à des tests automatisés ?
Dans les logiciels, tout s'entremêle et une petite modification à un bout risque d'avoir un impact potentiellement destructeur à l'autre bout. Pour les systèmes forts interdépendants, il est nécessaire d'effectuer un testing approfondi.
Un test de régression est gourmand en temps et en ressources, mais ce n'est pas le seul problème. L'automatisation des tests entre en jeu lorsqu'une tâche se répète une centaine de fois : remplir un formulaire, etc.
Comment fonctionne l'automatisation des tests, quels défis y sont associés et comment procéder pour les acteurs du e-commerce ?
Qu'est-ce que l'automatisation des tests et comment ça fonctionne ?
L'automatisation des tests consiste à créer des programmes qui simulent l'interaction des utilisateurs avec une application. Il suffit de lancer ces programmes et ils effectueront tous les tests selon des flux prédéfinis, puis indiqueront où ils ont rencontré des problèmes.
Au moment de configurer des tests automatisés, il est indispensable de réfléchir à quasiment toutes les actions possibles pour un utilisateur du site. Ensuite, dans l'idéal, il faut programmer un test pour chacune de ces actions. Bien sûr, la plupart du temps, des tests automatisés s'exécuteront sous forme d'un processus de bout en bout, en les faisant par exemple sélectionner un produit, le mettre dans le panier, entrer des données personnelles, choisir une méthode de livraison et de paiement, puis vérifier si la commande est bien passée.
Les défis des tests automatisés
Cependant, tout cela a bien entendu un coût. En effet, les tests automatisés doivent être créés étape par étape. Tandis qu'un testeur manuel peut simplement naviguer dans une application en cliquant selon ses besoins, un test automatisé doit être élaboré de façon très minutieuse.
Les spécialistes de l'automatisation de tests s'embourbent souvent dans la maintenance. Les tests automatisés ne sont pas un outil parfait qu'il suffit de démarrer pour voir apparaître le nombre exact d'erreurs dans votre application et leur localisation.
Ce besoin élevé en maintenance découle d'un manque de synchronisation entre spécialistes de l'automatisation et développeurs. Les spécialistes de l'automatisation ne sont pas toujours prévenus des changements apportés à l'application.
Et de leur côté, les développeurs ne savent pas forcément quels éléments les spécialistes de l'automatisation utiliseront pour leurs tests. Les tests automatisés sont particulièrement éprouvés quand le design a subi beaucoup de modifications, car celles-ci entraînent de nombreux changements mineurs de ce genre.
La solution pour que tout fonctionne
Heureusement, il existe une solution à tous ces problèmes de maintenance, et elle s'accompagne d'un bonus magique. Si les développeurs savaient sur quels éléments s'appuient les spécialistes de l'automatisation, tout se passerait bien.
Ainsi, les tests pourraient se référer à cet attribut spécial sans être affectés par les changements apportés aux autres attributs ou même à l'élément lui-même - le bouton pourrait par exemple être transformé en lien pour des raisons de design. Et si tous les éléments interactifs d'une page comportent un de ces attributs dédiés à l'automatisation, les tests deviennent alors très stables. Mais évidemment, cette solution représente un surplus de travail pour les développeurs, et elle a peu de chance d'être implémentée si l'automatisation n'est pas perçue comme une part importante du processus de développement.
Un lien magique entre développement et automatisation
Une page web sur laquelle tous les éléments fonctionnels auraient un attribut fixe auquel les tests automatisés pourraient se référer serait l'idéal :