Chapitre 1421 minIntermédiaire
Plan de test, cahier de recette et rapport de test
Par Josselyn C., prof de BTS SIO. Mis à jour le .
À la fin de ce chapitre, tu sauras
- rédiger un plan de test avec ses critères d'entrée et de sortie ;
- transformer des critères d'acceptation en cas de test ;
- rédiger un cas de test qu'une autre personne peut exécuter ;
- conclure une campagne dans un rapport de test chiffré ;
- préparer les livrables de test attendus à l'E5 et à l'E6.
4 exercices corrigés1 schéma
Le plan de test décrit comment une version sera testée : périmètre, types de tests, environnements, données, critères pour commencer et pour terminer. Le cahier de recette liste les cas de test qui vérifient chaque exigence, avec leurs étapes et leur résultat attendu. Le rapport de test rend compte de la campagne : ce qui a été testé, ce qui passe, ce qui échoue, et la recommandation de mise en production ou non. Ces trois documents sont des livrables attendus à l'E5 (« un rapport de test est produit ») et souvent à l'E6. Ce chapitre les rédige pour une évolution de Prêt'Matos.
Les documents du test
| Document | Question à laquelle il répond | Qui le rédige | Quand |
|---|---|---|---|
| Plan de test (ou stratégie de test) | Comment allons-nous tester cette version ? | L'équipe, avec la MOA pour la recette | Au début du projet ou de la version |
| Cahier de recette | Quels cas précis allons-nous dérouler, avec quel résultat attendu ? | L'équipe et la MOA, à partir des exigences | Pendant la conception, avant le développement si possible |
| Fiche d'anomalie | Quel écart a été constaté, comment le reproduire, quelle gravité ? | Celui qui constate l'écart | Pendant la campagne |
| Rapport de test | Qu'a-t-on testé, qu'est-ce qui passe, peut-on livrer ? | Le responsable des tests, ou toi | À la fin de la campagne |
| Procès-verbal de recette | La MOA accepte-t-elle la livraison, avec ou sans réserves ? | La MOA, qui le signe | À la fin de la recette |
Le cours Gestion de projet décrit la place de la recette dans le projet, le cycle des anomalies et le procès-verbal (recette et clôture). Ce chapitre se concentre sur la rédaction des documents de test.
L'évolution à recetter
Nadia a validé une nouvelle user story pour la version 1.5 de Prêt'Matos :
En tant que salarié, je veux prolonger mon prêt en cours afin de garder le matériel quand ma mission dure plus longtemps que prévu.
Critères d'acceptation :
- la prolongation dure de 1 à 7 jours ;
- la durée totale du prêt, prolongation comprise, ne dépasse pas 15 jours ;
- on ne peut pas prolonger un prêt déjà en retard ;
- on ne peut pas prolonger si le matériel est réservé par quelqu'un d'autre sur la période ajoutée ;
- seul l'emprunteur peut prolonger son prêt ;
- après la prolongation, la nouvelle date de retour s'affiche et le rappel part la veille de cette nouvelle date.
Le plan de test
Un plan de test n'a pas besoin d'être long. Pour une version d'une application interne, une ou deux pages suffisent, organisées en rubriques fixes.
| Rubrique | Contenu pour Prêt'Matos 1.5 |
|---|---|
| Objet | Valider la prolongation de prêt (story n° 12) et vérifier l'absence de régression avant la mise en production du 5 avril |
| Périmètre testé | La prolongation (API, écran « mes prêts », rappel), plus la liste de non-régression NR-01 à NR-06 |
| Hors périmètre | Les statistiques (non développées) ; les performances (aucun changement de volume) |
| Niveaux et types de tests | Tests unitaires de la règle de prolongation ; tests d'intégration de la route POST /api/prets/:id/prolongation (dont droits d'accès) ; un test de bout en bout du parcours ; recette manuelle par Nadia et deux salariés |
| Environnement | Serveur de recette, version 1.5.0-rc.1, base MySQL de recette réinitialisée avec le jeu de données de recette |
| Données de test | Jeu fictif versionné : comptes julie.recette (salariée) et nadia.recette (logistique) ; un prêt en cours de 5 jours, un prêt de 10 jours, un prêt en retard, un matériel réservé juste après un prêt |
| Outils | Vitest, Supertest, Playwright dans la CI ; cahier de recette partagé ; anomalies dans les tickets GitHub |
| Critères d'entrée | Tous les tests automatisés verts dans la CI ; version déployée en recette ; jeu de données chargé |
| Critères de sortie | Tous les cas exécutés ; aucune anomalie bloquante ou majeure ouverte ; les anomalies mineures listées avec un délai de correction |
| Rôles | Yanis prépare l'environnement et corrige ; Nadia et deux salariés déroulent les cas ; Lina rédige le rapport |
| Calendrier | Recette du 29 au 31 mars ; rapport le 1er avril ; décision de mise en production le 2 avril |
| Risques | Indisponibilité des salariés testeurs (prévoir un remplaçant) ; anomalie de sécurité découverte tard (les cas de droits sont passés en premier) |
Les critères d'entrée évitent de commencer une recette sur une version qui ne démarre pas ; les critères de sortie disent à l'avance ce qui permettra de dire « c'est fini ». Sans eux, la recette s'arrête quand on n'a plus le temps, et la décision de livrer se prend à l'intuition.
Des critères d'acceptation aux cas de test
Chaque critère d'acceptation donne au moins un cas de test, souvent deux ou trois : le cas qui passe, et les valeurs limites qui doivent être refusées ou acceptées (chapitre 3). Le format Étant donné / Quand / Alors aide à les écrire sans ambiguïté :
# language: fr
Fonctionnalité: Prolonger un prêt
Scénario: La prolongation porte le prêt à 15 jours tout juste
Étant donné que Julie a emprunté PC-07 du 10 au 19 mars, soit 10 jours
Et que PC-07 n'est réservé par personne après le 19 mars
Quand Julie prolonge son prêt de 5 jours le 15 mars
Alors la prolongation est acceptée
Et la nouvelle date de retour affichée est le 24 mars
Scénario: La prolongation dépasserait 15 jours
Étant donné que Julie a emprunté PC-07 du 10 au 19 mars, soit 10 jours
Quand Julie prolonge son prêt de 6 jours le 15 mars
Alors la prolongation est refusée
Et le message « Un prêt dure au plus 15 jours. » s'affiche
Rédiger un bon cas de test
Un cas de test doit pouvoir être exécuté par quelqu'un d'autre que son auteur, sans lui poser de question, et donner le même verdict. Il contient :
| Champ | Contenu | À éviter |
|---|---|---|
| Identifiant | Un numéro unique (R-PROL-03) | Pas de numéro : impossible de citer le cas dans une anomalie |
| Exigence vérifiée | Le critère d'acceptation ou l'exigence du cahier des charges | Un cas qui ne vérifie aucune exigence, ou une exigence sans cas |
| Préconditions | L'état de départ : compte connecté, données présentes | « Avoir un prêt » (lequel ? de quelle durée ?) |
| Étapes | Les actions, numérotées, avec les valeurs saisies | « Tester la prolongation » |
| Résultat attendu | Ce qui doit se produire, vérifiable sans interprétation | « Ça marche », « le message est correct » |
| Résultat obtenu, statut | Rempli à l'exécution : OK, KO (avec le numéro d'anomalie), bloqué, non exécuté | Un KO sans fiche d'anomalie |
| Preuve | Une capture, un extrait de journal, la date et l'exécutant | Pas de trace : impossible de prouver la campagne |
Le lien entre chaque exigence et ses cas de test s'appelle la traçabilité. À la fin de la rédaction, aucune exigence ne doit rester sans cas, et aucun cas sans exigence.
Le cahier de recette de la prolongation
| N° | Exigence | Préconditions | Étapes | Résultat attendu | Obtenu | Statut |
|---|---|---|---|---|---|---|
| R-PROL-01 | Durée 1 à 7 jours | Julie connectée ; prêt de PC-07 du 10 au 14 mars (5 jours) ; on est le 12 mars | Prolonger de 1 jour | Acceptée ; retour le 15 mars | Conforme | OK |
| R-PROL-02 | Durée 1 à 7 jours | Idem | Prolonger de 7 jours | Acceptée ; retour le 21 mars | Conforme | OK |
| R-PROL-03 | Durée 1 à 7 jours | Idem | Prolonger de 8 jours | Refusée ; message « Une prolongation dure de 1 à 7 jours. » | Refusée, message affiché | OK |
| R-PROL-04 | Total de 15 jours au plus | Julie connectée ; prêt de PC-07 du 10 au 19 mars (10 jours) ; on est le 15 mars | Prolonger de 5 jours | Acceptée ; retour le 24 mars | Conforme | OK |
| R-PROL-05 | Total de 15 jours au plus | Idem | Prolonger de 6 jours | Refusée ; message « Un prêt dure au plus 15 jours. » | Acceptée, retour le 25 mars | KO (A-21) |
| R-PROL-06 | Pas de prolongation en retard | Prêt de VP-02 du 1er au 5 mars, non rendu ; on est le 8 mars | Prolonger de 2 jours | Refusée ; message indiquant le retard | Conforme | OK |
| R-PROL-07 | Matériel réservé ensuite | Prêt de PC-07 jusqu'au 14 mars ; PC-07 réservé par Sofiane à partir du 16 mars | Prolonger de 3 jours | Refusée ; message citant la réservation du 16 mars | Conforme | OK |
| R-PROL-08 | Seul l'emprunteur | Karim connecté ; prêt de PC-07 au nom de Julie | Appeler la prolongation du prêt de Julie (par l'adresse de l'API) | Refusée (404) ; prêt de Julie inchangé | Conforme | OK |
| R-PROL-09 | Nouvelle date et rappel | Prolongation R-PROL-02 effectuée | Consulter « mes prêts » ; attendre l'envoi des rappels du 20 mars | Retour affiché le 21 mars ; un rappel reçu le 20 mars, aucun le 13 mars | Date affichée ; rappel non vérifié (envoi des courriels désactivé en recette) | Bloqué |
Remarque les cas R-PROL-02 et R-PROL-03 (7 et 8 jours), puis R-PROL-04 et R-PROL-05 (15 et 16 jours au total) : les valeurs limites de chaque règle. Le cas R-PROL-08 est un test de sécurité ; il se fait en appelant l'API directement, parce que l'écran ne montre jamais le bouton à quelqu'un d'autre que l'emprunteur. Une recette ne vérifie pas seulement que ce qui doit marcher marche, mais aussi que ce qui doit être refusé l'est.
Exécuter la campagne et suivre les anomalies
Pendant la campagne, chaque cas reçoit un statut :
| Statut | Sens |
|---|---|
| OK | Le résultat obtenu est conforme à l'attendu |
| KO | Le résultat diffère ; une fiche d'anomalie est ouverte et son numéro noté dans le cahier |
| Bloqué | Le cas ne peut pas être exécuté (environnement, donnée manquante, autre anomalie) ; la cause est notée |
| Non exécuté | Pas encore passé, ou volontairement écarté (avec la raison) |
La fiche d'anomalie A-21 de R-PROL-05 contiendrait : l'identifiant, le cas de test, la version (1.5.0-rc.1), la description (« une prolongation qui porte le prêt à 16 jours est acceptée »), les étapes pour reproduire, le résultat attendu et le résultat obtenu, une capture, la gravité, l'auteur et la date. Sa gravité décide de la suite : bloquante, majeure ou mineure (les anomalies). Ici, une règle métier n'est pas appliquée : c'est une anomalie majeure.
Quand l'anomalie est corrigée, deux choses se passent : on rejoue le cas qui avait échoué (R-PROL-05), puis on rejoue la non-régression, car la correction a pu casser autre chose (chapitre 11). Côté développeur, la correction arrive avec un test automatisé qui reproduit A-21 : la même anomalie ne pourra pas revenir.
Le rapport de test
Le rapport de test (on dit aussi bilan de campagne) se lit en deux minutes par quelqu'un qui doit décider. Il commence par la conclusion et les chiffres, puis donne le détail.
Rapport de test — Prêt'Matos 1.5.0-rc.1 — Prolongation de prêt
Contexte. Recette de la story n° 12 « prolonger un prêt » et non-régression de la version 1.5, du 29 au 31 mars, sur l'environnement de recette. Testeurs : Nadia Faure (logistique), Julie Lefèvre et Karim Morel (salariés). Rédaction : Lina.
Conclusion. Mise en production non recommandée en l'état : une anomalie majeure (A-21) est ouverte. Après sa correction et un nouveau passage des cas R-PROL-05 et de la non-régression, la mise en production peut être envisagée le 5 avril comme prévu.
Synthèse des tests manuels.
Ensemble Cas OK KO Bloqués Prolongation (R-PROL-01 à 09) 9 7 1 1 Non-régression (NR-01 à NR-06) 6 6 0 0 Total 15 13 1 1 Tests automatisés. 82 tests unitaires et d'intégration, tous verts dans la CI sur la version testée ; couverture des lignes de 91 %. 3 tests de bout en bout verts.
Anomalies. A-21, majeure, ouverte : une prolongation qui porte le prêt à 16 jours est acceptée (R-PROL-05).
Points non vérifiés. R-PROL-09 bloqué : l'envoi des courriels est désactivé sur l'environnement de recette. La date de rappel est couverte par un test automatisé ; une vérification réelle est proposée en production sur un prêt de test, le jour de la mise en service.
Couverture des exigences. Les 6 critères d'acceptation ont au moins un cas exécuté ; 4 sont validés, 1 est en anomalie (total de 15 jours) et 1 n'est vérifié qu'en partie (la nouvelle date s'affiche, mais le rappel n'a pas pu être contrôlé : R-PROL-09 bloqué).
Les chiffres du rapport doivent être cohérents : 13 OK + 1 KO + 1 bloqué = 15 cas. Un rapport qui ne cite que les succès n'est pas un rapport, c'est une publicité : la commission comme le client attendent de voir ce qui ne marche pas et ce que tu proposes.
La recette avec les utilisateurs
Le test d'acceptation par les utilisateurs vérifie ce qu'aucun test automatisé ne vérifie : l'application convient-elle à ceux qui s'en servent ? Quelques règles pour une séance utile :
- choisir des utilisateurs clés qui représentent les rôles (un salarié, une personne de la logistique), et pas seulement le Product Owner ;
- leur donner des scénarios métier (« vous partez en mission trois jours de plus que prévu »), pas les étapes techniques du cahier : on observe s'ils trouvent seuls ;
- observer sans aider et noter les hésitations : un utilisateur qui cherche le bouton pendant une minute est une information ;
- distinguer, dans les retours, les anomalies (l'application ne fait pas ce qui était convenu) des demandes d'évolution (elle fait ce qui était convenu, mais l'utilisateur voudrait autre chose). Les premières se corrigent, les secondes vont au backlog ;
- conclure par une décision écrite : le procès-verbal de recette, signé par la MOA.
Ce qu'on attend de toi à l'E5 et à l'E6
À l'E5 (bloc 1, commun aux deux options), la compétence « mettre à disposition des utilisateurs un service informatique » demande de réaliser les tests d'intégration et d'acceptation d'un service. La commission vérifie que des tests pertinents sont rédigés et effectués, que les outils de test sont utilisés correctement et qu'un rapport de test est produit (les compétences du bloc 1). Pour une réalisation de ton portfolio, garde donc : le cahier de recette avec les résultats, les fiches d'anomalies, le rapport de test, et les traces de l'exécution (captures, journal de la CI).
À l'E6 SLAM, la fiche descriptive de chaque réalisation cite tes outils de test, et l'expression des besoins remise par la commission peut demander, comme documentation à présenter, un rapport de test (le modèle de l'expression des besoins). Pendant l'heure de réalisation, il ne s'agit pas d'écrire dix pages : un rapport court et honnête suffit, préparé à l'avance sous forme de modèle.
RAPPORT DE TEST — [réalisation] — [évolution demandée]
Date, version (commit), environnement : poste local, base de test
1. Ce qui a été testé
- tests automatisés ajoutés : [noms des tests] → résultat de `npm test` (capture)
- tests manuels : cas nominal, cas refusés (tableau : cas, attendu, obtenu, statut)
2. Résultat
- X tests automatisés, tous verts / Y en échec (lesquels, pourquoi)
- non-régression : suite complète relancée, verte
3. Ce qui n'a pas été testé, et pourquoi
4. Anomalies ou limites connues, et ce que je ferais ensuite
Pendant la recette de l'E6, montre le terminal avec la suite verte, puis le rapport : c'est la preuve des compétences « réaliser les tests nécessaires à la validation » et « élaborer et réaliser les tests des éléments mis à jour » (la recette de l'E6).
Exercices
Exercice 1 sur 4 Des critères aux cas de test Réussi À revoir
Story : « En tant que membre de la logistique, je veux enregistrer le retour d'un matériel afin de le rendre de nouveau disponible. » Critères : seul un membre de la logistique peut enregistrer un retour ; on ne peut enregistrer le retour que d'un matériel sorti ; après le retour, le matériel apparaît comme disponible dans le catalogue ; un retour après la date prévue est signalé « rendu en retard » dans l'historique.
Rédige quatre cas de test (identifiant, préconditions, étapes, résultat attendu), dont au moins un test de droits.
Voir la réponseMasquer la réponse de l'exercice 1
| N° | Préconditions | Étapes | Résultat attendu |
|---|---|---|---|
| R-RET-01 | Nadia (logistique) connectée ; PC-07 sorti, retour prévu le 14 mars ; on est le 14 mars | Enregistrer le retour de PC-07 | Retour enregistré ; PC-07 « disponible » dans le catalogue ; historique : « rendu à temps » |
| R-RET-02 | Julie (salariée) connectée ; PC-07 sorti | Appeler l'enregistrement du retour de PC-07 (bouton absent : par l'adresse de l'API) | Refus (403) ; PC-07 toujours « sorti » |
| R-RET-03 | Nadia connectée ; VP-02 réservé mais pas encore sorti | Enregistrer le retour de VP-02 | Refus ; message indiquant que le matériel n'est pas sorti ; état inchangé |
| R-RET-04 | Nadia connectée ; PC-07 sorti, retour prévu le 14 mars ; on est le 16 mars | Enregistrer le retour de PC-07 | Retour enregistré ; historique : « rendu en retard (2 jours) » |
On peut ajouter la limite du retour le jour même de la date prévue (R-RET-01, à temps) face au lendemain (en retard d'un jour) : la frontière exacte du retard.
Tu avais trouvé ?
Exercice 2 sur 4 Améliorer un cas de test Réussi À revoir
Réécris ce cas de test pour qu'un autre testeur puisse l'exécuter sans poser de question.
| N° | Étapes | Résultat attendu |
|---|---|---|
| 7 | Tester la réservation trop longue | Ça doit être refusé |
Voir la réponseMasquer la réponse de l'exercice 2
| N° | Exigence | Préconditions | Étapes | Résultat attendu |
|---|---|---|---|---|
| R-RES-07 | Un prêt dure au plus 15 jours | Julie (salariée) connectée ; VP-02 libre en mars ; on est le 8 mars | 1. Ouvrir « Réserver ». 2. Choisir VP-02. 3. Saisir du 15/03 au 30/03. 4. Cliquer sur « Réserver » | Réservation refusée ; message « Un prêt dure au plus 15 jours. » ; aucune réservation ajoutée dans « mes réservations » |
Les corrections : un identifiant parlant, l'exigence vérifiée, des préconditions précises (qui, quelles données, quelle date), des étapes avec les valeurs exactes (16 jours, la première valeur refusée), et un résultat attendu vérifiable, y compris l'absence d'effet. On ajouterait le cas jumeau à 15 jours, qui doit être accepté.
Tu avais trouvé ?
Exercice 3 sur 4 Conclure une campagne Réussi À revoir
Une campagne compte 24 cas : 19 OK, 3 KO, 1 bloqué, 1 non exécuté. Les anomalies sont : A-30, bloquante (un salarié peut enregistrer des sorties) ; A-31, mineure (faute d'orthographe dans un libellé) ; A-32, majeure (le rappel part deux jours avant au lieu de la veille). Les critères de sortie du plan de test sont : « tous les cas exécutés, aucune anomalie bloquante ou majeure ouverte ».
- Les critères de sortie sont-ils atteints ? Justifie avec trois raisons.
- Rédige la conclusion du rapport de test en trois phrases.
Voir la réponseMasquer la réponse de l'exercice 3
- Non, pour trois raisons : un cas n'est pas exécuté et un autre est bloqué (le critère « tous les cas exécutés » n'est pas rempli) ; une anomalie bloquante est ouverte (A-30) ; une anomalie majeure est ouverte (A-32). Le total est cohérent : 19 + 3 + 1 + 1 = 24.
- Exemple : « La mise en production n'est pas recommandée : l'anomalie bloquante A-30 permet à un salarié d'enregistrer des sorties de matériel, ce qui est un défaut de sécurité, et l'anomalie majeure A-32 fausse la date des rappels. Après correction de ces deux anomalies, nous proposons de rejouer les cas concernés, le cas bloqué, le cas non exécuté et la liste de non-régression. L'anomalie mineure A-31 peut être corrigée dans la version suivante, avec une réserve au procès-verbal. »
Tu avais trouvé ?
Exercice 4 sur 4 Le rapport de test de l'E6 Réussi À revoir
À l'E6, l'expression des besoins demande d'ajouter à Prêt'Matos l'export CSV de l'historique des prêts d'une période, réservé à la logistique, et de présenter un rapport de test. Tu as écrit trois tests d'intégration : export par la logistique (200, fichier CSV avec une ligne d'en-tête et deux lignes de prêts), export par un salarié (403), période mal formée (400). Toute la suite (47 tests) passe. Tu n'as pas eu le temps de tester un nom contenant un point-virgule. Rédige le rapport en suivant le modèle du chapitre.
Voir la réponseMasquer la réponse de l'exercice 4
RAPPORT DE TEST — Prêt'Matos — Export CSV de l'historique des prêts
Date : jour de l'épreuve. Version : commit a1b2c3d. Environnement : poste local, base de test.
1. Ce qui a été testé
Tests automatisés ajoutés (Vitest + Supertest), dans src/export.test.js :
- « exporte l'historique de la période pour la logistique » : 200, en-tête CSV + 2 lignes
- « refuse l'export à un salarié » : 403
- « refuse une période mal formée » : 400
Test manuel : fichier ouvert dans le tableur, colonnes séparées, accents corrects.
2. Résultat
47 tests automatisés, tous verts (capture de npm test), dont les 3 nouveaux.
Non-régression : suite complète relancée après l'évolution, verte.
3. Non testé
Un nom ou un libellé contenant un point-virgule ou un guillemet.
4. Limites et suite
Risque : un point-virgule dans un libellé décalerait les colonnes. Correction prévue :
mettre ces champs entre guillemets en doublant les guillemets internes, avec un test dédié.
Le rapport est court, chiffré, et honnête sur ce qui manque : citer toi-même le cas non testé et sa correction montre la maîtrise de la démarche, alors que la commission le découvrirait sinon comme un oubli.
Tu avais trouvé ?