id: ECT-TEST-01 gravite: MAJEUR description: "INV-239-09 (RGPD hors périmètre) est attendu comme NON TESTABLE mais n’est pas mentionné dans la matrice de couverture fournie. La couverture globale ne justifie pas explicitement ce point hors périmètre." recommendation: "Documenter explicitement le statut NON TESTABLE de INV-239-09 dans la matrice et la review QA."
id: ECT-TEST-02 gravite: MAJEUR description: "INV-239-10 (log event=keycloak_password_change) est déclaré 'via Keycloak service' sans preuve testée. Aucun test listé ne vérifie l’observable de log structuré exigé par la spec." recommendation: "Ajouter un test e2e/integ qui valide la présence du log structuré event=keycloak_password_change avec userId."
id: ECT-TEST-03 gravite: MAJEUR description: "INV-239-05 impose une invalidation des sessions ≤ 30s ; les tests listés ne mentionnent pas de vérification temporelle du délai. La couverture de l’exigence temporelle n’est pas prouvée." recommendation: "Ajouter une assertion de délai (≤ 30s) ou un test dédié au respect de la contrainte temporelle."
id: ECT-TEST-04 gravite: MINEUR description: "La couverture déclarée (service 77.6% statements, 72% branches) est inférieure au seuil 80% mentionné dans le plan initial. Le dépassement de seuil n’est pas démontré." recommendation: "Clarifier si l’exigence de 80% est toujours applicable ou ajuster/compléter les tests pour atteindre le seuil." commentaires: "Les cas nominaux et d’erreur principaux sont couverts et les assertions semblent ciblées. L’isolation via mocks est implicite mais non détaillée. Les écarts majeurs portent sur l’absence de preuve pour l’observable de log Keycloak et sur la contrainte temporelle d’invalidation des sessions."