Browser QA — Tests Visuels Automatisés et Interactions
Quand l'utiliser
- Après avoir déployé une fonctionnalité sur un environnement de staging/prévisualisation
- Lorsque vous devez vérifier le comportement de l'interface utilisateur sur plusieurs pages
- Avant de livrer — confirmer que les mises en page, formulaires et interactions fonctionnent réellement
- Lors de la révision de PRs qui touchent au code frontend
- Audits d'accessibilité et tests responsives
Comment ça fonctionne
Utilise le MCP d'automatisation du navigateur (claude-in-chrome, Playwright ou Puppeteer) pour interagir avec des pages en ligne comme un véritable utilisateur.
Sécurité avant tout — périmètre d'impact (exécution en lecture seule par défaut)
Les tests QA via navigateur manipulent de véritables sessions d'authentification et parcours utilisateurs. Traitez le périmètre d'impact de manière explicite. Par défaut, restez en lecture seule : n'exécutez jamais un parcours modifiant (achat, paiement, suppression, mise à jour en masse) sur une URL de production — nécessitez une option explicite et une URL de staging/prévisualisation. Utilisez des identifiants de test préensemencés, jamais de véritables identifiants de production, et occultez les identifiants/tokens/PII avant de sauvegarder une capture d'écran.
Phase 1 : Test de fumée
1. Naviguer vers l'URL cible
2. Vérifier les erreurs console (filtrer le bruit : analytics, tiers)
3. Vérifier l'absence d'erreurs 4xx/5xx dans les requêtes réseau
4. Capture d'écran de la partie visible (above-the-fold) sur desktop + mobile viewport
5. Vérifier les Core Web Vitals : LCP < 2,5 s, CLS < 0,1, INP < 200 ms
(INP a remplacé FID en mars 2024 ; seuils selon web.dev)
Phase 2 : Test d'interaction
1. Cliquer sur chaque lien de navigation — vérifier l'absence de liens morts
2. Soumettre des formulaires avec des données valides — vérifier l'état de succès
3. Soumettre des formulaires avec des données invalides — vérifier l'état d'erreur
4. Tester le flux d'authentification : connexion → page protégée → déconnexion (identifiants de test uniquement, jamais de prod)
5. Tester les parcours critiques (achat, onboarding, recherche)
— en lecture seule par défaut ; n'exécutez les parcours modifiants que sur staging
avec option explicite (voir « Sécurité avant tout » ci-dessus)
Phase 3 : Régression visuelle
1. Capture d'écran des pages clés à 3 points de rupture (375px, 768px, 1440px)
2. Comparer avec les captures de référence validées
— pas de référence ⇒ rapport INCONCLUSIF, jamais un SUCCÈS silencieux
3. Signaler les déplacements de mise en page > 5 px, les éléments manquants, les débordements
4. Vérifier le mode sombre si applicable
Phase 4 : Accessibilité
1. Exécuter axe-core ou un équivalent sur chaque page
2. Signaler les violations WCAG 2.2 AA (contraste, étiquettes, ordre de focus)
3. Vérifier que la navigation au clavier fonctionne de bout en bout
4. Vérifier les repères pour lecteurs d'écran
Remarque : axe-core couvre automatiquement environ 30 à 40 % des critères WCAG. Un résultat propre est nécessaire, mais pas suffisant — la navigation au clavier, l'ordre de focus et un passage avec un lecteur d'écran nécessitent toujours une vérification manuelle. Ne déclarez pas « accessible » à partir d'un seul passage automatisé.
Format de sortie
## Rapport QA — [URL] — [horodatage]
### Test de fumée
- Erreurs console : 0 critique, 2 avertissements (bruit analytics)
- Réseau : tout 200/304, aucun échec
- Core Web Vitals : LCP 1,2 s ✓, CLS 0,02 ✓, INP 89 ms ✓
### Interactions
- [✓] Liens de navigation : 12/12 fonctionnels
- [✗] Formulaire de contact : état d'erreur manquant pour email invalide
- [✓] Flux d'authentification : connexion/déconnexion fonctionnel
### Visuel
- [✗] Section hero déborde sur le viewport 375px
- [✓] Mode sombre : toutes les pages cohérentes
### Accessibilité
- 2 violations AA : texte alternatif manquant sur l'image hero, contraste faible sur les liens de pied de page
### Verdict : LIVRER AVEC CORRECTIONS (2 problèmes, 0 bloquants)
# verdict ∈ LIVRER / LIVRER AVEC CORRECTIONS / NE PAS LIVRER ; utiliser INCONCLUSIF si aucune référence visuelle
Intégration
Fonctionne avec tout MCP de navigateur :
- Outils
mChild__claude-in-chrome__*(recommandé — utilise votre Chrome réel) - Playwright via
mcp__browserbase__* - Scripts Puppeteer directs
Associez avec /canary-watch pour la surveillance post-déploiement.