Introduction
Lorsque l’on travaille sur un logiciel (que j’appellerai produit) qui est ancien ou développé depuis un petit moment on a généralement une campagne de régression conséquente.
Cette campagne, dont un nombre significatif de tests sont souvent automatisés, se retrouve souvent complexe avec de nombreux tests.
Ces tests sont maintenus afin de continuer à être en succès lorsqu’ils sont exécutés. Cette maintenance est généralement faite sur des tests ajouté au moment de l’ajout de la fonctionnalité au produit. Certains sont donc aussi « vieux » que le produit.
L’importance de faire évoluer ses tests
L’usure des tests
Vous avez sûrement déjà entendu parler du paradoxe du pesticide, maintenant appelé « usure des tests« . Ce principe explique que plus un test est exécuté moins il a de chances de trouver des défauts.
La maintenance des tests permet de continuer à utiliser des « vieux » tests. Malheureusement maintenance ne rime pas forcément avec évolution et entretien. Les tests, maintenus restent « vieux » et sujets à l’usure des tests.
Ne pas faire plus évoluer ses tests que les maintenir c’est entretenir des tests qui ont de moins en moins de chances de trouver des défauts.
Un contexte qui a évolué
Les tests dépendent du contexte!
Les tests ajoutés à une campagne de régression sont ajoutés par rapport au contexte du moment de l’ajout.
Cela dépend notamment de:
- l’utilisation du produit à ce moment là
- la taille du produit à ce moment là
- les risques identifiés à ce moment là
- les évolutions à venir
- les faiblesses du produit à ce moment là
- l’efficacité du test à ce moment là…
Comme on l’a vu dans le point précédent, l’efficacité du test diminue. Au delà du dernier point, le contexte d’un produit, que cela soit de son utilisation, sa taille, ses risques, évolution et faiblesses, change constamment… Et plus les dates sont éloignées, plus ces différences sont importantes !
Les tests dépendent du contexte, il est nécessaire de faire évoluer les tests qui composent la campagne de régression de son produit car le contexte lors de leur ajout est différent du contexte actuel.
Gagner en efficacité
Ce point peut être vu comme la fusion des 2 points précédent. C’est en partie vrai. S’adapter au contexte et s’assurer que ses tests restent efficaces permet de gagner en efficacité.
L’efficacité d’une campagne de régression peut être vue d’une manière un peu plus large.
Avec des indicateurs de couverture et de risques, on peut s’apercevoir que l’effort de test n’est pas toujours optimal. Que la campagne de test « sur-couvre » certaines fonctionnalité et en « sous-couvrent » d’autres.
Améliorer la couverture des tests permet d’améliorer fortement l’efficacité de la campagne de régression.
Conclusion
Ne considérez plus les tests de votre campagne de régression comme immuables et devant uniquement être maintenus.
Si vous voulez continuez à avoir une campagne aussi efficace que possible il est nécessaire de faire évoluer ces derniers. Cela peut se faire avec :
- la modification de tests (par exemple avec une modifications de données) pour s’assurer qu’ils correspondent mieux au contexte actuel,
- la suppression de tests,
- l’ajout de tests,
- une réflexion plus globale sur la campagne et les synergies entre les tests
Pensez à rejoindre le groupe « Le métier du test » si vous souhaitez échanger sur le test
Merci à tous ceux qui mettent « j’aime », partagent ou commentent mes articles
N’hésitez pas à faire vos propres retours d’expérience en commentaire.


