Principe 3 – Tester tôt

En quoi est ce utile d’introduire les tests plus tôt dans un projet ? Vous trouverez la réponse à cette question et plus dans la vidéo du Principe 3: Tester tôt Les questions et commentaires des lecteurs améliorent la qualité du contenu et font plaisir à l’auteur, n’hésitez pas à m’écrire ci-dessous.

Principe 4 – Regroupement des défauts

L’effort de test devrait être fixé proportionnellement à la densité des défauts prévus et constatés dans les différents modules. Un petit nombre de modules contiennent généralement la majorité des défauts détectés lors des tests pré-livraison, ou affichent le plus de défaillances en opération.

Est ce qu’il y des tests plus efficaces que d’autres?

Vous trouverez la réponse à cette question et plus dans la vidéo du Principe 4: Regroupement des défauts Les questions et commentaires des lecteurs améliorent la qualité du contenu et font plaisir à l’auteur, n’hésitez pas à m’écrire ci-dessous.

Principe 5 – Paradoxe du pesticide

Si les mêmes tests sont répétés de nombreuses fois, il arrivera que le même ensemble de cas de tests ne trouvera plus de nouveaux défauts. Pour prévenir ce “paradoxe du pesticide”, les cas de tests doivent être régulièrement revus et révisés, et de nouveaux tests, différents, doivent être écrits pour couvrir d‟autres chemins dans le logiciel ou le système de façon à permettre la découverte de nouveaux défauts
Il arrive que de bons tests soient moins efficaces avec le temps, cette détérioration est due à un phénomène qui s’appelle le paradoxe du pesticide. La vidéo du Principe 5 explique ce paradoxe et propose des solutions pour limiter son impact. Les questions et commentaires des lecteurs améliorent la qualité du contenu et font plaisir à l’auteur, n’hésitez pas à m’écrire ci-dessous.

Principe 6 – Les tests dépendent du contexte

Les tests sont effectués différemment dans des contextes différents. Par exemple, les logiciels de sécurité critique seront testés différemment d’un site de commerce électronique
Testeriez-vous de la même façon une application de gestion des livres et un logiciel de gestion du trafic aérien? Le principe 6 affirme que les tests dépendent du contexte et que chaque projet se déroule dans des conditions qui lui sont spécifiques et la réussite de ces tests exige une stratégie adaptée. Les questions et commentaires des lecteurs améliorent la qualité du contenu et font plaisir à l’auteur, n’hésitez pas à m’écrire ci-dessous.

Principe 7 – L’illusion de l’absence de défauts

Trouver et corriger des défauts n’aide pas si le système conçu est inutilisable et ne comble pas les besoins et les attentes des utilisateurs.

La relation entre la maîtrise d’ouvrage et sa maîtrise d’œuvre peut rapidement se détériorer si on ne comprend pas la réalité décrite par ce principe. Oui un logiciel peut être est jugé inutilisable à juste titre par la maîtrise d’ouvrage alors que le logiciel a un fonctionnement validé conforme aux spécifications par les tests de la maîtrise d’œuvre à juste titre également. Mais comment ça se fait ?!! La vidéo du Principe 7 l’explique en moins de 5 minutes. Les questions et commentaires des lecteurs améliorent la qualité du contenu et font plaisir à l’auteur, n’hésitez pas à m’écrire ci-dessous.

Comment construire un tableau de bord pour un projet de test

J’ ai vu beaucoup de projets présenter les résultats de leurs campagnes de test par de simples compteurs de type :
  • nombre de tests OK,
  • nombre de tests KO,
  • nombre de tests Non Testables,
  • nombre de tests Non Exécutés
  • .nombre d’anomalies bloquantes, majeures, mineures…etc
J’ai aussi vu l’inconfort des responsables de tests de ces projets quand le client leur pose des questions légitimes mais auxquelles leurs indicateurs simplistes ne sont pas capables de fournir une réponse.
  1. Est ce que mon application a une qualité suffisante pour la mettre en production ?
  2. Combien d’itérations de tests restent-ils encore et quand est ce que les activités de tests seront clôturés ?
  3. Aujourd’hui quelles sont les parties de l’applications qui fonctionnent correctement ? Et qu’est ce qui ne fonctionne pas ?
  4. A quoi est due la non qualité de l’application et qu’est ce qui est faisable pour l’améliorer ?
