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

Standardstandard_user@zotoshop.com

Aucun comportement spécial. Compte classique pour tester les parcours normaux.

Bloquélocked_out_user@zotoshop.com

Le login est intercepté côté frontend : affiche "Ce compte est bloqué. Contactez le support." sans appeler l'API.

Lentslow_user@zotoshop.com

Un overlay de chargement (3-5s) s'affiche à chaque changement de page. Utile pour tester les waits et timeouts.

Erreurserror_user@zotoshop.com

40% 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.

Bugs visuelsvisual_user@zotoshop.com

Des 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.

CodeRésultatType
ZOTO10Réduction de 10% sur le totalValide (API Medusa)
ZOTO20Réduction de 20% sur le totalValide (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éthodeEndpointDescription
POST/auth/customer/emailpassAuthentification client
POST/auth/customer/emailpass/registerInscription (création auth identity)
GET/store/productsListe des produits
GET/store/products/:idDétail d'un produit
GET/store/collectionsListe des collections
POST/store/cartsCréer un panier
POST/store/carts/:id/line-itemsAjouter un article au panier
POST/store/customersCréer un compte client
GET/store/customers/meProfil du client connecté

Sélecteurs data-testid

Tous les éléments interactifs ont un attribut data-testid pour faciliter l'automatisation. Exemples :

nav-store-link
nav-account-link
nav-cart-link
nav-menu-button
product-price
add-product-button
add-discount-button
discount-input
discount-apply-button
discount-error-message
register-first-name
register-last-name
register-email
register-password
register-confirm-password
register-birthdate
register-phone
register-gender
register-address
register-postal-code
register-city
register-country
register-newsletter
register-terms
register-submit
slow-user-overlay
random-error-message
guide-page

Cette page est mise à jour à chaque évolution de l'application.

Besoin de formation ? zotomatise.com