Aller au contenu

PD-239 — Revue du plan d’implémentation (v2)

Écarts identifiés

Type : Couverture manquante Référence : (Spec §4 INV-239-10 / CA-239-09 / Tests §2-3) Description : La spec v2 introduit INV-239-10 et CA-239-09 (log event=keycloak_password_change), mais le document de tests fourni est indiqué « identique v1 » et ne garantit pas explicitement un scénario couvrant cette exigence. La couverture n’est pas démontrée par les tests listés. Impact : Exigence contractuelle non prouvable par tests ; auditabilité insuffisante. Gravité : MAJEUR

Type : Incohérence Spec↔Tests Référence : (Spec §4 INV-239-05 / Tests §3 T-239-NOM-01) Description : L’invariant impose une invalidation effective ≤ 30 secondes. Les tests fournis ne spécifient pas de vérification temporelle explicite de ce délai (tests « identiques v1 »). Le critère de délai n’est pas couvert. Impact : Non‑preuve de l’exigence temporelle ; risque de non‑conformité en audit. Gravité : MAJEUR

Type : Code Contract Référence : (Code Contracts v2 / module: password-change-dto) Description : L’invariant « @Exclude() sur oldPassword et newPassword » n’est pas un sous‑ensemble explicite des invariants de la spec PD‑239. La spec ne contractualise pas la sérialisation DTO ni l’exclusion de champs. Le code contract ajoute une règle non spécifiée. Impact : Déviation contractuelle ; risque de conflit lors d’audits stricts de conformité (règles ajoutées hors spec). Gravité : MAJEUR

Type : Test irréalisable Référence : (Tests §3 T-239-ERR-08 / Plan §11.2 / Code Contracts v2 password-change-tests-e2e) Description : Le plan indique un mécanisme d’injection d’erreurs Keycloak, mais ne définit pas un point d’observabilité ou un prérequis test explicite dans le plan (seulement « recommandation »/« mock »). Le test T-239-ERR-08 dépend d’un mécanisme d’injection non spécifié comme obligatoire dans le plan. Impact : Risque de test non déterministe ou non reproductible ; couverture ERR-239-* non démontrable. Gravité : MAJEUR

Vérification des corrections v1

  • ECT-S5-01/02 (format erreur error vs code) : Correction effective dans le plan (§8.3) et code contracts (format contractuel {error, message}) — conforme.
  • ECT-S5-05 (oldPassword via SRP verifier) : Correction effective (plan §3.3 note + mapping INV‑239‑03) — conforme.
  • ECT-S5-03 (rate limiting) : Correction effective (plan §11.2 en recommandation) — conforme.
  • ECT-S5-06 (injection erreurs Keycloak) : Partiellement couvert (mention dans code contracts), mais manque d’observabilité explicite dans le plan — non conforme en testabilité.

Verdict

Présence d’écarts MAJEURS. Le plan corrigé n’assure pas la testabilité complète des exigences v2 ni la cohérence Spec↔Tests.