# 🧪 Plan de tests utilisateurs — SafeBite **Document de validation UX • 11 mai 2026** --- ## 1. Objectifs Valider que SafeBite est : - **Compréhensible** : utilisateur identifie un verdict DANGER en < 2 secondes - **Fiable** : 10 scans d'affilée sans crash ni freeze - **Accessible** : utilisable par une personne daltonienne + TalkBack - **Résilient** : rotation écran, appel entrant, batterie faible --- ## 2. Profils testeurs requis | # | Profil | Critère | |---|--------|---------| | 1 | Adulte sans allergie | Usage smartphone quotidien | | 2 | Adulte avec allergie(s) | Connaît ses allergènes | | 3 | Parent (enfant allergique) | Gère un profil famille | | 4 | Senior (50+) | Usage smartphone basique | | 5 | Daltonien (deutéranopie ou protanopie) | Distinction rouge/vert altérée | --- ## 3. Scénarios de test ### S1 — Premier lancement (Onboarding) ``` Prérequis : App fresh install 1. Ouvrir l'application 2. Suivre l'onboarding (prénom, allergies, objectif) 3. Arriver sur le dashboard FIRST_TIME ✅ Succès si : onboarding complété en < 60 secondes ❌ Échec si : confusion sur les étapes, blocage ``` ### S2 — Scan d'un produit dangereux (test principal) ``` Prérequis : Profil configuré avec allergie "Arachides" Produit : Snickers (contient arachides) — code 5000159461153 1. Depuis le dashboard, tap sur FAB Scanner 2. Scanner le code-barres Snickers 3. Observer le verdict ✅ Succès si : verdict ROUGE identifié en < 2s ❌ Échec si : confusion sur le verdict (ne sait pas si c'est safe ou pas) ``` ### S3 — Scan d'un produit safe ``` Produit : Bouteille d'eau — code 3274080005007 1. Scanner le code-barres 2. Observer le verdict VERT ✅ Succès si : verdict SAFE clairement identifié ❌ Échec si : confusion avec warning ``` ### S4 — Saisie manuelle code-barres ``` Prérequis : Produit non reconnu par le scanner 1. Ouvrir le scanner 2. Tap "Saisir un code-barres" 3. Entrer 3017620422003 (Nutella) 4. Valider ✅ Succès si : résultat affiché (verdict + fiche produit) ❌ Échec si : erreur de format, blocage ``` ### S5 — Scan OCR (produit non trouvé) ``` Prérequis : Code-barres inconnu (ex: 1234567890123) 1. Scanner le code inconnu 2. Tap "Lire les ingrédients" 3. Prendre une photo d'étiquette 4. Vérifier le texte OCR extrait ✅ Succès si : OCR capture ouverte, photo possible ❌ Échec si : app crash, freeze ``` ### S6 — Gestion de liste ``` Prérequis : Au moins 1 produit scanné 1. Aller dans l'onglet Listes 2. Créer une liste "Test courses" 3. Ajouter un produit depuis le verdict 4. Swiper pour cocher/décocher 5. Supprimer un produit (swipe left) ✅ Succès si : toutes les actions fonctionnent ❌ Échec si : swipe bloqué, produit non ajouté ``` ### S7 — 10 scans rapides d'affilée ``` Prérequis : App ouverte 1. Scanner 10 produits différents aussi vite que possible 2. Observer le comportement ✅ Succès si : 0 crash, 0 freeze > 5s ❌ Échec si : crash, ANR, perte de données ``` ### S8 — Rotation écran pendant scan ``` 1. Ouvrir le scanner 2. Pivoter le téléphone (paysage → portrait) 3. Scanner un produit 4. Pivoter pendant l'affichage du verdict ✅ Succès si : pas de perte d'état, scan fonctionne après rotation ❌ Échec si : caméra freeze, UI cassée ``` ### S9 — Appel entrant pendant le scan ``` 1. Ouvrir le scanner 2. Recevoir un appel (ou simuler avec un second téléphone) 3. Revenir dans l'app après l'appel ✅ Succès si : le scanner se réinitialise et fonctionne ❌ Échec si : caméra bloquée, crash ``` ### S10 — Mode sombre ``` 1. Activer le mode sombre (paramètres) 2. Visiter les 4 onglets (Dashboard, Listes, Suivi, Famille) 3. Scanner un produit et vérifier le verdict ✅ Succès si : tout est lisible, contraste OK ❌ Échec si : texte illisible, icônes invisibles ``` --- ## 4. Test Accessibilité ### A1 — TalkBack ``` 1. Activer TalkBack dans Paramètres Android 2. Naviguer dans tous les onglets 3. Scanner un produit et écouter l'annonce du verdict ✅ Succès si : tous les boutons annoncés, verdict annoncé correctement ❌ Échec si : éléments sans contentDescription, verdict silencieux ``` ### A2 — Taille de texte maximale ``` 1. Paramètres → Affichage → Taille police → Maximum 2. Naviguer dans tous les écrans ✅ Succès si : pas de texte coupé, pas de chevauchement ❌ Échec si : boutons hors écran, texte tronqué ``` --- ## 5. Grille d'observation | Testeur | S1 | S2 | S3 | S4 | S5 | S6 | S7 | S8 | S9 | S10 | A1 | A2 | Notes | |---------|----|----|----|----|----|----|----|----|----|-----|----|----|-------| | #1 | ⬜ | ⬜ | ⬜ | ⬜ | ⬜ | ⬜ | ⬜ | ⬜ | ⬜ | ⬜ | ⬜ | ⬜ | | | #2 | ⬜ | ⬜ | ⬜ | ⬜ | ⬜ | ⬜ | ⬜ | ⬜ | ⬜ | ⬜ | ⬜ | ⬜ | | | #3 | ⬜ | ⬜ | ⬜ | ⬜ | ⬜ | ⬜ | ⬜ | ⬜ | ⬜ | ⬜ | ⬜ | ⬜ | | | #4 | ⬜ | ⬜ | ⬜ | ⬜ | ⬜ | ⬜ | ⬜ | ⬜ | ⬜ | ⬜ | ⬜ | ⬜ | | | #5 | ⬜ | ⬜ | ⬜ | ⬜ | ⬜ | ⬜ | ⬜ | ⬜ | ⬜ | ⬜ | ⬜ | ⬜ | | Légende : ✅ OK | ⚠️ Mineur | ❌ Bloquant --- ## 6. Produits de test recommandés | Produit | Code-barres | Allergène connu | |---------|-------------|-----------------| | Snickers | 5000159461153 | Arachides, Lait | | Nutella | 3017620422003 | Noisettes, Lait | | Bouteille d'eau Cristaline | 3274080005007 | Aucun | | Barre Kinder | 8000500310427 | Lait, Gluten | | Sauce Soja Kikkoman | 8715035111108 | Soja, Gluten | --- ## 7. Rapport final Une fois les tests complétés, remplir : | Métrique | Cible | Résultat | |----------|-------|----------| | Temps identification verdict danger | < 2s | ___ | | Crashs sur 10 scans | 0 | ___ | | Score accessibilité TalkBack | 100% | ___ | | Bugs bloquants découverts | 0 | ___ | | Satisfaction globale (1-5) | ≥ 4 | ___ |