Aller au contenu

PD-99 — Scénarios de tests contractuels

1. Références

  • Spécification : PD-99-specification.md
  • Epic : PD-195 — MOBILE-iOS
  • JIRA : PD-99

2. Matrice de couverture

ID Invariant ID Critère ID Test Couverture Commentaire
INV-01 CA-01 TC-INV-01 Oui Vérifie usage SRP-6a (observabilité requise)
INV-02 CA-02 TC-INV-02 Oui Vérifie absence de mot de passe en clair sur le réseau
INV-03 TC-INV-03 Partiel Garantie « aucun humain ne connaît » : seulement testable via surfaces UI/flux
INV-04 TC-INV-04 Oui Vérifie vocabulaire « mot de passe »
INV-05 CA-03 TC-INV-05 Oui Différenciation visuelle fondatrice vs facilitée
INV-06 CA-04 TC-INV-06 Oui Aucune persistance après connexion
INV-07 TC-INV-07 Oui Biométrie optionnelle
INV-08 CA-05 TC-INV-08A Oui Désactivation globale
INV-08 CA-06 TC-INV-08B Oui Désactivation par appareil
INV-09 CA-07 TC-INV-09 Oui Messages d’erreur non inférentiels + identiques
INV-10 TC-INV-10 NON TESTABLE « acte engageant » non défini de manière observable dans la spec
INV-11 CA-08 TC-INV-11 Oui Texte exact du rappel irrécupérabilité
CA-09 TC-CA-09 Oui Texte exact du message d’erreur générique

3. Scénarios de test – Flux nominaux

TEST-ID: TC-NOM-01 — Connexion fondatrice réussie
Référence spec: Flux FN-01, INV-01, INV-02, INV-05, CA-01, CA-02, CA-03

GIVEN
  - Un utilisateur existant U1 avec email E1 et mot de passe P1 valides.
  - L’application mobile iOS est installée et l’utilisateur est déconnecté.
  - L’accès réseau est disponible.
WHEN
  - L’utilisateur ouvre un écran de login et choisit le mode « connexion fondatrice ».
  - Il saisit E1 et P1 et valide.
THEN
  - L’accès est accordé et l’utilisateur atteint un état authentifié (ex. écran post-login).
  - L’écran de login utilisé correspond visuellement au mode « connexion fondatrice ».
AND
  - Les éléments d’observabilité requis pour SRP-6a et l’absence de mot de passe en clair sont disponibles (cf. §8).
TEST-ID: TC-NOM-02 — Connexion facilitée (biométrie) réussie
Référence spec: Flux FN-02, INV-05, INV-06, INV-07

GIVEN
  - Un utilisateur existant U1.
  - La biométrie est activée (voir TC-INV-08A/08B) et l’écran de login propose un mode « connexion facilitée ».
  - Le terminal permet une authentification biométrique réussie.
WHEN
  - L’utilisateur ouvre un écran de login et choisit le mode « connexion facilitée ».
  - Il réalise une authentification biométrique réussie.
THEN
  - L’accès est accordé et l’utilisateur atteint un état authentifié.
  - L’écran de login utilisé correspond visuellement au mode « connexion facilitée ».
AND
  - Une fois authentifié, aucun indicateur persistant n’est visible indiquant le mode de login (INV-06).
TEST-ID: TC-NOM-03 — Désactivation biométrie globale
Référence spec: Flux FN-03, INV-07, INV-08, CA-05

GIVEN
  - Un utilisateur U1 authentifié.
  - La biométrie est activée globalement.
WHEN
  - L’utilisateur désactive la biométrie globalement dans les paramètres utilisateur.
THEN
  - L’option de connexion facilitée n’est plus utilisable sur l’appareil courant.
  - Toute tentative de connexion ultérieure requiert une connexion fondatrice.
TEST-ID: TC-NOM-04 — Désactivation biométrie par appareil
Référence spec: Flux FN-03, INV-07, INV-08, CA-06

