Il est courant de penser qu’un outil d’automatisation des tests peut résoudre tous nos problèmes, mais il est essentiel d’avoir une vision globale des objectifs et des défis à relever, en prenant en compte le contexte spécifique de nos projets.
On peut établir un parallèle avec nos vies quotidiennes en se demandant quelle est la meilleure voiture ? La réponse est bien entendu que cela dépend ; puisqu’il s’agit de contextes et de problématiques différents. Et c’est pour cela que nous avons à notre disposition tout un éventail d’outils.
Mais alors comment choisir, le meilleur outil d’automatisation dans mon contexte ?
L’intérêt de l’automatisation
Il ne suffit pas de prendre un outil d’automatisation des tests et un automaticien pour que la démarche soit un succès.
Il n’est pas possible de déterminer le meilleur outil d’automatisation de tests sans certaines informations, car cela dépend de nombreux facteurs tels que :
- Les besoins du projet en matière de tests,
- Le budget et les moyens disponibles,
- Les compétences et le niveau d’expertise de l’équipe,
- L’écosystème existant et la culture de l’équipe
- Le type de logiciel à tester et les types de tests à automatiser, etc...
Il est important de noter que ces facteurs varient d’un projet à l’autre.
Ce choix est une décision importante et structurante, qui peut avoir un impact sur votre budget. Il est donc recommandé de faire une évaluation approfondie de ses besoins à automatiser, des problématiques et de comparer plusieurs outils pour prendre une décision éclairée.
Quelques exemples de mauvaises pratiques d'automatisation
Avant de rentrer dans les détails de la démarche permettant de choisir un outil d’automatisation des tests, voici quelques exemples de mauvaises pratiques à éviter :
Mauvaise pratique #1 – Outil choisi par une seule personne
Une erreur fréquente consiste à confier la responsabilité du choix de l’outil à une seule personne, notamment lorsqu’un projet intègre un nouvel automaticien dans une équipe qui n’a pas encore d’expérience en automatisation. Dans un souci de bien faire, on demande à cet automaticien de sélectionner un outil.
Dans ce cas, l’automaticien peut proposer un outil qu’il maîtrise déjà ou celui qu’il souhaite essayer. Cette décision est prise sans critères de sélection, sans analyse ni collaboration avec le reste de l’équipe.
Le risque associé à cette approche est de choisir un outil qui ne répond pas adéquatement aux problématiques du projet, ou pire encore, d’opter pour un outil nécessitant une compétence rare. Dans ce dernier cas, remplacer l’automaticien en cas de départ peut devenir complexe et problématique.
Mauvaise pratique #2 – L’effet de mode
Il est courant de penser que le choix d’outil effectué dans une autre équipe ou une autre entreprise peut être directement reproduit dans notre propre contexte, mais cela s’avère rarement être le cas. Parfois, par facilité ou par manque d’expérience, nous pouvons tomber dans le piège de suivre une tendance et choisir l’outil dont on entend le plus parler. Actuellement, cela peut être des outils tels que Cypress ou PlayWright, par exemple.
Ces outils sont indéniablement très performants, mais ils ne conviennent pas toujours aux spécificités de notre projet ou aux compétences de notre équipe, voire même aux compétences disponibles sur le marché. Il est important de prendre en compte ces éléments et d’évaluer attentivement si un outil à la mode est réellement adapté à notre contexte et à nos besoins uniques.
Mauvaise pratique #3 – Laisser le choix à une partie de l’équipe
Lorsqu’il s’agit de l’automatisation des tests, la décision quant au choix de l’outil est souvent confiée aux développeurs et/ou architectes du produit.
Bien qu’ils aient une légitimité pour effectuer ce choix, il est essentiel de se poser la question suivante : seront-ils les personnes en charge du développement et de la maintenance des scripts d’automatisation ?
Si la réponse est négative et si la volonté de la direction du projet est de renforcer les compétences des équipes fonctionnelles telles que les testeurs et les Product Owners, il devient alors dangereux de les exclure de la prise de décision.
Une démarche structurante pour votre projet d'automatisation
La démarche d’automatisation n’intègre pas que l’outil. Il faut également prendre en compte :
- Le contexte du projet
- La culture d’entreprise
- Les objectifs que doit atteindre l’automatisation
- Les compétences nécessaires pour garantir la pérennité de l'automatisation dans le temps
- Les différentes contraintes techniques tel que les environnements et les jeux de données
- Le ROI à envisager
Au-delà de cela, Il est essentiel d’inclure le choix d’outil dans une stratégie de tests et y inclure une phase de Proof of Concept (PoC) et de benchmarking collectif afin de prendre la meilleure décision possible.
Il est important de comprendre que ce choix aura un impact significatif sur le projet et son budget pour les 2 à 5 prochaines années. Il est donc crucial de prendre le temps nécessaire pour évaluer les options, tester les outils potentiels et prendre une décision éclairée.
Appréhender le contexte global de votre projet
Avant toute chose, il est impératif de maîtriser le contexte projet afin d’appréhender au mieux le choix de l’outil pour bien maîtriser l’organisation, les compétences ainsi que la culture du projet.
Il faut donc se poser différentes questions :
- Quelle est la culture Quality Assistance ? (pas de QA, que des testeurs fonctionnels, déjà eu des tentatives d’automatisation ? …)
- Quelles applications doivent être automatisées ?
- Qui va devoir automatiser : les testeurs ou les développeurs ?
- Culture de l’open source ou de l’édition logiciels
- Quels types de tests doivent être automatisés : front web, API, intégration performance, sécurité, E2E ?
Définir les objectifs de votre projet
Il est nécessaire de se fixer des objectifs clairs lors de la démarche d’automatisation des tests. Cependant, il est important de faire la distinction entre des objectifs ambitieux et des objectifs irréalistes ou trop nombreux qui ne sont pas exclusivement liés à l’automatisation.
Afin de vous guider, voici quelques exemples d’objectifs à prendre en compte. Il est recommandé de choisir au maximum trois objectifs principaux dans un premier temps. Une fois ces objectifs atteints, vous pourrez définir de nouveaux objectifs :
Attention à ne pas essayer d’atteindre tous les objectifs en une seule fois.
Ces objectifs doivent faire partie de la stratégie d’automatisation des tests.
Identifier les compétences nécessaires
Il est essentiel de ne pas se concentrer uniquement sur l’outil lors du choix d’automatisation des tests, car cela pourrait négliger l’importance des compétences nécessaires pour effectuer l’automatisation et déterminer qui sera responsable du développement et de la maintenance des scripts.
Le choix de l’outil aura un impact non seulement sur l’acquisition de compétences spécifiques à cet outil, mais également sur la facilité et la rapidité de recrutement de nouveaux talents. Par exemple, si vous souhaitez automatiser des API et que vous optez pour un outil technique exceptionnel répondant à vos besoins, mais que votre stack technologique est basée sur JavaScript, il sera plus difficile de trouver un spécialiste de l’automatisation possédant cette compétence spécifique, qui est rare. Cela pourrait entraîner des problèmes pour le projet, créant ainsi une dette technique en termes de qualité et d’automatisation.
Il est donc important de prendre en compte à la fois les fonctionnalités de l’outil et les compétences disponibles au sein de l’équipe ou sur le marché du recrutement.
PoC et Benchmark
Il est important de noter que choisir le meilleur outil d’automatisation de tests dépend de nombreux facteurs et peut varier d’un projet à l’autre. Il est recommandé de faire une évaluation approfondie des besoins et de comparer plusieurs outils avant de prendre une décision.
Il est recommandé de choisir 3 outils et de les manipuler de façon collective avec un groupe d’utilisateurs potentiels. Il est aussi recommandé de prendre en considération les contraintes qui seront un frein à la mise en place de l’automatisation :
Les critères techniques pour choisir
Du point de vue technique, voici quelques critères pour aider à la prise de décision qui dépende du contexte :
- Les langages possibles
- Le support de l’outil et sa communauté
- Le déploiement du produit et configuration
- L’interopérabilité et son intégration (CI/CD)
- La gestion de rapports
- La courbe d’apprentissage et la facilité de prise en main
- La gestion des devices
- La vitesse d’exécution
Le calcul du ROI
Il est indispensable d’anticiper le calcul du ROI dans le choix de l’outil d’automatisation des tests. Pour cela il faut mettre en place des critères et des indicateurs qui doivent permettre de s’assurer que les choix en termes de parcours à automatiser ou de stabilité de l’application permettant une maintenabilité des cas de tests automatisés et donc de garantir un ROI efficace.
Lors du choix d’un outil d’automatisation des tests, il est essentiel de prendre en compte plusieurs éléments clés.
Tout d’abord, il ne faut pas se reposer uniquement sur l’outil lui-même, mais comprendre les objectifs et les problématiques spécifiques du projet.
Ensuite, il est important d’évaluer les besoins du projet, le budget disponible, les compétences de l’équipe et le type de logiciel à tester.
De plus, il faut éviter certaines mauvaises pratiques telles que confier la responsabilité du choix à une seule personne ou suivre aveuglément les tendances.
Une approche structurée est recommandée, incluant la prise en compte du contexte du projet, la définition des objectifs, la réalisation d’une phase d’évaluation et la comparaison de plusieurs outils.
Enfin, il est essentiel d’évaluer le retour sur investissement en anticipant les critères permettant de mesurer l’efficacité de l’automatisation des tests.
En résumé, le choix d’un outil d’automatisation des tests doit être éclairé par une compréhension approfondie du projet, une approche structurée et la prise en compte de critères techniques et de retour sur investissement.