PD-272 - Revue des Tests
Resume
| Critere | Statut |
| Couverture TC-* | 6/14 |
| Qualite assertions | ⚠️ |
| Isolation | ⚠️ |
| Edge cases | ❌ |
Verdict : ❌ NON_CONFORME
Constat principal : les tests implementes couvrent bien le coeur DB (INSERT autorise, UPDATE/DELETE bloques avec message exact), mais la couverture contractuelle declaree dans PD-272-tests.md n'est que partiellement executee (absence des tests Prolog, non-regression globale, plusieurs adversariaux).
Matrice de couverture
| TC-ID | Implemente | Fichier | Commentaire |
| TC-NOM-01 | ✅ | src/database/migrations/__tests__/PD272-legal-composite-proof-immutable.integration-spec.ts | INSERT teste et lecture de la ligne OK. |
| TC-NOM-02 | ❌ | N/A | Aucun test n'execute check_proof_immutable_trigger ni n'asserte un statut OK. |
| TC-NOM-03 | ✅ | src/database/migrations/__tests__/PD272-legal-composite-proof-immutable.integration-spec.ts | Presence du trigger verifiee en metadata, mais sans preuve explicite UPDATE+DELETE. |
| TC-ERR-01 | ✅ | src/database/migrations/__tests__/PD272-legal-composite-proof-immutable.integration-spec.ts | UPDATE rejete avec message exact contractualise. |
| TC-ERR-02 | ✅ | src/database/migrations/__tests__/PD272-legal-composite-proof-immutable.integration-spec.ts | DELETE rejete avec message exact contractualise. |
| TC-ERR-03 | ❌ | N/A | Scenario non automatise (aucun test de retour non-OK du controle formel). |
| TC-NEG-01 | ❌ | N/A | Pas de campagne multi-colonnes/cas d'UPDATE adversariaux au-dela de proof_version. |
| TC-NEG-02 | ❌ | N/A | Pas de verification de rejet DELETE selon contextes (transaction explicite/role applicatif). |
| TC-NEG-03 | ✅ | src/database/migrations/__tests__/PD272-legal-composite-proof-immutable.integration-spec.ts | UPDATE SET col = col rejete. |
| TC-NEG-04 | ❌ | N/A | Pas de test DELETE conditionnel large avec assertion 0 ligne supprimee. |
| TC-NEG-05 | ❌ | N/A | Pas de test de check formel sur schema incomplet/non conforme. |
| TC-INV-06 | ❌ | N/A | Aucune batterie dediee prouvant explicitement toutes transitions sortantes interdites. |
| TC-NR-01 | ❌ | N/A | Aucun test de non-regression de suite globale rattache a PD-272. |
| TC-NR-02 | ❌ | N/A | Aucun test dedie de creation de preuve composite en non-regression post-migration. |
Points a ameliorer
| ID | Description | Gravite |
| T-01 | Couvrir TC-NOM-02 (controle Prolog check_proof_immutable_trigger = OK) pour fermer INV-272-08 / CA-272-05. | MAJEUR |
| T-02 | Ajouter les tests adversariaux manquants (TC-NEG-01/02/04/05) decrits dans la matrice contractuelle. | MAJEUR |
| T-03 | Ajouter les tests de non-regression (TC-NR-01, TC-NR-02) pour valider CA-272-06. | MAJEUR |
| T-04 | Renforcer TC-NOM-03: verifier explicitement que le mecanisme couvre bien UPDATE ET DELETE (pas seulement presence + timing). | MINEUR |
| T-05 | Renforcer l'isolation: rollback transactionnel par test ou cleanup explicite, pour limiter la dependance a l'etat DB cumule. | MINEUR |
Tests manquants
TC-NOM-02 - execution du controle formel check_proof_immutable_trigger avec assertion stricte OK. TC-ERR-03 - chemin non conforme (retour non-OK) avec verdict explicite NON CONFORME. TC-NEG-01 - UPDATE sur plusieurs colonnes (metier + techniques + horodatage). TC-NEG-02 - DELETE dans differents contextes d'execution (transaction explicite, role applicatif). TC-NEG-04 - DELETE conditionnel large avec preuve que rien n'est supprime. TC-NEG-05 - test du controle formel sur schema incomplet. TC-INV-06 - preuve contractuelle complete des transitions interdites update/delete. TC-NR-01 et TC-NR-02 - non-regression explicite de la suite et du flux creation.
Notes de perimetre
- Axe guards
@Roles() : non applicable ici (story pure DB migration, aucun endpoint HTTP protege par roles dans les tests PD-272). - Rappel faux positifs:
INV-272-07 / TC-NT-01 est documente non testable dans le plan de tests; non compte comme ecart d'automatisation pour cette revue.