GIVEN
  - Un utilisateur U1 disposant d’au moins deux appareils enregistrés (A1, A2) dans le périmètre fonctionnel de l’application.
  - La biométrie est activée.
WHEN
  - Depuis A1, l’utilisateur désactive la biométrie « pour cet appareil ».
THEN
  - Sur A1, l’option de connexion facilitée n’est plus utilisable.
AND
  - Sur A2, l’état de la biométrie reste conforme au paramétrage attendu (inchangé sauf action explicite de l’utilisateur).

4. Scénarios de test – Cas d’erreur

TEST-ID: TC-ERR-01 — Échec d’authentification (générique)
Référence spec: ERR-01, INV-09, CA-07, CA-09

GIVEN
  - Un utilisateur tente une connexion fondatrice depuis un écran de login.
WHEN
  - La tentative de connexion échoue (quelle qu’en soit la cause).
THEN
  - Le message d’erreur affiché correspond exactement au texte requis :
    « La connexion a échoué. Vérifiez vos informations et réessayez. »
AND
  - Aucun autre message ou détail n’est affiché permettant d’identifier la cause.
TEST-ID: TC-ERR-02 — Indisponibilité technique (générique)
Référence spec: ERR-02, INV-09, CA-07, CA-09

GIVEN
  - Un utilisateur tente une connexion depuis un écran de login.
  - Une indisponibilité technique survient pendant la tentative (réseau indisponible ou service indisponible), telle que définie par l’environnement de test.
WHEN
  - La tentative de connexion échoue.
THEN
  - Le message affiché est strictement identique au message d’erreur générique requis (même texte, même format).
AND
  - Aucun indice (texte, code, libellé, variation) ne permet de distinguer ce cas d’un échec d’authentification.
TEST-ID: TC-ERR-03 — Biométrie refusée/échouée
Référence spec: ERR-03, INV-07, INV-09

GIVEN
  - La biométrie est activée et l’utilisateur choisit la connexion facilitée sur un écran de login.
WHEN
  - L’authentification biométrique est refusée ou échoue.
THEN
  - L’utilisateur revient à un état lui permettant de retenter une connexion.
AND
  - Aucun message ne doit révéler une cause précise distinguant « refus biométrie » d’un autre motif d’échec (conformément à INV-09).

5. Tests d’invariants (non négociables)

Invariant Test(s) dédiés Observable Commentaire
INV-01 TC-INV-01 Traces/observables de flux SRP-6a Nécessite observabilité (§8)
INV-02 TC-INV-02 Capture réseau / journalisation de requêtes Vérifie absence de mot de passe en clair
INV-03 TC-INV-03 UI + documentation in-app Test partiel : « aucun humain » ne peut être prouvé exhaustivement par tests black-box
INV-04 TC-INV-04 Libellés UI « mot de passe » présent
INV-05 TC-INV-05 Inspection UI Différenciation visuelle
INV-06 TC-INV-06 Inspection UI post-login Aucun indicateur persistant
INV-07 TC-INV-07 Paramètres / UI login Option biométrie non imposée
INV-08 TC-INV-08A, TC-INV-08B Paramètres / comportement login Global et par appareil
INV-09 TC-INV-09 Comparaison messages (texte exact + absence variation) Tous échecs identiques
INV-10 NON TESTABLE (cf. §9)
INV-11 TC-INV-11 UI (texte exact) Rappel irrécupérabilité

Détail des tests d’invariants

TEST-ID: TC-INV-01 — Vérifier usage SRP-6a
Référence spec: INV-01, CA-01

GIVEN
  - Un environnement de test permettant d’observer le type de flux d’authentification (cf. §8).
WHEN
  - Une connexion fondatrice est tentée (succès ou échec).
THEN
  - Les observables confirment que l’authentification utilise SRP-6a.
TEST-ID: TC-INV-02 — Vérifier absence de mot de passe en clair sur le réseau
Référence spec: INV-02, CA-02

