Comment estimer un projet de test

Tu es responsable d’une équipe de test et tu souhaites estimer la charge des activités de test de ton projet. Dans cet article tu vas découvrir une méthode simple et efficace pour y parvenir. N’hésites pas à poser des questions dans le zone commentaires pour clarifier tout point traité dans cet article.

Ce qu’il faut savoir avant de commencer :

Le test n’est pas une activité isolée, il dépend fortement de toutes les autres activités du cycle projet, et par conséquent, toi aussi tu dépends des autres acteurs du projet . L’estimation n’est pas une tâche que tu es sensé accomplir seul dans un bureau, il te faut des informations fonctionnelles, techniques et logistiques dont un responsable de test ne dispose pas toujours. Collaborer étroitement avec les autres intervenants du projet est alors capital: les profils métiers, les développeurs, et l’exploitation. Cette collaboration a un autre avantage qui a au moins autant d’importance; un intervenant associé au travail d’estimation, se sent naturellement respecté, sa compétence reconnue, et il a envie que cela dure et que le travail auquel il a participé soit une réussite et fera ce qu’il pourra pour que ça le soit. Impliquer les gens est un moyen respectueux et efficace pour les engager. L’estimation de la charge de test est idéalement réalisée au début du cycle projet, mais il arrive que dans la réalité, le responsable de test et son équipe soient impliqués tardivement dans le cycle projet, et sont donc contraints de fournir une estimation de la charge de test alors qu’une date butoir de mise en Production est déjà décrétée !

Mais comment estimer la charge de test ?

En résumé  :

Etape 1 : Créer la liste « à tester »

Le processus d’estimation commence par un travail de collecte d’information.

En tant que test Manager, tu dois contacter les représentants des autres équipes du projet (Métier, Dev, Opérations) afin de rassembler une liste d’exigences fonctionnelles et non fonctionnelles. Selon les projets, ces exigences peuvent être des fonctionnalités, des user stories, des cas d’utilisation … etc

Cette liste constitueras ton périmètre de test, il s’agit généralement d’une liste très proche de celle fournie à l’équipe de développement par la MOA, cela permet aux différentes équipes de parler un langage commun lors des réunions, cela facilitera grandement la communication et réduira les incompréhensions (phénomène de distorsion du besoin : pertes d’information d’une équipe à l’autre, dû à des interprétations incomplètes ou erronées du besoin initial).

La qualité de cette liste a un impact direct sur la qualité des développements et des tests.

Remarque pratique : Lors des échanges avec les parties prenantes, des points à vérifier par les tests peuvent être cités, il serait utile de bien les noter car cela pourrait apporter une aide non négligeable lors de la quantification des exigences de test correspondants (Etape 2).

Etape 2 : Prioriser les éléments de la liste

L’analyse de risque qualité (ou l’analyse de risque produit) est une façon efficace de prioriser les exigences.

Le risque est la possibilité qu’un événement négatif ou non désiré puisse survenir, on appelle un risque projet tout risque pouvant porter sur des aspects délai et coût du projet (dépassement planning, absence ressources, surcoût ressources..).et on appelle risque produit ou risque qualité tout risque pouvant porter sur la qualité du produit logiciel développé (fonctionnement, sécurité, fiabilité…).

Le test Manager n’est pas le mieux placé pour évaluer le risque qualité de chaque exigence, mais doit apporter la méthode adéquate. Il est donc nécessaire d’impliquer les intervenants clé qui ont fourni ces exigences, leur proposer une méthode de priorisation et les accompagner dans sa réalisation.

Remarque : les Étapes 1 et 2 peuvent être réalisées conjointement.

Etape 2.1 : Evaluer le risque

Pour chaque exigence, 2 valeurs sont à renseigner pour évaluer le risque de dysfonctionnement:

  • La probabilité d’occurrence d’une défaillance :La probabilité est élevée si la fonctionnalité correspondante est de grande taille ou complexe.
  • L’impact en cas de défaillance : Plus les conséquences d’un incident en production au niveau de cet exigence sont importants plus la valeur de l’impact est élevée

Etape 2.2 : calculer les scores de risque qualité des exigences

Evaluer le risque qualité revient à calculer le score de chaque exigence.

Score = Probabilité * Impact

Etape 2.3 : Catégoriser les exigences en classes de priorité

Classer ces exigences en catégories selon le score de risque qualité :

Etape 3 : Associer des approches de tests aux classes de priorité (stratégie de test)

Une stratégie de test sera établie en associant une approche de test (plus ou moins rigoureuse) à chacune des classes de priorité.

Plus le risque est grand plus il faut tester en profondeur

Une approche de test peut être une technique de test : tests exploratoires, valeurs limites, classes d’équivalence… ou simplement une couverture de test : nombre de combinaisons de valeurs des champs d’un formulaire, les profils opérationnels …

Associer à chaque classe de priorité une approche de test. Une approche de test peut combiner plusieurs techniques/couverture de test.

L’approche de test choisie détermine l’effort de test nécessaire pour diminuer le risque d’incident pour chacune des classe de priorité.

Etape 4 : Estimer l’effort de test

Etape 4.1 : Calculer les durées de test de référence

Simuler ou à défaut estimer les actions de préparation et d’exécution pour une exigence de référence simple en utilisant chacune des approches choisies.

La simplicité de l’exigence de référence facilite grandement l’exercice d’estimation. Choisir une exigence de petite taille : Probabilité = 1

Conseil pratique : Il serait utile de noter en commentaire les postulats sur lesquels ont été basé ces estimations de base. Cela aidera à réajuster sereinement les calculs plus tard.

Etape 4.2 : Calculer les charges de test

Estimer l’effort de test pour chaque exigence selon sa taille par rapport à l’exigence de référence(Probabilité) et sa catégorie (Approche):

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

Etape 5 : Ajuster l’estimation (nouvelle itération)

Il est toujours possible de réajuster les résultats de l’estimation en cas de besoin, pour cela tu disposes de plusieurs leviers :

  • Appliquer des Coefficients de modération aux charges des exigences: si l’équipe a hérite d’un patrimoine de test existant de précédentes campagnes, ou que le niveau d’expertise des testeurs est élevé, cela réduit significativement le temps de préparation et exécution …
  • Réévaluation du risque ( Importance métier, Complexité fonctionnelle, complexité technique)
  • Modification de la stratégie de test : Modifier l’effort de test ( approches, couverture, profondeur de test..)

Les questions et commentaires des lecteurs améliorent la qualité des articles et font plaisir à l’auteur, n’hésitez pas à m’écrire ci-dessous.

Comment prédire la fin d’un projet de test

Les indicateurs d’analyse

L es indicateurs que nous avons vu dans l’article « Comment construite le tableau de bord d’un projet de test » sont 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.

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 d’utiliser de vraies données pour ses prévisions et communique en toute transparence sur les incertitudes du projet.

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.

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).

Comment prédire la fin des tests

L es indicateurs que nous avons vu dans l’article « Comment construite le tableau de bord d’un projet de test » sont 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.

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 d’utiliser de vraies données pour ses prévisions et communique en toute transparence sur les incertitudes du projet.

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.

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).