Les compteurs de base ne permettent effectivement pas de répondre à ces questions car elles poussent à voir la phase de test comme un stock de cas de tests à dérouler jusqu’à épuisement, un paradigme binaire (stock rempli, stock vide) et avare de possibilités. A la fin de cet article vous saurez comment constituer vos indicateurs de test et construire un tableau de bord adapté à votre projet de test. Vous aurez aussi des moyens simples et pratiques de prédire l’évolution future de votre projet de test (en fin d’article). Vous pouvez télécharger gratuitement le modèle detableau de bord GTT en bas de cet article.  Il existe plusieurs définitions au test, mais elle s’accordent toutes à l’assimiler à une comparaison entre un objet testé et une référence de test, le résultat de cette comparaison est une information sur la qualité de l’objet test. On n’attend pas d’une équipe de test d’améliorer la qualité du produit testé – c’est le travail des développeurs – mais on attend de l’équipe de test de rendre compte clairement de la qualité actuelle de l’application. Le responsable de test doit alors construire un tableau de bord qui renseigne clairement sur la qualité actuelle de l’application testée, qu’il puisse mesurer cette qualité. Mais comment mesurer une notion aussi abstraite que la qualité logicielle ?

Les indicateurs de qualité

Un produit logiciel n’est pas constitué de tests, les tests sont des éléments externes qu’on applique sur le produit logiciel pour juger de sa qualité. On peut cependant représenter une application par les exigences fonctionnelles et techniques qui la constituent : des fonctionnalités, un backlog de user stories, un ensemble de cas d’utilisations, des caractéristiques techniques… etc Les exigences sont une expression formelle et hiérarchisée des besoins d’un projet logiciel. Ces exigences ont autant d’importance pour les activités de test que pour les activités de développement, En plus de faciliter la transmission du besoin exprimé par les référents métier et permettre sa compréhension par le développeur et le testeur, représenter un produit logiciel par une structure d’exigences, rend sa qualité mesurable. « Tout ce qui se mesure se gère » Peter Drucker. Grâce aux exigences, le produit logiciel peut être structuré en arborescence et sa qualité peut alors être représentée sous forme d’une TreeMap.

Les exigences sont une expression formelle et hiérarchisée des besoins d’un projet logiciel.

Ces exigences ont autant d’importance pour les activités de test que pour les activités de développement,

En plus de faciliter la transmission du besoin exprimé par les référents métier et permettre sa compréhension par le développeur et le testeur, représenter un produit logiciel par une structure d’exigences, rend sa qualité mesurable.

« Tout ce qui se mesure se gère » Peter Drucker.

Grâce aux exigences, le produit logiciel peut être structuré en arborescence et sa qualité peut alors être représentée sous forme d’une TreeMap.

A titre d’exemple, on peut considérer qu’une application de calcul, a pour exigences les fonctions suivantes : Addition, Soustraction, Multiplication et Division.

Si ces fonctions ont des tailles différentes selon leur importance métier, leur complexité technique ou fonctionnelle alors la représentation de cette application peut en tenir compte.

Suite à une compagne de test ces résultats sont annoncés : 68% OK, 12%KO, et 20% NE.

Grâce à ces résultats on sait que globalement l’application n’est pas opérationnelle puisque il y a 12% de cas en échecs. Mais ces résultats ne permettent pas de savoir lesquelles de ces fonctions sont opérationnelles, ni même lesquelles ont été couvertes par les tests exécutés.

Les chiffres bruts d’exécution sont tellement ambigus qu’ils peuvent représenter différents niveaux de qualité du produit et ainsi correspondre à plusieurs situations.

Situation 1 : Ces résultats peuvent signifier que 2 parties de l’application sont validés et sont opérationnelles.

Notez ici que dire que les modules Addition et Soustraction sont validés, et les modules Multiplication et la Division non validés a beaucoup plus de sens que : 68% des cas de test sont OK, 12%KO, et 20% NE.

Situation 2 : Ces résultats peuvent aussi signifier qu’aucune fonction n’a été validé, donc aucune n’est opérationnelle :

Quelques soit la situation, cette représentation permet en un coup d’œil de suivre la qualité du produit logiciel.

Une autre façon de suivre la qualité du produit logiciel est l’histogramme de validation des exigences combiné à un histogramme des anomalies ouvertes.

