PD-106 - Scenarios de tests contractuels
1. References
- Specification : PD-106-specification.md
- Epic : PD-195 - Application mobile iOS zero-knowledge
- JIRA : PD-106
2. Matrice de couverture
| ID Invariant | ID Critere | ID Test | Couverture | Commentaire |
| INV-106-01 | CA-106-01 | TC-NOM-01 | Oui | Point d'entree Settings unique et coherent. |
| INV-106-02 | CA-106-02 | TC-NOM-01 | Oui | Profil minimal en lecture seule. |
| INV-106-03 | CA-106-03 | TC-NOM-01 | Oui | Identification visuelle non ambigue du compte connecte. |
| INV-106-04 | CA-106-04 | TC-NOM-01 | Oui | Lecture etat MFA au chargement et affichage coherent. |
| INV-106-04 | CA-106-04 | TC-ERR-03 | Oui | En echec de lecture, etat inconnu et pas de stale state. |
| INV-106-05 | CA-106-05 | TC-NOM-03 | Oui | Re-authentification exigee pour chaque operation critique. |
| INV-106-05 | CA-106-05 | TC-NOM-11 | Oui | Re-authentification validee depuis plus de 5 minutes : rejet. |
| INV-106-05 | CA-106-05 | TC-NOM-12 | Oui | Re-authentification invalidee apres sortie de flux/navigation intermediaire. |
| INV-106-06 | - | TC-NOM-03 | Oui | Re-authentification non reutilisable implicitement. |
| INV-106-07 | CA-106-06 | TC-NOM-02 | Oui | Activation MFA validee uniquement apres confirmation serveur. |
| INV-106-07 | CA-106-07 | TC-ERR-05 | Oui | Code TOTP invalide ne produit jamais un succes. |
| INV-106-08 | CA-106-17 | TC-INV-01 | Oui | Absence de persistance locale durable et absence de logs secrets. |
| INV-106-09 | CA-106-08 | TC-NOM-02 | Oui | Codes affiches en clair uniquement apres generation/re-generation. |
| INV-106-09 | CA-106-08 | TC-NOM-10 | Oui | Hors affichage unique, aucun code en clair visible. |
| INV-106-10 | CA-106-09 | TC-NOM-04 | Oui | Invalidation des anciens codes apres regeneration. |
| INV-106-11 | CA-106-10 | TC-NOM-05 | Oui | Confirmation explicite + re-authentification requises. |
| INV-106-11 | CA-106-10 | TC-ERR-06 | Oui | Refus explicite sans re-authentification valide. |
| INV-106-12 | CA-106-11 | TC-ERR-09 | Oui | Mismatch confirmation bloque localement. |
| INV-106-12 | CA-106-12 | TC-ERR-10 | Oui | Motif serveur exploitable restitue. |
| INV-106-13 | CA-106-13 | TC-NOM-07 | Oui | Session serveur invalidee au logout. |
| INV-106-13 | CA-106-14 | TC-NOM-07 | Oui | Nettoyage des donnees sensibles locales de session. |
| INV-106-13 | - | TC-ERR-11 | Oui | Fallback degradation gracieuse : deconnexion locale forcee si invalidation serveur echoue. |
| INV-106-14 | CA-106-15 | TC-NOM-08 | Oui | Irreversibilite + confirmation renforcee + re-authentification. |
| INV-106-14 | CA-106-15 | TC-ERR-12 | Oui | Confirmation renforcee invalide bloque la suppression. |
| INV-106-14 | CA-106-15 | TC-ERR-13 | Oui | Re-authentification echouee bloque la suppression. |
| INV-106-15 | CA-106-16 | TC-NOM-08 | Oui | Compte supprime puis inutilisable, utilisateur deconnecte. |
| INV-106-15 | CA-106-16 | TC-ERR-14 | Oui | Echec suppression ne doit jamais afficher un faux succes. |
| INV-106-16 | CA-106-07 | TC-INV-02 | Oui | Aucune erreur critique silencieuse. |
| INV-106-16 | CA-106-12 | TC-ERR-10 | Oui | Erreur mot de passe restituee clairement. |
| INV-106-16 | - | TC-ERR-01 | Oui | Session expiree : message explicite + protection etat. |
| INV-106-16 | - | TC-ERR-02 | Oui | Reseau indisponible : message explicite, pas de succes implicite. |
| INV-106-16 | - | TC-ERR-04 | Oui | Echec enrollement MFA explicite. |
| INV-106-16 | - | TC-ERR-08 | Oui | Echec regeneration explicite. |
| INV-106-16 | - | TC-ERR-11 | Oui | Echec logout : deconnexion locale forcee avec message explicite. |
| INV-106-16 | - | TC-ERR-15 | Oui | Rate-limit explicite et exploitable. |
| INV-106-17 | CA-106-18 | TC-NOM-09 | Oui | Localisation conforme a la langue active. |
| INV-106-18 | CA-106-19 | TC-INV-03 | NON TESTABLE | Hors perimetre mobile : preuve backend/compliance requise. |
3. Scenarios de test - Flux nominaux
TEST-ID: TC-NOM-01 - Acces Settings et consultation profil
Reference spec: F-106-01, INV-106-01, INV-106-02, INV-106-03, INV-106-04, CA-106-01, CA-106-02, CA-106-03, CA-106-04
GIVEN
- Un utilisateur U1 est authentifie avec une session valide S1.
- Le backend retourne un profil deterministe (nom, email, avatar ou initiales).
- Le backend retourne un etat MFA deterministe (ex: `desactive`).
WHEN
- U1 ouvre le parcours Settings.
THEN
- Les entrees Profil, MFA, mot de passe, deconnexion et suppression de compte sont accessibles depuis le meme point d'entree Settings.
- Le profil affiche nom, email et avatar ou initiales en lecture seule.
- Le compte connecte est identifiable sans ambiguite (identifiant lisible present).
AND
- Un appel de lecture d'etat MFA est effectue au chargement et l'etat affiche correspond strictement a la reponse serveur.
TEST-ID: TC-NOM-02 - Activation MFA TOTP reussie
Reference spec: F-106-02, INV-106-05, INV-106-07, INV-106-08, INV-106-09, CA-106-05, CA-106-06, CA-106-08
GIVEN
- U1 est authentifie et MFA est `desactive` cote serveur.
- La re-authentification immediate de U1 reussit.
- Le serveur accepte l'initialisation d'enrolement TOTP puis la verification du code saisi.
WHEN
- U1 lance l'activation MFA et soumet un code TOTP valide.
THEN
- MFA passe a `active` uniquement apres confirmation serveur de verification.
- Les codes de recuperation sont affiches en clair une seule fois avec avertissement de criticite.
AND
- L'etat MFA est recharge depuis le serveur apres succes.
TEST-ID: TC-NOM-03 - Re-authentification non reutilisable entre operations critiques
Reference spec: INV-106-05, INV-106-06, CA-106-05
GIVEN
- U1 est authentifie.
- Une operation critique A a ete autorisee juste avant execution via re-authentification validee.
WHEN
- U1 tente une operation critique B distincte sans nouvelle re-authentification.
THEN
- L'operation B est refusee et une nouvelle re-authentification est exigee.
AND
- Aucune mutation serveur liee a l'operation B n'est executee tant que la nouvelle re-authentification n'est pas validee.
TEST-ID: TC-NOM-04 - Regeneration codes de recuperation reussie
Reference spec: F-106-03, INV-106-05, INV-106-09, INV-106-10, CA-106-08, CA-106-09
GIVEN
- U1 est authentifie et dispose d'un jeu de codes valide RC1.
- U1 valide la confirmation explicite.
- U1 reussit la re-authentification immediate.
WHEN
- U1 regenere ses codes de recuperation.
THEN
- Un nouveau jeu RC2 est emis et affiche une seule fois en clair avec avertissement.
AND
- Tout code RC1 devient invalide et au moins un code RC2 est valide.
TEST-ID: TC-NOM-05 - Desactivation MFA reussie
Reference spec: F-106-04, INV-106-11, CA-106-10
GIVEN
- U1 est authentifie et MFA est `active`.
- U1 valide la confirmation explicite de desactivation.
- U1 reussit la re-authentification immediate.
WHEN
- U1 confirme la desactivation MFA.
THEN
- Le serveur confirme la desactivation.
- L'etat MFA final affiche est `desactive` apres relecture serveur.
AND
- Aucun etat intermediaire de succes n'est conserve si la confirmation serveur n'est pas recue.
TEST-ID: TC-NOM-06 - Changement de mot de passe reussi
Reference spec: F-106-05, INV-106-05, INV-106-12
GIVEN
- U1 est authentifie.
- `ancien_mdp` est valide, `nouveau_mdp` respecte la politique serveur, `confirmation_mdp` = `nouveau_mdp`.
- La re-authentification immediate est validee.
WHEN
- U1 soumet la demande de changement de mot de passe.
THEN
- Le serveur confirme le changement.
- La session courante est invalidee cote serveur.
AND
- Les donnees sensibles locales de session sont supprimees.
- U1 est redirige vers un etat non authentifie.
TEST-ID: TC-NOM-07 - Deconnexion reussie
Reference spec: F-106-06, INV-106-13, CA-106-13, CA-106-14
GIVEN
- U1 est authentifie avec session valide S1.
- Des donnees sensibles de session existent localement (token/session en cours).
WHEN
- U1 confirme la deconnexion.
THEN
- La session S1 est invalidee cote serveur.
- Les donnees sensibles locales de session sont supprimees.
AND
- U1 est redirige vers un etat non authentifie.
TEST-ID: TC-NOM-08 - Suppression de compte reussie
Reference spec: F-106-07, INV-106-14, INV-106-15, CA-106-15, CA-106-16
GIVEN
- Un compte de test destructible U2 existe et est authentifie.
- U2 valide la confirmation renforcee attendue par l'interface.
- U2 reussit la re-authentification immediate.
WHEN
- U2 confirme la suppression de compte.
THEN
- La validation initiale de confirmation renforcee est demandee et validee.
- La confirmation finale distincte est demandee et validee.
AND
- La suppression est confirmee par le serveur.
- U2 est deconnecte immediatement.
- Toute tentative ulterieure d'utilisation du compte U2 echoue.
TEST-ID: TC-NOM-09 - Localisation des textes PD-106
Reference spec: INV-106-17, CA-106-18
GIVEN
- Deux langues supportees L1 et L2 sont configurees.
- U1 est authentifie.
WHEN
- U1 bascule la langue active de L1 vers L2 puis ouvre le parcours Settings.
THEN
- Les libelles, messages et confirmations du parcours PD-106 sont affiches dans la langue active.
AND
- Aucun placeholder de cle i18n brut n'apparait.
TEST-ID: TC-NOM-10 - Codes de recuperation masques hors affichage unique
Reference spec: F-106-03, INV-106-09, CA-106-08
GIVEN
- U1 est authentifie.
- Aucun evenement de generation/regeneration de codes n'a eu lieu dans la session en cours.
WHEN
- U1 ouvre la section codes de recuperation.
THEN
- Aucun code en clair n'est affiche.
AND
- Un message explicite indique la necessite de regeneration pour afficher un nouveau jeu de codes.
TEST-ID: TC-NOM-11 - Re-authentification expiree (>5 minutes) avant operation critique
Reference spec: INV-106-05, CA-106-05
GIVEN
- U1 est authentifie.
- Une re-authentification valide est effectuee.
- Plus de 5 minutes se sont ecoulees depuis cette validation, sans nouvelle re-authentification.
WHEN
- U1 tente d'executer une operation critique.
THEN
- L'operation est rejetee.
AND
- Une nouvelle re-authentification est exigee avant execution.
- Aucune mutation serveur liee a l'operation critique n'est appliquee.
TEST-ID: TC-NOM-12 - Re-authentification invalidee apres sortie de flux/navigation intermediaire
Reference spec: INV-106-05, CA-106-05
GIVEN
- U1 est authentifie.
- Une re-authentification valide est effectuee dans le flux d'une operation critique.
WHEN
- U1 quitte ce flux vers un autre parcours, puis revient et tente d'executer l'operation critique.
THEN
- L'operation est rejetee.
AND
- Une nouvelle re-authentification est exigee avant execution.
- Aucune mutation serveur liee a l'operation critique n'est appliquee.
4. Scenarios de test - Cas d'erreur
TEST-ID: TC-ERR-01 - Session expiree pendant action critique
Reference spec: ERR-106-SESSION-EXPIRED, INV-106-16
GIVEN
- U1 apparait authentifie cote client.
- Cote serveur, la session est expiree/invalide au moment de l'action.
WHEN
- U1 execute une operation critique.
THEN
- L'action est rejetee.
- L'application force un etat non authentifie.
AND
- Un message explicite est affiche et aucun effet critique n'est applique.
TEST-ID: TC-ERR-02 - Erreur reseau/time-out
Reference spec: ERR-106-NETWORK, INV-106-16
GIVEN
- U1 est authentifie.
- La requete necessaire a l'operation cible est en time-out ou reseau indisponible.
WHEN
- U1 valide l'operation.
THEN
- Un message d'erreur explicite est affiche.
AND
- Aucun changement d'etat local n'est presente comme succes.
TEST-ID: TC-ERR-03 - Lecture etat MFA indisponible
Reference spec: ERR-106-MFA-STATE-UNAVAILABLE, INV-106-04, CA-106-04
GIVEN
- U1 est authentifie.
- La lecture d'etat MFA retourne une erreur deterministe.
WHEN
- U1 ouvre Settings.
THEN
- L'etat MFA affiche est `inconnu`.
AND
- Les actions exigeant un etat MFA fiable sont bloquees avec message explicite.
TEST-ID: TC-ERR-04 - Echec initialisation enrolement MFA
Reference spec: ERR-106-MFA-ENROLL-FAILED, INV-106-16, CA-106-07
GIVEN
- U1 est authentifie et re-authentifie.
- L'initialisation d'enrolement TOTP echoue cote serveur.
WHEN
- U1 lance l'activation MFA.
THEN
- MFA reste `desactive`.
- Un message explicite est affiche.
AND
- Aucune persistance locale durable de secret n'est observee.
TEST-ID: TC-ERR-05 - Code TOTP invalide a la verification
Reference spec: ERR-106-MFA-CODE-INVALID, INV-106-07, CA-106-07
GIVEN
- U1 est dans le flux d'activation MFA avec re-authentification valide.
- Le code TOTP soumis est invalide.
WHEN
- U1 soumet le code invalide.
THEN
- L'activation MFA n'est pas validee.
- Un message explicite est affiche.
AND
- Aucun indicateur de succes n'est presente.
TEST-ID: TC-ERR-06 - Refus desactivation MFA sans re-authentification valide
Reference spec: ERR-106-MFA-DISABLE-DENIED, INV-106-11, CA-106-10
GIVEN
- U1 est authentifie et MFA est `active`.
- La re-authentification est absente ou invalide.
WHEN
- U1 tente de desactiver MFA.
THEN
- La desactivation est refusee.
AND
- MFA reste `active` et un message explicite est affiche.
TEST-ID: TC-ERR-07 - Consultation codes hors affichage unique
Reference spec: ERR-106-RECOVERY-NOT-AVAILABLE, INV-106-09, CA-106-08
GIVEN
- U1 est authentifie.
- Aucun affichage unique valide n'est disponible.
WHEN
- U1 tente de consulter les codes de recuperation.
THEN
- Aucun code en clair n'est affiche.
AND
- Un message explicite indique la regeneration necessaire.
TEST-ID: TC-ERR-08 - Echec regeneration codes de recuperation
Reference spec: ERR-106-RECOVERY-REGEN-FAILED, INV-106-16
GIVEN
- U1 est authentifie, confirme l'action et reussit la re-authentification.
- Le serveur echoue la regeneration.
WHEN
- U1 confirme la regeneration.
THEN
- Un message explicite est affiche.
AND
- Tant que la regeneration n'est pas confirmee serveur, l'ancien jeu de codes reste valide.
TEST-ID: TC-ERR-09 - Confirmation mot de passe incoherente
Reference spec: ERR-106-PWD-CONFIRM-MISMATCH, INV-106-12, CA-106-11
GIVEN
- U1 renseigne `nouveau_mdp` et `confirmation_mdp` differents.
WHEN
- U1 soumet le formulaire de changement mot de passe.
THEN
- Le rejet est immediat.
AND
- Aucun appel critique de changement mot de passe n'est emis.
TEST-ID: TC-ERR-10 - Refus serveur politique mot de passe
Reference spec: ERR-106-PWD-POLICY, INV-106-12, INV-106-16, CA-106-12
GIVEN
- U1 est authentifie.
- Le serveur refuse la demande (ancien mot de passe invalide ou politique non respectee).
WHEN
- U1 soumet la demande.
THEN
- Le mot de passe reste inchange.
- Le motif de refus est affiche de facon exploitable.
AND
- Aucun etat de succes n'est affiche.
TEST-ID: TC-ERR-11 - Echec invalidation session au logout
Reference spec: ERR-106-LOGOUT-FAILED, INV-106-16
GIVEN
- U1 est authentifie.
- Le serveur retourne un echec lors de l'invalidation de session.
WHEN
- U1 confirme la deconnexion.
THEN
- Un message explicite est affiche.
- Les donnees sensibles locales de session sont supprimees.
AND
- L'application force un etat non authentifie.
TEST-ID: TC-ERR-12 - Confirmation renforcee invalide en suppression compte
Reference spec: ERR-106-DELETE-CONFIRMATION, INV-106-14, CA-106-15
GIVEN
- U1 est sur le flux suppression de compte.
- La confirmation renforcee saisie est invalide/incomplete.
WHEN
- U1 soumet la suppression.
THEN
- La suppression n'est pas executee.
AND
- Un message explicite est affiche.
TEST-ID: TC-ERR-13 - Echec re-authentification en suppression compte
Reference spec: ERR-106-DELETE-REAUTH, INV-106-14, CA-106-15
GIVEN
- U1 est sur le flux suppression de compte.
- La confirmation renforcee est validee.
- La re-authentification echoue.
WHEN
- U1 tente de finaliser la suppression.
THEN
- La suppression n'est pas executee.
AND
- Un message explicite est affiche.
TEST-ID: TC-ERR-14 - Echec serveur suppression compte
Reference spec: ERR-106-DELETE-FAILED, INV-106-15, CA-106-16
GIVEN
- U1 est sur le flux suppression avec confirmation renforcee et re-authentification valides.
- Le serveur echoue la suppression.
WHEN
- U1 confirme la suppression.
THEN
- Un message explicite est affiche.
AND
- Le compte n'est pas marque comme supprime et aucun etat de succes n'est presente.
TEST-ID: TC-ERR-15 - Rate limit sur re-authentification/TOTP
Reference spec: ERR-106-RATE-LIMIT, INV-106-16
GIVEN
- U1 effectue des tentatives repetitives jusqu'au seuil de rate-limit defini par le serveur.
WHEN
- U1 depasse le seuil.
THEN
- Le serveur retourne l'erreur de rate-limit.
- L'application affiche un message explicite, incluant la contrainte temporelle si disponible.
AND
- Aucun changement d'etat critique n'est applique.
5. Tests d'invariants (non negociables)
| Invariant | Test(s) dedies | Observable | Commentaire |
| INV-106-01 | TC-NOM-01 | Presence d'un point d'entree Settings unique | Couverture complete |
| INV-106-02 | TC-NOM-01 | Profil minimal visible et non editable | Couverture complete |
| INV-106-03 | TC-NOM-01 | Identifiant compte lisible sans ambiguite | Couverture complete |
| INV-106-04 | TC-NOM-01, TC-ERR-03 | Lecture serveur et fallback inconnu | Couverture complete |
| INV-106-05 | TC-NOM-03, TC-ERR-06 | Blocage sans re-authentification valide | Couverture complete |
| INV-106-06 | TC-NOM-03 | Seconde operation critique refusee sans nouvelle re-authentification | Couverture complete |
| INV-106-07 | TC-NOM-02, TC-ERR-05 | Activation uniquement apres confirmation serveur | Couverture complete |
| INV-106-08 | TC-INV-01 | Absence de secret en stockage durable et logs | Couverture complete |
| INV-106-09 | TC-NOM-02, TC-NOM-10, TC-ERR-07 | Affichage unique + avertissement + masquage hors contexte | Couverture complete |
| INV-106-10 | TC-NOM-04 | Invalidation anciens codes apres regeneration | Couverture complete |
| INV-106-11 | TC-NOM-05, TC-ERR-06 | Confirmation + re-authentification pour desactivation MFA | Couverture complete |
| INV-106-12 | TC-NOM-06, TC-ERR-09, TC-ERR-10 | Regles de changement mot de passe + feedback exploitable | Couverture complete |
| INV-106-13 | TC-NOM-07 | Invalidation session serveur + nettoyage local | Couverture complete |
| INV-106-14 | TC-NOM-08, TC-ERR-12, TC-ERR-13 | Irreversibilite + confirmation renforcee + re-authentification | Couverture complete |
| INV-106-15 | TC-NOM-08, TC-ERR-14 | Inutilisabilite du compte apres suppression confirmee | Couverture complete |
| INV-106-16 | TC-INV-02 + TC-ERR-01..TC-ERR-15 | Erreurs critiques explicites, jamais silencieuses | Couverture complete |
| INV-106-17 | TC-NOM-09 | Localisation selon langue active | Couverture complete |
| INV-106-18 | TC-INV-03 | Preuve RGPD complete backend/compliance | NON TESTABLE dans le perimetre mobile |
Detail des tests d'invariants dedies
TEST-ID: TC-INV-01 - Non persistance des secrets MFA et codes de recuperation
Reference spec: INV-106-08, CA-106-17
GIVEN
- Un environnement de test permet d'injecter des valeurs sentinelles uniques dans le secret TOTP et les codes de recuperation.
- U1 execute un flux d'activation MFA reussi puis un flux de regeneration codes reussi.
WHEN
- Le flux est termine, puis l'application est relancee.
THEN
- Les valeurs sentinelles ne sont retrouvees dans aucun stockage local durable de l'application.
- Les valeurs sentinelles ne sont retrouvees dans aucun log applicatif accessible en environnement de test.
AND
- Toute preuve de secret en clair dans ces surfaces constitue un echec bloquant.
TEST-ID: TC-INV-02 - Absence d'echec critique silencieux
Reference spec: INV-106-16, CA-106-07, CA-106-12
GIVEN
- Chaque operation critique est testee avec une erreur serveur deterministe (ou erreur reseau) sur un jeu de cas couvre.
WHEN
- U1 declenche chaque operation critique en situation d'echec.
THEN
- Un message explicite et exploitable est affiche dans tous les cas.
AND
- Aucun etat de succes ne s'affiche pour une operation ayant echoue.
TEST-ID: TC-INV-03 - Preuve RGPD art.17 complete (hors perimetre mobile)
Reference spec: INV-106-18, CA-106-19
GIVEN
- Perimetre limite aux tests applicatifs mobile PD-106.
WHEN
- L'auditeur tente de prouver l'effacement complet des donnees serveur et la politique de retention/purge.
THEN
- La preuve exhaustive ne peut pas etre etablie depuis le mobile seul.
AND
- La conformite doit etre validee via artefacts backend/compliance externes.
6. Tests de non-regression
| Test ID | Objet | Observable | Commentaire |
| TC-NR-01 | Eviter etat MFA stale apres mutation | Relecture serveur obligatoire apres activation/desactivation/regeneration | Reutilise TC-NOM-02, TC-NOM-04, TC-NOM-05 |
| TC-NR-02 | Eviter activation MFA silencieusement echouee | Message explicite + MFA non active en cas d'echec | Reutilise TC-ERR-04, TC-ERR-05 |
| TC-NR-03 | Eviter bypass re-authentification operations critiques | Operation refusee sans reauth valide immediate | Reutilise TC-NOM-03, TC-ERR-06, TC-ERR-13 |
| TC-NR-04 | Eviter fuite locale de secrets MFA/recovery | Aucun secret en stockage durable ni logs | Reutilise TC-INV-01 |
| TC-NR-05 | Eviter exposition persistante des recovery codes | Aucun code en clair hors affichage unique | Reutilise TC-NOM-10, TC-ERR-07 |
| TC-NR-06 | Eviter faux succes suppression compte | En echec suppression, compte toujours actif et message explicite | Reutilise TC-ERR-14 |
| TC-NR-07 | Eviter deconnexion incomplete | Session serveur invalidee + nettoyage local | Reutilise TC-NOM-07 |
| TC-NR-08 | Eviter regression i18n des messages critiques | Textes PD-106 changes selon langue active | Reutilise TC-NOM-09 |
7. Tests negatifs et adversariaux
| Test ID | Entree invalide / abus | Resultat attendu | Observable |
| TC-NEG-01 | Reutiliser une preuve de re-authentification deja consommee pour une autre operation critique | Refus operation + nouvelle re-authentification demandee | Meme comportement que TC-NOM-03 |
| TC-NEG-02 | Rafale de codes TOTP invalides | Blocage rate-limit sans activation MFA | ERR-106-RATE-LIMIT + MFA reste desactive |
| TC-NEG-03 | Tentative d'exfiltration de secret via logs applicatifs | Aucune valeur secretes en clair dans logs | Meme observable que TC-INV-01 |
| TC-NEG-04 | Coupure reseau pendant une mutation critique | Pas de succes implicite, message explicite | ERR-106-NETWORK |
| TC-NEG-05 | Tentative de suppression compte sans confirmation renforcee valide | Suppression refusee | ERR-106-DELETE-CONFIRMATION |
| TC-NEG-06 | Tentative de desactivation MFA sans re-authentification valide | Desactivation refusee, MFA reste active | ERR-106-MFA-DISABLE-DENIED |
| TC-NEG-07 | Consultation recovery codes apres fermeture/reouverture app | Codes non affiches en clair sans nouvelle regeneration | INV-106-09 |
| TC-NEG-08 | Session expiree pendant operation critique | Basculer etat non authentifie, operation non executee | ERR-106-SESSION-EXPIRED |
8. Observabilite requise pour les tests
- Controle deterministe des reponses backend (succes, erreurs metier, time-out, rate-limit) pour chaque endpoint PD-106.
- Traces des appels reseau sortants (code HTTP, endpoint, payload redige) pour verifier absence de faux succes et ordre des mutations.
- Inspection de l'etat UI (texte, etat MFA, messages d'erreur, navigation auth/non-auth).
- Inspection du stockage local durable de l'application (surfaces de persistance applicative) apres chaque flux critique.
- Export des logs applicatifs cote client pour verifier l'absence de secret TOTP/codes de recuperation en clair.
- Verification serveur de l'invalidation de session (reutilisation token/session) et de l'inutilisabilite du compte apres suppression.
- Possibilite de fournir des valeurs sentinelles de test pour detecter toute fuite de secret.
- Horloge et jeux de donnees de test stables pour reproductibilite des cas TOTP/rate-limit.
Prerequis bloquants: - Un environnement de test permet d'orchestrer les reponses backend attendues. - Un compte de test destructible dedie a la suppression de compte est disponible.
9. Regles non testables
| Regle | Raison | Impact |
| INV-106-18 / CA-106-19 (preuve RGPD art.17 complete) | Hors perimetre mobile PD-106 ; necessite artefacts backend/compliance externes | Bloquant pour verdict de conformite globale RGPD si artefacts absents |
| ERR-106-MFA-STATE-UNAVAILABLE ("actions necessitant un etat fiable") | Liste exhaustive des actions bloquees non explicitee | Mineur : test possible sur un sous-ensemble, couverture exhaustive non garantie |
10. Verdict QA
- Testable partiellement (avec reserves listees)
- Couverture obtenue:
- Invariants: 18/18 references, dont 1 NON TESTABLE par nature de perimetre (INV-106-18)
- Criteres d'acceptation: 19/19 references, dont 1 NON TESTABLE dans ce perimetre (CA-106-19)
- Cas d'erreur: 15/15 references
- Condition de levee des reserves:
- Fournir les artefacts backend/compliance pour RGPD art.17