PD-44 — Scénarios de tests contractuels
1. Références
- Spécification :
PD-44-specification.md - Epic :
PD-198 — Storage
2. Matrice de couverture
| ID Invariant | ID Critère | ID Test | Couverture | Commentaire |
| INV-44-01 | CA-44-01 | TC-NOM-01 | Oui | Collecte Object Lock sur 100% du périmètre |
| INV-44-02 | CA-44-02 | TC-NOM-02 | Oui | Matrice bucket -> mode explicite et complète |
| INV-44-02 | CA-44-03 | TC-NOM-03 | Oui | Divergence mode détectée dans le cycle courant |
| INV-44-03 | CA-44-03 | TC-NOM-04 | Oui | Bucket strict en mode non conforme signalé critique |
| INV-44-04 | CA-44-04 | TC-NOM-05 | Oui | Minima par classe définis et versionnés |
| INV-44-05 | CA-44-05 | TC-NOM-06 | Oui | Évaluation objet vs seuil avec traçabilité |
| INV-44-05 | CA-44-06 | TC-NOM-07 | Oui | Sans/insuffisant = critique |
| INV-44-06 | CA-44-05 | TC-ERR-07 | Oui | Réduction de rétention entre cycles = critique |
| INV-44-07 | CA-44-03 | TC-ERR-02 | Oui | Bascule affaiblissante = écart critique |
| INV-44-08 | CA-44-07 | TC-NOM-08 | Oui | Continuité des cycles sans trou hors tolérance |
| INV-44-09 | CA-44-08 | TC-NOM-09 | Oui | Preuve formelle intègre et corrélable par cycle |
| INV-44-10 | CA-44-11 | TC-NOM-12 | Oui | Contrôles sans altération de protection existante |
| INV-44-11 | CA-44-09 | TC-NOM-10 | Oui | OVH + AWS évalués avec grille unique |
| INV-44-12 | CA-44-10 | TC-NOM-11 | Oui | Détection affaiblissement cible en réplication |
| INV-44-09 | CA-44-12 | TC-NOM-13 | Oui | Dossier audit exportable sur période |
| INV-44-01 | CA-44-01 | TC-ERR-01 | Oui | Absence Object Lock bucket = critique |
| INV-44-03 | CA-44-03 | TC-ERR-03 | Oui | Bucket strict observé GOVERNANCE = bloquant |
| INV-44-04 | CA-44-04 | TC-ERR-04 | Oui | Durée config < minimum = critique |
| INV-44-05 | CA-44-06 | TC-ERR-05 | Oui | Objet sans rétention = critique |
| INV-44-05 | CA-44-06 | TC-ERR-06 | Oui | Objet rétention insuffisante = critique |
| INV-44-12 | CA-44-10 | TC-ERR-08 | Oui | Cible moins protectrice = critique multi-cloud |
| INV-44-08 | CA-44-07 | TC-ERR-09 | Oui | Contrôle non exécuté au délai = écart majeur |
| INV-44-09 | CA-44-08 | TC-ERR-10 | Oui | Preuve absente/incomplète/non corrélable = écart |
3. Scénarios de test – Flux nominaux
TC-NOM-01 — Collecte état Object Lock
- Référence : INV-44-01, CA-44-01, FN-44-01
- GIVEN : Inventaire exhaustif des buckets du périmètre (OVH + AWS) versionné ; Un cycle de contrôle planifié démarre
- WHEN : Le cycle exécute la collecte de l'état Object Lock bucket
- THEN : Le rapport du cycle contient 100% des buckets attendus ; Chaque bucket contient un statut Object Lock observé (activé/non activé)
- AND : Horodatage du cycle et identifiant de cycle présents
TC-NOM-02 — Matrice politique bucket->mode
- Référence : INV-44-02, CA-44-02, FN-44-02
- GIVEN : Politique explicite
bucket -> mode requis disponible - WHEN : Le référentiel de politique est validé avant contrôle
- THEN : Aucun bucket du périmètre n'a de mode requis manquant ; Chaque bucket a une valeur autorisée (COMPLIANCE ou GOVERNANCE)
- AND : Version de politique et date d'effet sont traçables
TC-NOM-03 — Divergence mode détectée
- Référence : INV-44-02, INV-44-07, CA-44-03, FN-44-02
- GIVEN : Un bucket avec mode attendu défini ; Le mode observé diffère du mode attendu pendant le cycle
- WHEN : Le cycle exécute la comparaison attendu/observé
- THEN : Un écart horodaté est enregistré dans le même cycle ; L'écart référence bucket, mode attendu, mode observé, sévérité
- AND : L'écart est corrélé à l'identifiant de cycle
TC-NOM-04 — Bucket probatoire strict
- Référence : INV-44-03, ERR-44-03, FN-44-02
- GIVEN : Un bucket classé "probatoire strict" ; Mode attendu = COMPLIANCE
- WHEN : Le mode observé est lu pendant le contrôle
- THEN : Si mode observé != COMPLIANCE, verdict critique bloquant
- AND : L'alerte est émise et corrélée au cycle
TC-NOM-05 — Référentiel minima par classe
- Référence : INV-44-04, CA-44-04, FN-44-03
- GIVEN : Référentiel des classes de données du périmètre
- WHEN : Le référentiel des minima de rétention est vérifié
- THEN : Chaque classe possède une durée minimale explicite ; Aucune classe n'est "non définie"
- AND : Référentiel versionné, horodaté, traçable
TC-NOM-06 — Évaluation objet vs seuil
- Référence : INV-44-05, CA-44-05, FN-44-03/FN-44-04
- GIVEN : Un ensemble d'objets contrôlés avec classe de données connue ; Un minimum requis par classe disponible
- WHEN : Le contrôle évalue chaque objet
- THEN : Pour chaque objet: identifiant, rétention observée, seuil attendu, verdict ; Le verdict est traçable objet par objet
- AND : Les résultats sont rattachés à un cycle unique
TC-NOM-07 — Classification critique
- Référence : INV-44-05, CA-44-06, FN-44-03/FN-44-04
- GIVEN : Au moins un objet sans rétention et un objet sous le minimum
- WHEN : Le cycle classe les écarts objet
- THEN : Les deux cas sont classés en sévérité "critique"
- AND : Le registre d'écarts conserve l'évidence comparative attendu/observé
TC-NOM-08 — Continuité des cycles
- Référence : INV-44-08, CA-44-07, FN-44-01..06
- GIVEN : Intervalle contractuel de contrôle et tolérance définis ; Historique de cycles sur une période donnée
- WHEN : L'historique est évalué automatiquement
- THEN : Aucun intervalle entre deux cycles consécutifs > intervalle + tolérance
- AND : Toute rupture est signalée comme écart opérationnel
- Référence : INV-44-09, CA-44-08, FN-44-06
- GIVEN : Un cycle de contrôle terminé
- WHEN : La preuve de cycle est générée
- THEN : L'artefact contient identifiant unique, horodatage, empreinte d'intégrité ; L'artefact est corrélable au rapport de cycle et au registre d'écarts
- AND : La vérification d'intégrité de l'artefact est possible et déterministe
TC-NOM-10 — Parité OVH/AWS
- Référence : INV-44-11, CA-44-09, FN-44-01..06
- GIVEN : Buckets OVH et AWS dans un même périmètre
- WHEN : Le cycle applique les règles de verdict
- THEN : La même grille de qualification (conforme/non conforme/critique) est utilisée sur les deux clouds
- AND : Le rapport multi-cloud expose les verdicts dans un format homogène
TC-NOM-11 — Cohérence réplication
- Référence : INV-44-12, CA-44-10, FN-44-05
- GIVEN : Un jeu d'objets répliqués corrélés source/cible
- WHEN : Le cycle compare mode et durée source vs cible
- THEN : Toute cible moins protectrice est détectée et signalée ; L'écart contient comparaison explicite source/cible
- AND : L'écart est classé critique multi-cloud
TC-NOM-12 — Non-altération contrôle
- Référence : INV-44-10, CA-44-11
- GIVEN : Un instantané avant contrôle des attributs de rétention des objets existants
- WHEN : Le contrôle WORM est exécuté
- THEN : Aucun événement de modification de rétention imputable au contrôle n'est observé ; Aucun attribut de protection WORM existant n'est diminué par le contrôle
- AND : Les journaux d'audit permettent l'attribution des opérations
TC-NOM-13 — Dossier audit
- Référence : INV-44-09, CA-44-12, FN-44-06
- GIVEN : Une période [T0, T1] et des cycles exécutés
- WHEN : Une demande d'export de dossier d'audit est déclenchée
- THEN : Le paquet inclut contrôles, écarts, horodatages, identifiants de corrélation ; Le paquet est cohérent avec les cycles de la période
- AND : L'intégrité du paquet exporté est vérifiable
4. Scénarios de test – Cas d'erreur
TC-ERR-01 — Bucket sans Object Lock
- Référence : ERR-44-01, INV-44-01
- GIVEN : Un bucket du périmètre avec Object Lock inactif
- WHEN : Le cycle contrôle l'activation
- THEN : Écart critique + statut non conforme + alerte immédiate + preuve de détection
- AND : Aucun autre bucket ne doit être omis du rapport
TC-ERR-02 — Mode divergent
- Référence : ERR-44-02, INV-44-02, INV-44-07
- GIVEN : Un bucket avec mode observé différent du mode requis
- WHEN : La comparaison est exécutée
- THEN : Divergence enregistrée dans le cycle courant
- AND : Si divergence affaiblissante, sévérité critique
TC-ERR-03 — Strict en GOVERNANCE
- Référence : ERR-44-03, INV-44-03
- GIVEN : Un bucket probatoire strict observé en GOVERNANCE
- WHEN : Le verdict est calculé
- THEN : Écart critique bloquant
- AND : Traçabilité complète de l'observation
TC-ERR-04 — Rétention insuffisante config
- Référence : ERR-44-04, INV-44-04
- GIVEN : Une durée de rétention configurée inférieure au minimum requis
- WHEN : Le contrôle compare attendu/observé
- THEN : Écart critique avec preuve comparative explicite
- AND : Référence à la classe de données concernée
TC-ERR-05 — Objet sans rétention
- Référence : ERR-44-05, INV-44-05
- GIVEN : Un objet contrôlé sans rétention effective
- WHEN : L'objet est évalué
- THEN : Classement critique au niveau objet
- AND : Traçabilité objet complète
TC-ERR-06 — Objet rétention insuffisante
- Référence : ERR-44-06, INV-44-05
- GIVEN : Un objet avec rétention observée < minimum requis
- WHEN : L'évaluation objet est exécutée
- THEN : Classement critique au niveau objet
- AND : Conservation des valeurs attendu/observé
TC-ERR-07 — Dérive inter-cycle
- Référence : ERR-44-07, INV-44-06
- GIVEN : Deux cycles consécutifs avec historique de rétention
- WHEN : Une baisse de durée est détectée
- THEN : Écart critique de dérive
- AND : Journalisation explicite de l'événement inter-cycle
TC-ERR-08 — Réplication affaiblie
- Référence : ERR-44-08, INV-44-12
- GIVEN : Un objet répliqué avec cible moins protectrice que source
- WHEN : La cohérence source/cible est vérifiée
- THEN : Écart critique multi-cloud
- AND : Comparaison mode/durée incluse dans la preuve
TC-ERR-09 — Trou de contrôle
- Référence : ERR-44-09, INV-44-08
- GIVEN : Un dépassement de l'intervalle de contrôle autorisé (+ tolérance)
- WHEN : L'historique d'exécution est audité
- THEN : Écart opérationnel majeur (perte de continuité de preuve)
- AND : Cycle manquant identifié explicitement
TC-ERR-10 — Preuve manquante
- Référence : ERR-44-10, INV-44-09
- GIVEN : Un cycle sans preuve, ou preuve incomplète, ou non corrélable
- WHEN : La validité probatoire est vérifiée
- THEN : Écart d'auditabilité
- AND : Le cycle est marqué non prouvable
TC-ERR-11 — Modification suspecte
- Référence : ERR-44-11, INV-44-07
- GIVEN : Un changement de paramètre WORM sans justification autorisée traçable
- WHEN : L'événement d'administration est corrélé au cycle
- THEN : Écart critique sécurité/conformité
- AND : L'événement est conservé pour audit contradictoire
5. Tests d'invariants (non négociables)
| Invariant | Test(s) dédiés | Observable | Commentaire |
| INV-44-01 | TC-NOM-01, TC-ERR-01 | Couverture buckets + détection absence Object Lock | Non négociable |
| INV-44-02 | TC-NOM-02, TC-NOM-03, TC-ERR-02 | Mode requis explicite + divergence signalée | Contrôle attendu/observé |
| INV-44-03 | TC-NOM-04, TC-ERR-03 | Bucket strict doit rester COMPLIANCE | Bloquant si violation |
| INV-44-04 | TC-NOM-05, TC-ERR-04 | Minima par classe définis et comparables | Base de conformité |
| INV-44-05 | TC-NOM-06, TC-NOM-07, TC-ERR-05, TC-ERR-06 | Conformité objet par objet | Niveau objet obligatoire |
| INV-44-06 | TC-ERR-07 | Détection baisse inter-cycle | Dérive critique |
| INV-44-07 | TC-NOM-03, TC-ERR-02, TC-ERR-11 | Détection affaiblissement de mode | Critique conformité |
| INV-44-08 | TC-NOM-08, TC-ERR-09 | Continuité des cycles | Vérification automatique |
| INV-44-09 | TC-NOM-09, TC-NOM-13, TC-ERR-10 | Preuve intègre et corrélable | Auditabilité externe |
| INV-44-10 | TC-NOM-12 | Absence d'altération imputable au contrôle | Non-régression de protection |
| INV-44-11 | TC-NOM-10 | Parité OVH/AWS de la grille de verdict | Équivalence contractuelle |
| INV-44-12 | TC-NOM-11, TC-ERR-08 | Source/cible sans affaiblissement | Multi-cloud probatoire |
6. Tests de non-régression
| Test ID | Objet | Observable | Commentaire |
| TC-NR-01 | Stabilité des verdicts à politique et données inchangées | Deux cycles consécutifs produisent mêmes verdicts et mêmes comptes d'écarts | Déterminisme du contrôle |
| TC-NR-02 | Non-altération des rétentions existantes | Aucun changement de mode/durée imputable au contrôle | Protège INV-44-10 |
| TC-NR-03 | Intégrité des preuves historiques | Les preuves des cycles antérieurs restent vérifiables après nouveaux cycles | Non-régression probatoire |
| TC-NR-04 | Couverture périmètre | Aucun bucket précédemment contrôlé ne disparaît sans événement de gouvernance traçable | Évite faux négatifs |
| TC-NR-05 | Réplication source/cible | Un objet déjà conforme ne devient pas "faussement conforme" après évolution des contrôles | Préserve comparabilité inter-versions |
7. Tests négatifs et adversariaux
| Test ID | Entrée invalide / abus | Résultat attendu | Observable |
| TC-NEG-01 | Politique bucket->mode incomplète | Exécution refusée ou cycle marqué non testable sur buckets manquants | Rapport de précondition non satisfaite |
| TC-NEG-02 | Politique classe->min absente pour une classe utilisée | Verdict de conformité interdit pour cette classe + écart de gouvernance | Trace explicite "minimum non défini" |
| TC-NEG-03 | Horodatage de preuve incohérent (hors fenêtre cycle) | Preuve rejetée comme non corrélable | Écart d'auditabilité |
| TC-NEG-04 | Altération de l'empreinte d'intégrité d'une preuve | Vérification d'intégrité échoue | Preuve marquée invalide |
| TC-NEG-05 | Mapping source/cible de réplication ambigu | Contrôle INV-44-12 marqué non exhaustif + alerte | Rapport de limite de couverture |
| TC-NEG-06 | Événement admin sans identifiant d'auteur/justification | Classé suspect critique | Registre d'écarts sécurité |
| TC-NEG-07 | Bucket hors inventaire mais présent dans logs fournisseur | Signalement d'écart de périmètre | Déviation de couverture détectée |
8. Observabilité requise pour les tests
- État système : inventaire des buckets, classification
strict/non strict, politiques versionnées (bucket->mode, classe->minimum) - Réponse API : état Object Lock bucket, mode de rétention, paramètres de rétention objet, métadonnées source/cible de réplication
- Journal d'audit : événements d'exécution des cycles, événements d'administration WORM, identifiants d'acteur, justification, horodatage
- Événement signé / horodaté : identifiant unique de cycle, horodatage de début/fin, empreinte d'intégrité de preuve
- Export probatoire : paquet de période avec cycles, écarts, liens de corrélation, vérification d'intégrité
9. Règles non testables
| Règle | Raison | Impact |
| "Alerte immédiate" (ERR-44-01/02) | Seuil temporel "immédiat" non quantifié dans la spec (dépend H-44-04) | Majeur |
| "Modification administrative suspecte" | La notion de "justification autorisée" n'est pas normée dans la spec (taxonomie d'autorisation absente) | Majeur |
| "Preuve intègre" (au sens cryptographique fort) | L'algorithme/chaîne de confiance d'intégrité n'est pas explicitée | Majeur |
| Exhaustivité du contrôle réplication | Dépend de la corrélation source/cible fiable (H-44-06), non démontrable sans référentiel de mapping | Majeur |
10. Verdict QA
⚠️ Testable partiellement (avec réserves listées)
Les invariants (12/12) et critères d'acceptation (12/12) sont couverts par des scénarios déterministes. Les réserves portent sur des paramètres contractuels externes à expliciter pour lever toute ambiguïté d'audit : - Délai d'alerte - Modèle de justification admin - Mécanisme d'intégrité - Mapping de réplication