Aller au contenu

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

TC-NOM-09 — Preuve formelle cycle

  • 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