Aller au contenu

PD-273 — Scénarios de tests contractuels

1. Références

  • Spécification : PD-273-specification.md
  • Epic : Conformité formelle PV-AUDIT-001
  • Jira : PD-273
  • Repos concernés : ProbatioVault-backend, ProbatioVault-ia-governance

2. Matrice de couverture

ID Invariant ID Critère ID Test Couverture Commentaire
INV-273-01 CA-273-05 TC-NOM-273-04 Oui Vérifie le comptage exact des checks ciblés conformes (=3).
INV-273-01 CA-273-01/02/03 TC-NOM-273-01/02/03 Oui Vérifie que les 3 checks ciblés attendus sont individuellement en OK.
INV-273-02 CA-273-04 TC-NOM-273-05 Oui Vérifie absence totale de régression sur 21 checks non ciblés.
INV-273-03 CA-273-01 TC-NOM-273-01 Oui Vérifie la reconnaissance d'immutabilité via statut check dédié.
INV-273-04 CA-273-02 TC-NOM-273-02 Oui Vérifie la reconnaissance de capacité de signature via check dédié.
INV-273-05 CA-273-03 TC-NOM-273-03 Oui Vérifie la reconnaissance de traçabilité séquence destruction.
INV-273-06 (lié transitions) TC-NOM-273-06, TC-ERR-273-02 Oui Vérifie transition PARTIEL->OK puis OK->PARTIEL observable en exécution ultérieure.
INV-273-07 CA-273-06 TC-ERR-273-03 Oui Vérifie classification explicite des exigences non vérifiables (ERR-273-03, hors périmètre).
(Cas d'erreur) CA-273-06 TC-ERR-273-01 Oui Vérifie code structuré en cas de check ciblé non conforme.
(Cas d'erreur) CA-273-06 TC-ERR-273-04 Oui Vérifie code structuré en cas d'audit incomplet.

3. Scénarios de test – Flux nominaux

TEST-ID: TC-NOM-273-01
Référence spec: INV-273-03, CA-273-01, Flux F1

GIVEN
  - Baseline de référence validée: check_audit_trigger_update_delete = PARTIEL
  - Exécution demandée: audit complet PV-AUDIT-001 (run complet exigé)
  - Format de rapport déterministe disponible (run_id, statut par check, indicateur complet/incomplet)
WHEN
  - PV-AUDIT-001 est exécuté en mode complet sur le même périmètre que la baseline
THEN
  - Le rapport contient check_audit_trigger_update_delete = OK
AND
  - Le rapport contient l'identifiant de run et un statut final exploitable automatiquement
TEST-ID: TC-NOM-273-02
Référence spec: INV-273-04, CA-273-02, Flux F2

GIVEN
  - Baseline: check_audit_signature_sign = PARTIEL
  - Exécution complète PV-AUDIT-001 possible
WHEN
  - L'audit complet est exécuté
THEN
  - Le rapport contient check_audit_signature_sign = OK
AND
  - Aucun statut manquant pour ce check dans le rapport
TEST-ID: TC-NOM-273-03
Référence spec: INV-273-05, CA-273-03, Flux F3

GIVEN
  - Baseline: check_destruction_sequence = PARTIEL
  - Exécution complète PV-AUDIT-001 possible
WHEN
  - L'audit complet est exécuté
THEN
  - Le rapport contient check_destruction_sequence = OK
AND
  - Le statut est horodaté et rattaché au run auditable
TEST-ID: TC-NOM-273-04
Référence spec: INV-273-01, CA-273-05, Flux F4

GIVEN
  - Liste contractuelle des checks ciblés figée: 3 checks nominatifs
  - Rapport d'audit complet avec statuts unitaires
WHEN
  - Le comptage des checks ciblés en statut OK est effectué sur le run
THEN
  - Le résultat est exactement 3/3
AND
  - Toute valeur différente de 3 entraîne rejet du lot
TEST-ID: TC-NOM-273-05
Référence spec: INV-273-02, CA-273-04, Flux F4

GIVEN
  - Baseline de 21 checks non ciblés en statut OK
  - Run post-alignement complet PV-AUDIT-001
WHEN
  - Un diff baseline vs run courant est calculé sur les 21 checks non ciblés
THEN
  - Nombre de régressions = 0
AND
  - Le diff est conservé comme preuve objective de non-régression
TEST-ID: TC-NOM-273-06
Référence spec: INV-273-06 (transitions)

GIVEN
  - Historique de deux exécutions successives minimum pour au moins un même check
  - Exécution N avec statut PARTIEL, exécution N+1 complète
WHEN
  - Les transitions de statut sont comparées entre N et N+1
THEN
  - PARTIEL -> OK est accepté si observé
AND
  - Toute transition est explicitement traçable dans le rapport (avant/après)

4. Scénarios de test – Cas d'erreur

TEST-ID: TC-ERR-273-01
Référence spec: ERR-273-01-CHECK-NOT-OK, CA-273-06

GIVEN
  - Exécution complète PV-AUDIT-001
  - Au moins un des 3 checks ciblés reste PARTIEL ou KO
WHEN
  - Le verdict de lot est demandé
THEN
  - Verdict = rejeté
  - Code erreur structuré présent: ERR-273-01-CHECK-NOT-OK
  - Liste nominative des checks en écart présente
  - Aucun marquage "lot accepté"
TEST-ID: TC-ERR-273-02
Référence spec: ERR-273-02-REGRESSION-DETECTED, INV-273-06, CA-273-06

GIVEN
  - Baseline de checks non ciblés en OK
  - Exécution ultérieure où au moins un check non ciblé passe en PARTIEL/KO
WHEN
  - Le système produit le verdict de conformité
THEN
  - Verdict = rejeté
  - Code erreur: ERR-273-02-REGRESSION-DETECTED
  - Diff de statuts avant/après fourni comme preuve
  - Transition OK -> PARTIEL explicitement visible
TEST-ID: TC-ERR-273-03
Référence spec: ERR-273-03-UNVERIFIABLE-RULE, INV-273-07, CA-273-06

GIVEN
  - Une exigence candidate sans observable automatisable est soumise à l'évaluation
WHEN
  - Le moteur de validation contractuelle traite cette exigence
THEN
  - L'exigence est classée hors périmètre
  - Code erreur: ERR-273-03-UNVERIFIABLE-RULE
  - L'exigence exclue n'est pas comptée dans le verdict de conformité du lot
TEST-ID: TC-ERR-273-04
Référence spec: ERR-273-04-AUDIT-RUN-INCOMPLETE, CA-273-06

GIVEN
  - Exécution PV-AUDIT-001 incomplète (run interrompu/partiel)
WHEN
  - Un verdict est demandé sur ce run
THEN
  - Verdict = invalide
  - Code erreur: ERR-273-04-AUDIT-RUN-INCOMPLETE
  - Relance en exécution complète exigée
  - Aucun verdict final de conformité n'est émis

5. Tests d'invariants (non négociables)

Invariant Test(s) dédiés Observable Commentaire
INV-273-01 TC-NOM-273-01/02/03/04 Statuts individuels + comptage ciblé = 3 Couvre exactitude nominative et cardinalité.
INV-273-02 TC-NOM-273-05 Diff baseline vs run, régressions = 0 Non-régression strictement mesurable.
INV-273-03 TC-NOM-273-01 check_audit_trigger_update_delete = OK Vérification directe par rapport d'audit.
INV-273-04 TC-NOM-273-02 check_audit_signature_sign = OK Vérification directe par rapport d'audit.
INV-273-05 TC-NOM-273-03 check_destruction_sequence = OK Vérification directe par rapport d'audit.
INV-273-06 TC-NOM-273-06, TC-ERR-273-02 Transitions d'état visibles et justifiées Inclut downgrade autorisé en cas de régression.
INV-273-07 TC-ERR-273-03 Classification explicite hors périmètre + code ERR Garantit absence de règle "floue" dans le verdict.

6. Tests de non-régression

Test ID Objet Observable Commentaire
TC-NR-273-01 Stabilité des 21 checks non ciblés Nombre de régressions = 0 Test pivot de non-régression globale.
TC-NR-273-02 Stabilité des 3 checks ciblés après passage OK 2 runs successifs: OK -> OK autorisé Vérifie persistance de conformité.
TC-NR-273-03 Intégrité de structure du rapport d'audit Présence systématique des mêmes champs clés Empêche faux positifs dus à format instable.

7. Tests négatifs et adversariaux

Test ID Entrée invalide / abus Résultat attendu Observable
TC-NEG-273-01 Rapport sans un des 3 checks ciblés Verdict invalide/rejet Absence détectée + code ERR structuré
TC-NEG-273-02 Baseline incohérente (!=3 PARTIEL ciblés ou !=21 non ciblés OK) Exécution déclarée non conforme au contrat Écart de bornes numériques explicite
TC-NEG-273-03 Tentative de verdict sur run partiel Refus de verdict final ERR-273-04-AUDIT-RUN-INCOMPLETE
TC-NEG-273-04 Exigence textuelle sans observable mesurable Exclusion du périmètre de verdict ERR-273-03-UNVERIFIABLE-RULE

8. Observabilité requise pour les tests

  • État système : statut unitaire par check, statut global de lot, indicateur run complet/incomplet.
  • Réponse API (ou sortie moteur) : identifiant de run, timestamp, liste exhaustive des checks évalués.
  • Journal d'audit : trace horodatée des transitions de statut par check entre exécutions.
  • Événement signé / horodaté : preuve de génération du rapport final associée au run.
  • Export probatoire : artefact diff baseline vs run courant (au minimum pour les 21 checks non ciblés) + codes ERR-273-* en cas d'échec.

9. Règles non testables

Règle Raison Impact
Aucune règle de conformité de la section 4 à 7 n'est non testable Toutes disposent d'un observable automatisable défini Bloquant: Non
H-273-04 (changement réglementaire externe) Dépend d'un facteur exogène hors système audité Mineur (hors périmètre contractuel)

10. Verdict QA

  • Testable intégralement
  • Conditions de validité du verdict : baseline contractualisée disponible, exécution strictement complète, format de rapport déterministe et exploitable automatiquement.