Définition ISTQB
L’indépendance des tests est un concept ISTQB très important. Sa définition dans le glossaire officiel est celle-ci: séparation des responsabilités qui favorisent l’exécution d’un test de manière objective [d’après DO-178b]
Que retenir ?
Le postulat de base du principe de l’indépendance des tests c’est que l’objectivité de tests est d’autant plus simple à assurer que les personnes étant amenées à tester sont éloignées de la construction de ce dernier.
De ce postulat découle plusieurs niveaux d’indépendance proposés (du plus indépendant au moins indépendant):
Cette répartition est assez instinctive en effet:
- « Celui qui développe est celui qui teste » correspond à une non indépendance. on s’en aperçoit même au delà du logiciel avec des relectures d’articles où l’on remarque plus facilement les erreurs des autres que les siennes
- « Celui qui tests est un membre de l’équipe est le premier niveau d’indépendance« . En effet on est ici sur quelqu’un de différent mais la personne qui teste a plus facilement tendance à faire confiance et à être moins vigilant… Ce type de comportement se voit aussi avec les articles où l’on a tendance à relire avec moins d’attention un texte écrit par quelqu’un en qui on a confiance
- « Celui qui (conçoit) teste appartient à la même organisation ou est un spécialiste du test » est un second niveau d’indépendance. On part du postulat qu’un spécialiste du test fait plus facilement abstraction qu’une personne dont ce n’est pas le métier. Toujours dans l’exemple de l’article, passer par quelqu’un dont la correction de faute est le métier permet d’atteindre une meilleure objectivité même si cette personne est quelqu’un qui a confiance en nous
- « Celui qui (conçoit) teste appartient à une autre organisation » est le dernier niveau proposé par rapport à l’indépendance du test car aucun lien de confiance ou d’a priori existe.
L’importance de cette indépendance peut facilement se ressentir avec des validations externes à faire sur des normes comme la DO-178B dans l’aviation qui permettent d’assurer que les logiciels sont suffisamment sûrs.
L’indépendance la solution à tout ?
Vous l’avez évidemment remarqué l’objectivité maximale (et même le 2ème niveau) sont régulièrement en contradiction avec l’Agile. Cela veut-il dire qu’en Agile on teste mal ?
Ce n’est évidemment pas le cas! Ou en tout cas pas forcément directement lié.
L’indépendance des tests est importante pour assurer une objectivité des tests, néanmoins cette même objectivité entraîne un éloignement qui peut s’avérer plus impactant qu’un manque d’objectivité!
Vous voyez vous demander à un développeur indépendant de faire les tests unitaires d’un autre développeur ? Vous voyez-vous sortir les tests et testeurs des équipes Agile pour avoir plus d’objectivité ?
La réponse est très certainement non et c’est bien normal car qui dit éloignement dit aussi:
- Une perte de connaissance d’un point de vue du contexte (on connaît moins bien le produit, les objectifs, les contraintes…)… qui se doit d’être rattrapé avec de la communication souvent à écrire
- Une perte de réactivité avec des processus devenant plus lents et alourdissant fortement les livraisons et la fluidité des échanges
Conclusion
L’indépendance des tests est un concept très intéressant et qu’il est toujours bon de garder en tête. L’objectivité des tests est importante et il est vrai que les pratiques Agile avec l’intégration des testeurs dans les équipes ont a priori diminué cette indépendance. Néanmoins cette diminution de l’indépendance a des vertus en terme de fluidité des processus et de connaissance du contexte. De même il existe des méthodologies et pratiques qui permettent, même en Agile d’améliorer l’indépendance des tests. Je pense par exemple à des pratiques comme l’ATDD, le BDD ou encore tout ce qui est « pair’ comme le pair-coding et le pair-testing.
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.