GIVEN
  - Un environnement de test permettant l’inspection du trafic réseau sortant du client.
WHEN
  - Une connexion fondatrice est tentée.
THEN
  - Aucun champ, paramètre, en-tête ou payload ne contient le mot de passe P1 en clair.
AND
  - Aucune variation (encodage, sérialisation) ne laisse apparaître P1 en clair.
TEST-ID: TC-INV-03 — Vérifier la non-demande de mot de passe hors écran de login (test partiel)
Référence spec: INV-03

GIVEN
  - Un parcours utilisateur couvrant les écrans majeurs de l’application (hors écran de login), tel que défini par le périmètre de test.
WHEN
  - L’utilisateur navigue ces écrans.
THEN
  - Aucun écran hors « écran de login » (définition spec) ne demande la saisie du mot de passe.
NOTE
  - Ce test ne prouve pas l’impossibilité absolue pour un humain d’accéder au mot de passe ; il vérifie uniquement l’absence de sollicitation UI/flux côté client.
TEST-ID: TC-INV-04 — Vérifier le vocabulaire « mot de passe »
Référence spec: INV-04

GIVEN
  - L’écran de login est affiché.
WHEN
  - Les libellés et aides contextuelles sont inspectés.
THEN
  - Le terme exact « mot de passe » est utilisé.
TEST-ID: TC-INV-05 — Vérifier différenciation visuelle fondatrice vs facilitée
Référence spec: INV-05, CA-03

GIVEN
  - Un écran de login permettant les deux modes de connexion.
WHEN
  - L’utilisateur bascule entre le mode « connexion fondatrice » et le mode « connexion facilitée ».
THEN
  - Les deux modes sont visuellement différenciables sans ambiguïté.
TEST-ID: TC-INV-06 — Vérifier absence de persistance du mode après login
Référence spec: INV-06, CA-04

GIVEN
  - Une connexion réussie via le mode « connexion facilitée ».
WHEN
  - L’utilisateur arrive sur l’état authentifié.
THEN
  - Aucun élément visible ne rappelle le mode de connexion utilisé.
TEST-ID: TC-INV-07 — Vérifier biométrie optionnelle
Référence spec: INV-07

GIVEN
  - Un utilisateur déconnecté.
WHEN
  - L’écran de login est affiché.
THEN
  - Il est possible de réaliser une connexion fondatrice sans jamais activer la biométrie.
AND
  - L’activation de la biométrie n’est pas requise pour accéder au service.
TEST-ID: TC-INV-08A — Désactivation biométrie globale
Référence spec: INV-08, CA-05

GIVEN
  - Biométrie activée.
WHEN
  - Désactivation globale effectuée par l’utilisateur.
THEN
  - Connexion facilitée indisponible sur l’appareil.
TEST-ID: TC-INV-08B — Désactivation biométrie par appareil
Référence spec: INV-08, CA-06

GIVEN
  - Deux appareils enregistrés A1 et A2.
WHEN
  - Désactivation biométrie « pour cet appareil » sur A1.
THEN
  - Connexion facilitée indisponible sur A1.
AND
  - Le comportement sur A2 reste conforme au paramétrage attendu.
TEST-ID: TC-INV-09 — Vérifier absence d’inférence par messages d’erreur
Référence spec: INV-09, CA-07, CA-09

GIVEN
  - Trois tentatives de connexion échouées provoquées par des causes différentes dans l’environnement de test (ex.: identifiant invalide, secret invalide, indisponibilité technique).
WHEN
  - Chaque tentative est réalisée depuis un écran de login.
THEN
  - Dans tous les cas, le message affiché est strictement identique et correspond exactement au texte requis.
AND
  - Aucune variation d’UI (texte, titre, icône, libellé, code, lien) ne permet de distinguer les causes.
TEST-ID: TC-INV-11 — Vérifier texte exact irrécupérabilité du mot de passe
Référence spec: INV-11, CA-08

