Les tests sont très utiles et instinctifs. Nous en parlons souvent dans la taverne à travers, par exemple cet article sur le « but des tests » et celui sur « ce que nous apporte le test« .
Le rôle des tests est une question universelle dans le monde du logiciel. Ce rôle est souvent réduit à celui du coût de détection des défaut ramené au coût de ce même défaut (ou d’une anomalie) s’il était arrivé en production. L’objectif des tests va évidemment au delà du seul objectif financier. C’est pourquoi l’ISTQB a défini, dans sa certification fondation, plusieurs objectifs habituels des tests:
- Évaluer les produits d’activités tels que les exigences, les User Stories, la conception et le code – donne de l’information sur un niveau de qualité
- Vérifier si toutes les exigences spécifiées ont été satisfaites – donne de l’information sur la complétude
- Valider si l’objet de test est complet et fonctionne comme attendu par les utilisateurs et autres parties prenantes – donne de l’information sur divers critères qualités
- Construire la confiance dans le niveau de qualité de l’objet de test – donner de la confiance
- Prévenir des défauts – anticiper de possible défauts pour les éviter
- Trouver des défaillances et défauts – trouver des défauts
- Fournir suffisamment d’information aux parties prenantes pour leur permettre de prendre des décisions éclairées, en particulier en ce qui concerne le niveau de qualité de l’objet de test – donner de l’information
- Réduire le niveau de risque d’une qualité logicielle inadéquate (p. ex. des défaillances non détectées auparavant se produisant en opération) – donner de la confiance
- Se conformer aux exigences ou aux normes contractuelles, légales ou réglementaires, et/ou vérifier la compatibilité de l’objet de test avec de telles exigences ou normes – donner de l’information
- Au cours des tests de composants, l’un des objectifs peut être de trouver autant de défaillances que possible de sorte que les défauts sous-jacents soient identifiés et corrigés tôt. Un autre objectif peut être d’augmenter la couverture du code des composants testés. – trouver et prévenir des défauts
- Au cours des tests d’acceptation, l’un des objectifs peut être de confirmer que le système fonctionne comme prévu et satisfait aux exigences. Un autre objectif de ces tests peut être de fournir des informations aux parties prenantes sur le risque lié à la sortie d’une version du système à un moment donné. – Donner de l’information et de la confiance.
Mon résumé personnel
Au final, les objectifs des tests ne sont pas tournés uniquement vers les défauts ou les anomalies. Les tests apportent une valeur difficilement quantifiable mais particulièrement précieuse! J’ai personnellement regrouper les objectifs ISTQB des tests en 4 points qui regroupent assez bien les points précédents:
Trouver des défauts
Il ne faut pas se le cacher. Le premier objectif qui vient à l’esprit lorsque l’on parle de test c’est la détection de défaut et plus particulièrement de défaillance (bug). Ce n’est pas pour rien que l’on voit certains commentaires d’utilisateurs virulent comme « Mais ils l’ont testé leur appli avant de la vendre ? » lorsque ces logiciels contiennent des anomalies majeures ou critiques.
Les tests sont donc évidemment utilisé comme des détecteurs dont le but est de trouver des défauts. Un peu comme un chasseur de champignons qui a pour but de trouver des champignons.
Cette détection seule n’est d’ailleurs pas utile! A quoi cela sert-il de trouver un bug si au final il n’est pas corrigé ?
Prévenir des défauts
Cet objectif est souvent négligé alors qu’il est primordial. En effet, ne dit-on pas « mieux vaut prévenir que guérir » ? En matière de logiciel c’est pareil!
Il ne faut pas perdre de vue l’objectif ultime lorsque l’on délivre un logiciel qui est de livrer ce dernier au bon moment et au bon niveau de qualité. Pour cela il faut éviter certaines anomalies. Hors, plus les anomalies (mais aussi défauts ou erreurs) sont détectées tard, plus ces dernières coûtent cher (en temps et en argent) à corriger. C’est d’ailleurs pour cela que le principe « Tester tôt » est un des 7 principes du test.
Donner de la confiance
On arrive ici sur un objectif très difficile à estimer au niveau « argent » mais essentiel. En effet, rien n’est plus angoissant que l’inconnu. Les tests sont aussi là pour réduire cette inconnu. Évaluer un niveau de qualité, une probabilité que tout aille bien.
Cette confiance est primordiale et va au delà du logiciel. Je pense par exemple au recrutement. Le principal objectif lors d’un recrutement n’est pas de ne pas réussir à avoir le meilleur pour le poste mais bien d’être sûr que la personne embauchée pourra faire ce travail. C’est d’ailleurs pour cela que les cooptations (ou encore « pistons ») fonctionne si bien: la personne est recommandée par quelqu’un en qui j’ai confiance, le risque de problème est donc (fortement) diminué et sélectionne donc cette personne qui présente moins de risque et ce même si, sur le papier elle semble moins indiquée que d’autres personnes.
Donner de l’information pour la prise de décision
Cet objectif découle du premier et du troisième. Tour comme le précédent il est difficile de chiffrer sa valeur bien qu’il soit essentiel.
Il répond également en partie à la question « A quoi cela sert-il de trouver un bug si au final il n’est pas corrigé ? ». La réponse est simple: cela donne de l’information. On est au courant que le bug est présent, on l’a bien identifié et on connait son impact. En fonction de cet impact et une comparaison avec l’impact de sa correction (en coût et délai) on peut choisir ou non de déployer de logiciel en ayant toute l’information nécessaire.
Cette information est primordiale car elle permet d’anticiper des réactions et des impacts, d’éviter les mauvaises surprises en aidant à prendre les bonnes décisions. Cet objectif est symbolisé par le « bilan des tests », le livrable le plus attendu par les non testeurs ce qui en fait la vitrine des tests! L’information la plus recherchée est souvent l’avis de « Go / No-Go lié à la campagne effectuée.

Conclusion
Les tests c’est beaucoup plus que de la détection de défaut ou de bugs. Les tests permettent d’avoir beaucoup plus qu’une simple liste d’anomalies à corriger, en cela il sont beaucoup plus précieux. Si l’on doit retenir 1 choses des objectifs des tests selon l’ISTQB c’est qu’il faut savoir regarder au delà de la détection des défauts. Les tests c’est de la prévention, de la détection et de la création d’information au service de la prise de décision.
L’information est régulièrement mise en avant dans tous les domaines (logiciels ou non). Le prix de certaines informations est inestimable (ce n’est pas pour rien que lors des temps de guerre il y avait autant d’espions et qu’une partie de la guerre s’est jouée sur la faculté à décrypter des messages codés (merci Turing). Alors, la prochaine fois que l’on vous demandera ce qu’apporte le test, en plus de parler des retours sur investissement avec la détection et la prévention des bugs, pensez à parler de l’information que ces derniers procurent!
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.
Publié par