PD-276 — Revue des Tests¶
Résumé¶
| Critère | Statut |
|---|---|
| Couverture TC-* | 14/16 effectifs (2 cas marqués mais non réellement assertés) |
| Qualité assertions | 6/10 |
| Isolation | 8/10 |
| Edge cases | 5/10 |
Verdict : RÉSERVES
Matrice de couverture¶
| TC-ID | Implémenté | Commentaire |
|---|---|---|
| TC-NOM-01 | Oui | Minima exacts testés avec assertion explicite valid: true. |
| TC-NOM-02 | Oui | Bornes hautes exactes testées (memory/iterations/parallelism/type/hashLength). |
| TC-NOM-03 | Oui | getConfig() vérifie la référence exacte + valeurs clés. |
| TC-NOM-04 | Oui | Longueur du tag vérifiée à 32 bytes. |
| TC-NOM-05 | Oui | verifyTag retourne true sur tag valide. |
| TC-ERR-01 | Oui | Rejet memory < min via BadRequestException. |
| TC-ERR-02 | Oui | Rejet iterations < min via BadRequestException. |
| TC-ERR-03 | Oui | Rejet champ manquant (hashLength). |
| TC-ERR-04 | Oui | Rejet type != 2. |
| TC-ERR-05 | Oui | Rejet memory > max. |
| TC-ERR-07 | Oui | Tag altéré refusé (false). |
| TC-INV-01 | Oui | Vérifie explicitement absence de key/hash/derivedKey. |
| TC-INV-02 | Oui | Spy HKDF context strict correctement asserté. |
| TC-NEG-01 | Partiel | Test présent mais corps en commentaire (/* ... */) => pas d’assertion réelle. |
| TC-NEG-03 | Partiel | Test présent mais non implémenté (tag mauvaise longueur non vérifié). |
| TC-NEG-04 | Oui | Un seul champ hors borne déclenche rejet. |
Points à améliorer¶
| ID | Description | Gravité |
|---|---|---|
| QA-01 | Plusieurs tests metadata-binding sont des placeholders sans assertions (faux positifs potentiels). | Haute |
| QA-02 | verifyTagOrThrow cas nominal “should not throw” non implémenté. | Haute |
| QA-03 | Argon2Service : assertions d’erreur trop génériques (toThrow(BadRequestException) sans valider le détail par champ). | Moyenne |
| QA-04 | Test “include all errors in message” fragile (>= 4) et ne valide pas précisément le contrat d’erreur. | Moyenne |
| QA-05 | MetadataBindingService utilise le vrai HkdfService en unit test (isolation partielle, dépendance implicite). | Basse |
Tests manquants¶
- Implémenter réellement les tests actuellement en commentaire :
different device_id,different K_master_user,different algorithmsubstituted device_id,wrong tag length,null tagverifyTagOrThrownominal (no throw)- Ajouter des assertions de contenu d’erreur Argon2 par champ (pas seulement le type d’exception).
- Ajouter un test explicite de rejet pour
parallelism > maxavec vérification du message ciblé (pas seulement rejet global). - Ajouter un test de robustesse sur mutation in-place du tag (copie vs référence) pour éviter des effets de bord.
- (Hors scope confirmé) conserver la dette documentée sur les tests d’intégration C5/KeyEnvelopeService et non-régression migrations.