Introduction
Un testeur logiciel doit, dans son métier, proposer des solutions afin de procurer la visibilité aussi bonne que possible sur la qualité d’une application en fonction des moyens (temps, budget, nombre de personnes, ses connaissances…) dont il dispose. Cette nécessité ne dépend pas des circonstances. Afin de répondre à ces problématiques, le testeur dispose d’un outil formidable qu’il a créé: les campagnes de tests.
Les campagnes de tests servent à fournir l’information souhaitée dans un temps imparti. Cette information est le fruit du résultats des tests sélectionnés afin de répondre au besoin d’informations tout en respectant un grand nombre de contraintes. Ainsi, le testeur est passé maître dans l’art de la gestion du risque produit et plus précisément de son impact potentiel, de sa probabilité d’occurrence, du coût de sa mitigation ou de sa couverture par des tests appropriés. En cela le testeur est particulièrement doué.
Néanmoins, savoir gérer cela et proposer les meilleurs tests en fonction du contexte n’est pas suffisant! Cette affirmation n’est pas gratuite. Ce n’est pas parce qu’à un moment donné une campagne est parfaitement appropriée à un contexte qu’elle l’est toujours le lendemain… et encore moins la semaine d’après.
Le testeur doit être prêt à gérer le mieux possible des changements de contexte comme:
- Une diminution du temps imparti pour une campagne de test (livraison tardive, indisponibilité des environnements, changement de date de livraison…)
- Une baisse de capacité (un membre de l’équipe malade, du turn over…)
- La détection d’une anomalie particulièrement impactante nécessitant un long délai de correction
- La nécessité de tester un périmètre plus important que prévu
- Un changement de périmètre…
Afin de limiter au maximum l’impact de ces changement le testeur doit, en plus de penser au risque produit, diminuer autant que possible l’impact des imprévus en proposant un management des risques liés à l’exécution de la campagne des tests… Son principal outil pour répondre à cette situation est la priorisation des tests!
La sélection des tests, élément essentiel des campagnes de test
La priorisation des tests est essentielle… et dépend de la stratégie que l’on souhaite adopter. Personnellement j’aime bien offrir le plus vite possible une couverture « horizontale » (1 test par fonctionnalité) avant de prioriser les tests en fonction de leur criticité ou leur probabilité d’échec. Il existe d’autres manières de prioriser les tests comme prioriser en fonction des probabilité d’échecs (pour trouver les anomalies aussi tôt que possible) ou prioriser les tests en fonction de la criticité des scénarios (pour trouver les anomalies les plus impactantes aussi tôt que possible)…
De manière générale la priorisation doit être vu comme la nécessité de donner, à n’importe quel moment, la meilleure image possible sur la qualité de l’application. Si la campagne prend fin de manière non prévue, une bonne priorisation doit contenir tous les tests que l’on aurait sélectionné si les contraintes du contexte avaient été connue à l’avance! Concrètement, on doit théoriquement être capable, à n’importe quel moment :
- De proposer une information aussi complète que possible
- De s’adapter à un changement de périmètre en ne « sacrifiant » que les tests les moins important
- De fournir un bilan provisoire avec un indice de confiance et donc d’anticiper de potentiels retards
- D’assurer que les tests seront exécutables (gestion des dépendances)
De même, en fonction de la stratégie choisie pour la priorisation, la campagne doit permettre de:
- Trouver les anomalies au plus tôt afin de laisser le temps de la corriger
- Assurer l’absence d’anomalie majeure ou critique
- Avoir assez d’information pour arrêter une campagne…
Il est bon de rappeler que, tout comme le test, la priorisation va dépendre du contexte et que cette dernière peut/doit évoluer à chaque campagne. Cette pratique s’avère néanmoins particulièrement efficace afin de pouvoir s’adapter au changement en limitant au maximum l’impact de ce dernier.
Conclusion
La priorisation des tests est complémentaire à la sélection des tests. Elle permet de répondre à des imprévus mais aussi de fournir la meilleure information possible à n’importe quel moment. Il ne faut cependant pas oublier que la « meilleure » information n’est pas toujours la même et dépend du contexte. En cela la priorisation des tests doit être dynamique, s’adapter au contexte mais aussi aux objectifs fixés (détection d’anomalies, détection d’anomalie majeure ou critique, couverture des fonctionnalités ou des risques…). Finalement une bonne priorisation est donc comme un bon repas : un savant mélange d’ingrédient, d’équilibre des saveurs et totalement dépendant du public!
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.