Ce graphique associe l’avancement de la validation de l’exigence (le grand histogramme) aux anomalies ouvertes sur cette exigence (les petits histogrammes), comme ça on voit plus clairement le chemin à parcourir pour atteindre nos objectifs de qualité.

Un objectif qualité peut être :

  • Un seuil maximum de tests en succès qui peut différer d’une exigence à une autre selon son importance (la barre rouge dans la graphique).
  • Un seuil maximum d’anomalies selon leurs criticité.

Les indicateurs de moyens

Les indicateurs de qualité sont la raison première du tableau de bord mais en cas de non qualité il faut donner aux gestionnaires des leviers pour améliorer la situation pour ne pas s’enliser dans les itérations et les régressions.

Pour vous aider à construire le tableau de bord le plus adapté à votre projet, je vous proposes quelques indicateurs à titre d’exemples pour inspirer votre démarche.

La force de test

Ces indicateurs présentent la capacité de l’équipe de test à préparer et à exécuter des tests en montrant le nombre de testeurs travaillant sur chaque activité et leur productivité.

La disponibilité de la plateforme :

Les indisponibilités de la plateforme de test et son instabilité peut être très handicapant pour les activités de test, il faut alors suivre son état de près.

La force de développement : 

Détecter des anomalies est un gage d’efficacité des activités de tests mais n’améliore en rien la qualité du produit si elles ne sont pas suivies par un effort de correction et de livraison ayant autant d’efficacité.

Les compteurs des tests :

Le graphique « Préparation des tests » met en évidence la marge de tests préparés et qui sont prêts à être exécutés, si cette marge est petite le besoin d’accentuer l’effort de préparation peut être urgent.

Le graphique « Exécution des Tests » mesure le taux de re-test qui est un indicateur de la qualité des développements.

Le graphique Bilan des tests est une représentation quantitative des tests basés sur les résultats des exécutions. En effet pour avoir cette progression des tests plusieurs itérations d’exécution ont pu être nécessaires.

Les indicateurs d’analyse

Les indicateurs que nous avons vu plus haut sont tous des photos prises à un instant donné de la vie du produit logiciel, mais parfois nous avons besoin de plus pour analyser la situation de notre projet.

En réalité, un client demande autre chose que seulement comment se porte son projet à un instant donné, il peut exiger une visibilité sur le futur.

Il peut ainsi poser au responsable de test les questions suivantes :

  • « Quand est ce que tout ça va se terminer ? »
  • « Quel périmètre aura-t-on validé au 1er Juillet ? »
  • « Est ce qu’on aurait tout fini à une date donnée ? »

Quand est ce que tout ça va se terminer ?

Le responsable de test peut bien sûr lui faire une prévision basée sur des estimations et des calculs farfelues mais un Greattesteur se basera lui sur l’historique réel du projet.

« Celui qui ne sait pas d’où il vient ne peut savoir où il va car il ne sait pas où il est. En ce sens le passé est la rampe de lancement vers l’avenir » l’Archiduc Otto d’Habsbourg-Lorraine

Les résultats de l’exécution des tests sont ainsi sauvegardés et suivis dans le temps :

On peut associer d’autres données à ces courbes pour relever des corrélations :

  • Les fluctuations de la disponibilité de l’infrastructure
  • Les changements du nombre de personnes travaillant sur la préparation et l’exécution des tests et leurs vélocité.
  • La capacité de l’équipe de développement à corriger les anomalies.

Pour répondre alors à la question du client sur la fin des test, le Greattesteur peut donner une réponse en quelques secondes et voici comment il fera!

En se basant sur la courbe de tests en succès (OK), il va dessiner de façon manuelle une ligne de projection optimiste et une ligne de projection pessimiste.

L’écart entre la ligne optimiste et pessimiste symbolise la prédictibilité du projet de test, heureusement cet écart tend généralement à se stabiliser avec le temps.

La question du client fixe un objectif de périmètre à 100 %, mais le temps est variable.

La fin prévue des tests est alors l’intervalle entre les intersections des lignes de projection et la ligne du périmètre 100 %: Ici la fin des test est prévue entre mi-janvier et début Mars.

L’avantage de cet approche est sa simplicité, sa rapidité ainsi que la transparence qu’elle apporte vis à vis du client en communiquant honnêtement sur les incertitudes du projet.