GIVEN
  - Un écran de login (au sens de la définition spec) affiché.
WHEN
  - Le contenu du rappel est inspecté.
THEN
  - Le texte affiché correspond exactement au texte requis :
    « Votre mot de passe est connu de vous seul. Il ne peut pas être récupéré ni communiqué, y compris à la demande. »
TEST-ID: TC-CA-09 — Vérifier texte exact du message d’erreur générique
Référence spec: CA-09

GIVEN
  - Une tentative de connexion échouée sur un écran de login.
WHEN
  - Le message d’erreur est affiché.
THEN
  - Le texte affiché correspond exactement au texte requis :
    « La connexion a échoué. Vérifiez vos informations et réessayez. »

6. Tests de non-régression

Test ID Objet Observable Commentaire
TC-NR-01 Texte exact rappel irrécupérabilité Snapshot/inspection UI Toute variation est une régression contractuelle
TC-NR-02 Texte exact erreur générique Snapshot/inspection UI Toute variation est une régression contractuelle
TC-NR-03 Différenciation visuelle des modes sur écran de login Inspection UI Toute homogénéisation est une régression
TC-NR-04 Absence de persistance du mode après login Inspection UI Toute persistance visible est une régression

7. Tests négatifs et adversariaux

Test ID Entrée invalide / abus Résultat attendu Observable
TC-NEG-01 Multiples tentatives échouées Toujours le même message générique exact UI
TC-NEG-02 Email manifestement invalide (format) Même message générique exact (si refus) UI
TC-NEG-03 Mot de passe vide / très court Même message générique exact (si refus) UI
TC-NEG-04 Navigation vers écrans non-login Aucun écran non-login ne demande le mot de passe UI

NOTE

  • Ces tests décrivent l’observable attendu côté UI. Les politiques de validation locale ne sont pas spécifiées ; tout comportement divergent doit rester conforme à INV-09 (non inférentiel) et aux textes exacts.

8. Observabilité requise pour les tests

Les tests contractuels exigent la disponibilité des observables suivants (sans préjuger de leur implémentation) :

  • UI :
  • Accès à tous les écrans de login (au sens de la définition spec).
  • Possibilité d’inspecter les textes affichés (comparaison exacte, y compris ponctuation).
  • Possibilité d’observer l’absence d’indicateur persistant après authentification.

  • Réseau (client) :

  • Possibilité d’inspecter le trafic sortant lors d’une connexion fondatrice afin de vérifier l’absence de mot de passe en clair (TC-INV-02).

  • Flux d’authentification :

  • Un moyen d’observer/attester que le flux utilisé est SRP-6a (TC-INV-01). À défaut, CA-01 et INV-01 deviennent non vérifiables en test black-box.

  • Paramétrage biométrie :

  • Accès aux réglages permettant l’activation/désactivation globale et par appareil.
  • Sur les tests multi-appareils : capacité à exécuter les scénarios sur au moins deux appareils distincts enregistrés.

9. Règles non testables

Règle Raison Impact
INV-10 « Le login DOIT être traité comme un acte engageant » La spécification ne définit aucun marqueur observable et vérifiable permettant de conclure objectivement au caractère “engageant”. Majeur (risque de contestation contractuelle)
INV-03 « Aucun humain ne peut connaître le mot de passe » (au sens absolu) Un test ne peut pas prouver l’absence totale d’accès humain dans toutes les chaînes organisationnelles et techniques ; seule une vérification partielle via surfaces UI/flux est possible (TC-INV-03). Majeur (nécessite preuves complémentaires hors tests applicatifs)

10. Verdict QA

  • ⚠️ Testable partiellement (avec réserves listées)
  • INV-10 est NON TESTABLE en l’état.
  • INV-03 est testable partiellement côté UI/flux, mais nécessite des preuves complémentaires (procédures, audits organisationnels) si l’exigence est interprétée au sens strict et absolu.