Apparence
A8 — Matrice de traçabilité & couverture des exigences
🆕 Évolution proposée — issue de l'inventaire marché (C31 à C34)
Statut : 🟢 prêt à spécifier. S'appuie sur le modèle A3bis.
En une phrase
On sait dire quel CRIM une étape teste. On ne sait pas dire l'inverse : ce CRIM est-il couvert par au moins un test, et avec quel résultat ? C'est pourtant la question de l'audit de recette.
Constat
Le CRIM joue déjà, dans notre modèle, le rôle d'exigence : c'est l'unité de référence métier à laquelle une étape se rattache (écran F9 — CRIMs).
Mais le rattachement ne se lit que dans un sens :
- impossible de répondre à « ce CRIM est-il couvert, et par quoi ? » ;
- impossible de produire le tableau exigence → flux → exécution → anomalie, qui est le livrable d'audit classique d'une recette ;
- le trou de couverture ne se détecte pas : un CRIM qu'aucun test ne couvre passe inaperçu jusqu'à la mise en production.
Techniquement, etapes.crimCode porte le rattachement. refreshFluxCrims maintient une dénormalisation des CRIMs au niveau du flux, mais à des fins d'affichage, pas de couverture : rien n'indexe la relation dans le sens CRIM → étapes.
Proposition
1. Écran « Couverture des exigences »
Une ligne par CRIM du périmètre :
| Colonne | Contenu |
|---|---|
| CRIM | code + libellé + module |
| Flux couvrants | nombre de flux dont au moins une étape porte ce CRIM |
| Étapes couvrantes | nombre d'étapes |
| Statut de couverture | 🔴 non couvert (0 flux) · 🟠 couvert non testé · 🟢 couvert testé OK · ⛔ couvert testé KO |
| Anomalies | nombre d'anomalies ouvertes rattachées, dont bloquantes |
| Dernière exécution | date + testeur |
Le filtre le plus utile est « non couvert » : c'est le trou de recette. Aujourd'hui, il ne se détecte qu'en relisant l'ensemble du référentiel à la main.
2. Matrice de traçabilité exportable
Le même contenu à plat, une ligne par maille CRIM × flux × étape × résultat × anomalie, exportable en Excel — feuille supplémentaire de F11 ou export dédié (A7).
C'est la forme attendue en audit : un tableau unique, ré-triable, qui démontre que chaque exigence a été testée et avec quel résultat.
3. % de couverture par module
Agrégat direct du point 1, affichable sur le tableau de bord A1 : « Module Achats : 84 % des CRIMs couverts, 12 % testés OK, 2 CRIMs non couverts. »
Impact
Aucune donnée nouvelle à saisir, aucune structure nouvelle. Toute l'information existe déjà : on la lit autrement. C'est ce qui rend cette évolution peu coûteuse au regard de sa valeur en audit.
La matrice est une lecture qui traverse crims → etapes → etapeResults → anomalies (modèle A3bis). Deux conditions :
- Index obligatoire
etapes.by_crim— sans lui, chaque ligne de la matrice imposerait un balayage de table. Avec 400 flux × 8 étapes, une matrice non indexée s'approche dangereusement de la limite de 32 000 documents lus par transaction. - Pagination de l'écran, et génération de l'export dans une action (pas côté client) si le périmètre dépasse quelques milliers de lignes — même raisonnement que A7 § A7.6.
Droits
Lecture : tous les rôles authentifiés. La matrice ne contient rien que l'utilisateur ne puisse déjà voir écran par écran — elle en change seulement la forme.
Aligné marché
- PractiTest est explicitement positionné pour la traçabilité exigence → test stricte.
- qTest offre l'analyse d'impact (quelle exigence modifiée touche quels cas) — voir A6, présélection « CRIM impacté ».
- Xray suit la couverture des exigences par graphiques interactifs, avec rapports par statut, couverture et version, pour décider d'une mise en production.
À trancher — Q30 / Q30bis
- Q30 — tranché à l'atelier du 23/07 : la matrice de traçabilité est bien un livrable contractuel de la recette chez ce client, avec une demande concrète : repérer les CRIM non couverts (statut/couleur).
- Q30bis — reste ouvert (séparé de Q30 après une confusion en revue) : faut-il gérer des exigences hors CRIM (une exigence du cahier des charges client qui n'a pas de code CRIM éditeur) ? Si oui, il faut une collection
requirementsdistincte, et le CRIM devient un cas particulier d'exigence — ce qui contraint le modèle CRIM ↔ flux (notamment : un CRIM peut-il être rattaché au flux et non seulement à l'étape ?).