Guide QA — ZotoShop
ZotoShop est une application e-commerce conçue pour la pratique de l'automatisation de test. Elle propose des comptes de test avec des comportements spéciaux, des formulaires complets, des codes promo simulés et une API REST complète.
Développée par Zotomatise — la plateforme de formation #1 francophone pour les testeurs logiciels.
Comptes de test
Tous les comptes utilisent le mot de passe : password123
standard_user@zotoshop.comAucun comportement spécial. Compte classique pour tester les parcours normaux.
locked_out_user@zotoshop.comLe login est intercepté côté frontend : affiche "Ce compte est bloqué. Contactez le support." sans appeler l'API.
slow_user@zotoshop.comUn overlay de chargement (3-5s) s'affiche à chaque changement de page. Utile pour tester les waits et timeouts.
error_user@zotoshop.com40% de chance qu'une action (ajout panier, mise à jour, etc.) échoue avec une erreur aléatoire. Utile pour tester la gestion d'erreurs et les retries.
visual_user@zotoshop.comDes bugs CSS sont activés : images manquantes, polices incorrectes, boutons décalés, footer qui chevauche le contenu. Utile pour les tests de régression visuelle.
Codes promo
Utilisables dans le checkout. Certains sont gérés par l'API Medusa, d'autres sont interceptés côté frontend pour simuler différents scénarios.
| Code | Résultat | Type |
|---|---|---|
ZOTO10 | Réduction de 10% sur le total | Valide (API Medusa) |
ZOTO20 | Réduction de 20% sur le total | Valide (API Medusa) |
EXPIRED | "Ce code promo a expiré." | Simulé (intercepté frontend) |
INVALID | "Code promo invalide." | Simulé (intercepté frontend) |
FREESHIP | "Livraison offerte appliquée !" | Simulé (intercepté frontend) |
EMPTY | "Veuillez saisir un code promo." | Simulé (intercepté frontend) |
Scénarios de test
Authentification
- -Se connecter avec un compte valide (standard_user)
- -Se connecter avec un compte bloqué (locked_out_user)
- -Se connecter avec un email invalide
- -Se connecter avec un mot de passe incorrect
- -Se connecter avec des champs vides
- -Se déconnecter et vérifier la redirection
Inscription
- -Remplir le formulaire complet (15+ champs)
- -Valider les messages d'erreur champ par champ
- -Vérifier la correspondance des mots de passe
- -Tester les champs obligatoires (CGU, email, password)
- -Tester les formats (email, téléphone, code postal)
- -Soumettre avec un email déjà utilisé
Navigation & Catalogue
- -Parcourir les produits depuis la boutique
- -Filtrer par collections / catégories
- -Accéder à la fiche produit détaillée
- -Vérifier les images, prix et descriptions
- -Tester la navigation breadcrumb
Panier & Checkout
- -Ajouter un produit au panier
- -Modifier la quantité dans le panier
- -Supprimer un article du panier
- -Appliquer un code promo (valide et invalide)
- -Remplir les informations de livraison
- -Compléter le processus de commande
Compte utilisateur
- -Consulter le profil
- -Modifier les informations personnelles
- -Gérer les adresses de livraison
- -Consulter l'historique des commandes
Comportements spéciaux
- -Se connecter en slow_user et observer l'overlay de chargement
- -Se connecter en error_user et tenter des actions (ajout panier, etc.)
- -Se connecter en visual_user et identifier les bugs visuels CSS
- -Vérifier que standard_user n'a aucun comportement anormal
Types de tests possibles
🖱️ Tests fonctionnels (UI)
Tester les parcours utilisateur via l'interface web.
Outils : Playwright, Cypress, Selenium
- -Login / Logout
- -Inscription complète
- -Ajout au panier et checkout
- -Application de codes promo
- -Navigation et filtrage produits
🔌 Tests API
Tester directement les endpoints REST du backend Medusa.
Outils : Postman, RestAssured, Playwright API, requests (Python)
- -POST /auth/customer/emailpass — Authentification
- -GET /store/products — Liste des produits
- -POST /store/carts — Création de panier
- -POST /store/carts/:id/line-items — Ajout au panier
- -POST /store/customers — Inscription
👁️ Tests de régression visuelle
Comparer des screenshots pour détecter les régressions CSS. Le compte visual_user active des bugs visuels intentionnels.
Outils : Playwright (toHaveScreenshot), Percy, BackstopJS, Applitools
- -Comparer la page d'accueil avant/après
- -Détecter les images manquantes (visual_user)
- -Vérifier l'alignement des boutons
- -Tester le responsive (mobile, tablet, desktop)
⚡ Tests de performance
Mesurer les temps de réponse et la réactivité. Le compte slow_user simule de la latence.
Outils : Lighthouse, k6, Artillery, Playwright (timing)
- -Temps de chargement de la page d'accueil
- -Temps de réponse API /store/products
- -Comportement sous charge (requêtes concurrentes)
- -Vérifier les timeouts avec slow_user
♿ Tests d'accessibilité
Vérifier la conformité WCAG et l'utilisabilité pour tous.
Outils : axe-core, Playwright (accessibility), Lighthouse
- -Audit axe sur chaque page
- -Navigation au clavier (Tab, Enter, Escape)
- -Contraste des couleurs
- -Attributs ARIA et labels des formulaires
- -Textes alternatifs des images
🔒 Tests de sécurité
Vérifier la résistance aux attaques courantes (OWASP Top 10).
Outils : OWASP ZAP, Burp Suite, tests manuels
- -Injection XSS dans les champs de recherche/formulaires
- -Injection SQL via les paramètres API
- -Test CSRF sur les formulaires
- -Vérifier les headers de sécurité (CSP, HSTS)
- -Accès non autorisé aux endpoints protégés
Endpoints API principaux
Le backend expose une API REST Medusa v2. La plupart des endpoints nécessitent le header x-publishable-api-key.
| Méthode | Endpoint | Description |
|---|---|---|
| POST | /auth/customer/emailpass | Authentification client |
| POST | /auth/customer/emailpass/register | Inscription (création auth identity) |
| GET | /store/products | Liste des produits |
| GET | /store/products/:id | Détail d'un produit |
| GET | /store/collections | Liste des collections |
| POST | /store/carts | Créer un panier |
| POST | /store/carts/:id/line-items | Ajouter un article au panier |
| POST | /store/customers | Créer un compte client |
| GET | /store/customers/me | Profil du client connecté |
Sélecteurs data-testid
Tous les éléments interactifs ont un attribut data-testid pour faciliter l'automatisation. Exemples :
Cette page est mise à jour à chaque évolution de l'application.
Besoin de formation ? zotomatise.com