Beaucoup de gens s'accordent à dire que les tests sont une phase importante du cycle de vie du développement logiciel. Cependant, en matière de tests, la quantité ne garantit pas toujours la qualité.
En d'autres termes, avoir une grande équipe de testeurs effectuant un nombre significatif de cas de test sur votre application peut donner l'illusion de la qualité, mais en réalité, cela peut ne pas être très efficace. Même le programme ISTQB indique que "les tests exhaustifs sont impossibles", alors comment décider ce qu'il faut tester ? Comment s'assurer que nous travaillons efficacement pour atteindre un niveau de couverture de test au moins acceptable qui puisse garantir la qualité de notre application ? Dans cet article, nous discuterons de ce qu'est une stratégie de test, de son importance éventuelle et de la manière de développer une bonne stratégie de test pour votre projet.
Une stratégie de test n'est pas seulement un document, mais toute forme de guide qui décrit les méthodologies précises, les techniques, l'approche et les objectifs d'une démarche de test. Comme pour toute autre activité dans le SDLC, il doit y avoir un objectif clair pour les tests. Une bonne stratégie de test doit guider l'équipe de test vers la réalisation de ces objectifs de la manière la plus efficace possible.
Puisque les tests exhaustifs sont impossibles et que dans un environnement agile les objectifs du projet ont généralement des échéances, il est important de s'assurer que, durant chaque phase de test, tout ce qui est fait dans le test d'une application soit directement en corrélation avec les objectifs du projet. Avoir une stratégie de test concise peut aider à atteindre cela en répondant aux questions "quoi ?" et "comment ?". Que doit-on accomplir durant cette phase, ce sprint ou ce projet globalement et comment cela sera-t-il réalisé ?
Une stratégie de test peut également combler le fossé d'expérience et de connaissances des membres de l'équipe de test ou parfois guider dans le processus de recrutement. Dans les environnements agiles, il est normal que les équipes de test changent ou évoluent constamment, ce qui peut signifier que de nouvelles idéologies, expertises et visions sur la manière dont les choses doivent être faites sont constamment introduites dans les projets. Avoir une stratégie prédéfinie pour votre activité de test garantit la continuité et la cohérence des processus, ce qui est essentiel pour rassurer les différentes parties prenantes.
D'expérience, peu de gens d'une équipe de développement comprennent exactement quel est le rôle d'un testeur, donc peut-être que la raison la plus importante d'avoir une stratégie de test est qu'elle donne un aperçu des activités de l'équipe de test aux autres membres de l'équipe.
Un bon plan de test doit définir un processus. Il est important de comprendre l'organisation d'un projet et les méthodologies de développement utilisées afin de concevoir une stratégie qui réponde le mieux aux besoins de votre projet. Pour que votre stratégie soit efficace, elle doit s'aligner sur l'approche de développement et de livraison.
Commencez par définir une portée pour votre stratégie. Cette stratégie couvre-t-elle le plan de test global du projet ou plutôt une stratégie pour une phase de test ou un sprint ? Il est conseillé d'avoir une stratégie pour votre projet. Définissez un objectif de test. Les objectifs de test doivent être précis et mesurables. Puisque tout ne peut pas être testé, définissez une portée de test. Avoir des critères d'entrée et de sortie peut aider à définir votre portée de test.
Avoir un objectif de test aide à répondre à la question "Que cherchons-nous à accomplir ?" Une fois que nous savons ce que nous allons tester, il est temps de décider de l'approche de test : "Comment allons-nous tester ?" Considérez le type de tests à effectuer (fonctionnels, non fonctionnels) et aussi les ressources disponibles lors de la décision d'une approche de test. Avez-vous suffisamment de ressources pour effectuer tous les tests manuellement ? Vos tests peuvent-ils être automatisés ? Quel pourcentage doit être automatisé ? Considérez l'environnement où le test sera effectué (dev, qualif, préprod), les outils que vous avez et les limitations de ces outils, etc. Ce sont toutes des questions importantes auxquelles il faut répondre lors de la décision de votre approche de test.
Les tests sont principalement effectués pour détecter des défauts dans un système ou une application, donc cela doit être un aspect important de votre stratégie de test. Définissez une classification pour les anomalies (basse, moyenne, haute) en fonction de l'outil de gestion des tests utilisé. Un cycle de vie des défauts peut également être défini. Concevez un critère d'acceptation pour mesurer la préparation d'une application pour le déploiement, par exemple (0 anomalies de haut niveau, < 3 moyennes, etc.). Cela peut également faire partie des critères de sortie.
Les tests de régression devraient toujours faire partie d'une bonne stratégie de test. Commencez par définir les tests de régression et à quelle fréquence ces tests doivent-ils être effectués. Si vos tests de régression sont automatisés, il est important de décider comment les scripts automatisés sont exploités. Il existe de nombreux outils pour exploiter les scripts de tests automatisés comme Jenkins, Gitlab, Squash, etc. Déterminez également comment vos tests de régression doivent être maintenus afin de garantir que ces tests restent pertinents.
Enfin, les parties prenantes ont besoin d'une réassurance constante sur la qualité du produit en développement. Par conséquent, les rapports de test sont une partie très importante d'une bonne stratégie de test. Définissez ce qui doit être inclus dans ces rapports, quand et comment le reporting doit être fait. Quels sont les indicateurs clés de performance (KPI) les plus pertinents et à quelle fréquence doivent-ils être rapportés ? Quand le reporting de test doit-il être effectué et qui est en charge de créer ces rapports, et aussi, à qui ces rapports sont-ils destinés et comment ils seront distribués aux parties concernées.
Il y a plusieurs avantages à avoir une stratégie de test. Elle peut améliorer l'efficacité de votre équipe de test et garantir la continuité des activités de test dans votre projet. Cependant, la clé est d'être flexible. Chaque projet est différent et les choses peuvent changer au cours du processus de développement, donc soyez prêt à faire des ajustements constants pour répondre aux besoins spécifiques de votre projet.