Coup de gueule : arrêter d’annoncer une couverture de 100% seule

Introduction

J’ai rencontré la problématique des couvertures de 100% dans une de mes première expérience dans le test! On avait préparé une couverture de 100% des scénarios proposés dans les spécifications. Entendez par là que tous les scénarios proposés dans les spécifications faisaient l’objet d’au moins 1 test. Pour être honnête j’étais jeune, inexpérimenté et plutôt fier de ce « 100% ».

Néanmoins cette couverture n’a pas empêché le passage en production de bug non détectés par les tests. Rien de plus normal me direz-vous sauf que… nous avons eu alors une discussion informelle avec le responsable du service qui se plaignait que l’on n’avait pas trouvé certains bugs alors que l’on annonçait une couverture de 100%.

Au delà du problème du 0 bug, cela soulève un autre point qui a le don de m’irriter, une couverture de 100%, seule, en tant que tel ne veut rien dire!

Concrètement une couverture de 100% c’est quoi ?

Une couverture est un outil de mesure. En général il calcule de % d’un point particulier par rapport à un autre. Pour faire simple on peut le comparer à une note.

Imaginez, vous enfant (ou votre enfant si vous en avez), rentrez chez vous avec un note. Vous avez eu « 10 ». Est-ce bien ou non ? Il est pour moi impossible d’y répondre sans contexte mais surtout sans échelle! Selon le contexte et l’échelle, ce 10 peut être un très bonne note comme une très mauvais.

  • 10/10 est une très bonne note
  • 10/20 est une note moyenne qui peut selon le contexte être encourageante ou non. A l’époque, 10/20 en français représentait pour moi un exploit et une fierté alors que 10/20 en mathématiques étaient une énorme désillusion (je sais ça fait cliché)
  • 10/40 (comme les notes au brevet des collèges quand je l’ai passé) c’est mauvais.
  • 10/100 c’est très mauvais

Le 100% d’une couverture c’est exactement la même problématique que ce « 10 ». Sans précision, sans contexte, cela ne veut rien dire!

Au final une couverture c’est quoi ?

Un couverture est un très bel outil mais qui est très malléable. Afin de l’utiliser correctement il faut le borner, le définir. Pour continuer sur les analogies, on peut faire le parallèle avec une densité.

Une densité s’exprime par une mesure par rapport à un volume ou une surface. Une concentration de 10mg ou de 10 hommes ne veut rien dire. Par contre une densité de 10 mg / litre et de 10 hommes par m² (ce qui est plus que la densité du métro parisien aux heures de pointes :D) correspond à quelque chose.

Une couverture c’est pareil, elle doit se baser sur un nombre / une mesure par rapport à un étalon:

  • les « 100% » qui nous sont si cher (mais qui peuvent être autre chose) représente le nombre qui doit être remis dans son contexte
  • Le contexte, l’échelle, la mesure comparative peut quant à elle prendre plusieurs forme. La couverture des instructions c’est le nombre de ligne de code, la couverture des méthodes les fonctionnalités, les couvertures des partitions d’équivalences est par rapport à ces mêmes partitions, on peut aussi parler de couvertures de risques…

Au final les possibilités de contextes peuvent être infinies, on peut toujours en imaginer de nouvelles et c’est bien pour cela que parler d’une couverture de 100% en tant que tel ne veut rien dire. Couvrir toutes les fonctionnalités par au moins 1 test est moindre que couvrir toutes les partitions d’équivalence de toutes ces fonctionnalités ce qui reste moins que parcourir toutes les valeurs limites de ces mêmes partitions d’équivalence.

Conclusion

Ne vous faîtes pas avoir par des annonces vide de sens comme les couvertures de 100% car il sera toujours possible de trouver une couverture de 100% quelque soit les tests effectués. Lorsque vous utiliser l’outil des couvertures pensez à toujours repérer et analyser l’unité de mesure, l’étalon, l’échelle utilisée. C’est seulement à ce moment là que vous saurez quel a été le niveau de test ou la profondeur des tests effectués ainsi que comment ils ont été pensés.

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.

Une réponse

  1. Je suis d’accord avec ça à 100% 🙂
    Attention à ne pas confondre densité et masse volumique : d = mv / mv(eau) en tant que rapport de masses volumiques elle n’a pas d’unité. ( > 10/20 en physique) 😉

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Interview

Emmanuelle Agnans: Consultante test

Bonjour, qui êtes-vous, quel est votre métier et quelles sont vos activités professionnelles ? Emmanuelle, j’occupe le poste de consultante test dans le domaine de l’assurance. Mes activités sont diverses et variées : conception de test, exécution de test, formation de collègues sur l’assurance, accompagnement des nouvelles recrues, reporting auprès du client

Lire la suite »
Bug

Le Paradoxe des pesticides

Définition Le paradoxe des pesticides n’est pas exclusif aux tests. En fait il a même été « récupéré » par le test car à l’origine c’est un paradoxe qui nous vient du monde agricole. Ce paradoxe est assez simple : plus on utilise de pesticides, plus on doit en utiliser

Lire la suite »
Bilan

Les bilans: la vitrine des tests!

Voici un article qui me semble important à écrire et qui est dans la continuité de mes articles sur la conception, l’écriture, l’exécution seule et l’analyse des tests. Les bilans sont un livrable de test particulièrement important car les bilans c’est : ·        Le résumé d’une campagne de test ·        Le livrable le

Lire la suite »