Si le client souhaite une date au lieu d’une période, il est tout à fait possible d’utiliser la courbe de tendance qui existe nativement dans Excel : Outils de Graphique – Création – Ajouter un élément de graphique – Courbe de tendance – Prévision linéaire.

Quel périmètre aura-t-on validé au 1er Juillet ?

Dans ce cas le périmètre est variable et le temps est fixe. Cela donne quelques chose comme ça.

En fixant la date, La projection des intersections sur l’axe nous donne un périmètre cible : Le Greattesteur dira ici qu’au 1er Janvier on aura couvert 77 à 92% du périmètre.

Est ce qu’on aurait tout fini à une date donnée ?

La même logique s’applique ici aussi.

On constate que cette question fixe le périmètre à 100 % et fixe aussi la date (par exemple au 1er Décembre).

Sur la graphique ça donnera quelques chose qui ressemble à ça :

Ici la réponse à la question du client serait clairement : « Non, on n’aura malheureusement pas tout fini au 1er Décembre ».
Voici ce qui est sera validé à la date voulue.

Et voilà le délai nécessaire pour tout valider.


On aura donc le choix entre :

  1. réduire le périmètre : livrer en Décembre et le reste après
  2. ou allonger les délais : ne rien livrer en Décembre et tout livrer après

Le client choisira ce qui lui convient le mieux.

En général il vaut mieux commencer par réduire le périmètre, on peut toujours ainsi faire une deuxième livraison pour couvrir 100 % du périmètre.

Cette approche a l’avantage, encore une fois, d’utiliser de vraies données pour ses prévisions et communique en toute transparence sur les incertitudes du projet.

J’espère que ces indicateurs vous inspireront pour construire un tableau de bord adapté aux besoins de vos projets et qu’ils vous permettront de communiquer des informations pertinentes pour prendre les bonnes décisions.

Références :

  • Le développement logiciel Agile du point de vue du métier. Vidéo de Henrik Kniberg traduite par Cédric Chevalérias et doublée par Florent Lothon (http://www.agiliste.fr).

La charge de test du projet est la somme des charges des exigences du périmètre de test.

Comment faire un planning pour un projet de test

Un planning est une projection dans le temps des activités d’un projet.forme d’une TreeMap.

Un planning est essentiel pour :

  1. Susciter l’engagement
  2. Donner de la visibilité
  3. et Pousser à l’action

Pour créer un planning il faut :

  1. Décomposer le projet en tâches
  2. Estimer les durées des tâches
  3. Prévoir la disponibilité de l’équipe
  4. Renseigner les dates clés du projet
  5. Dessiner le planning en respectant les contraintes : de durée, de disponibilité et de livraison

L’ISTQB dans son syllabus avancé « Gestionnaire de test » décompose le processus de test en 8 activités principales, mais un planning n’en exige heureusement que 3 :

  • Pilotage: Planification, Suivi, Contrôle, évaluation des critères de sortie, reporting et Clôture
  • Préparation : Analyse, conception et implémentation
  • Exécution : Exécution et reporting

Les activités de pilotage étant permanentes ne seront pas représentées dans le planning.

Un projet simple aura par conséquent un planning composé de 2 tâches et ressemblera alors au graphique ci-dessous :

1- Estimer les durées des tâches

Chaque tâche de préparation et d’exécution doit avoir une durée. La durée d’une tâche de préparation/exécution est la somme de toutes les durées de préparation/exécution des fonctionnalités contenus dans le lot correspondant. Pour en savoir plus sur les techniques d’estimation consulter l’article Comment estimer un projet de test.

2 – Prévoir la disponibilité de l’équipe

Collecter les absences planifiées des membres de l’équipes et prévoir aussi les absences non planifiées (maladies, montée en compétence lente, déplacements,…etc)

Un outil de planification doit proposer un tableau facilitant cette collecte et son utilisation.

3 – Renseigner les contraintes de dates

Lister toutes les dates clés pouvant impacter le planning.

  • La date mise en production
  • Les dates de livraison
  • Les dates de disponibilité de l’infrastructure
  • Les dates de validation des spécifications

4 – Dessiner le planning en respectant les contraintes

Chaque case du tableau de planning correspond à une durée et une disponibilité.

La règle du jeu est de compléter les cases en ayant comme objectif:

  • Faire baisser le RAF à zéro
  • Garder la capacité restante au dessus de zéro

Veiller à la cohérence avec les dates de livraison des spécifications validées et des lots de l’application développés.