TP 2 – Cas de test
"Un cas de test, c’est une recette : si on suit les étapes, on doit obtenir le même résultat."
Objectifs pédagogiques
- Déduire des cas de test à partir d’un mini cahier des charges
- Rédiger des cas de test clairs et reproductibles
- Couvrir succès et erreurs
- Structurer un tableau de tests exploitable en équipe
Contexte – Mini cahier des charges (backend)
Vous testez un backend API de gestion d’utilisateurs.
Routes à tester
POST /users: créer un utilisateurPOST /login: authentifier un utilisateurGET /profile: récupérer le profil (authentifié)PUT /profile: modifier le profil (authentifié)
Règles (extraits)
Création utilisateur POST /users
- champs requis :
email,password,fullName emaildoit être au format emailpassword≥ 8 caractèresemaildoit être unique
Login POST /login
- champs requis :
email,password - si OK → retour
200avec{ token } - si KO → retour
401
Profil GET /profile
- nécessite un token (header
Authorization: Bearer <token>) - si pas de token →
401 - si token OK →
200avec{ id, email, fullName }
Travail demandé
- Choisissez 2 routes parmi celles ci-dessus.
- Pour chaque route, rédigez au minimum 4 cas de test :
- 1 cas de succès
-
3 cas d’erreur (validation, auth, doublon, etc.)
-
Pour chaque cas de test, précisez :
- préconditions
- requête (méthode + endpoint + body + headers si nécessaire)
- résultat attendu (status + contenu)
Modèle de cas de test (à compléter)
| ID | Route | Préconditions | Requête | Résultat attendu |
|---|---|---|---|---|
Indices
Indice — Préconditions
Les préconditions peuvent inclure : - un utilisateur déjà créé en base - un token valide obtenu après login - un utilisateur avec un email déjà utilisé
Indice — Erreurs intéressantes à tester
- champ manquant
- format email invalide
- password trop court
- email déjà utilisé
- accès sans token
- token invalide
Indice — Résultat attendu
Pensez à préciser : - code HTTP : 200 / 201 / 400 / 401 / 409… - forme du JSON (au moins les champs principaux) - message d’erreur si disponible
Auto-évaluation
- J’ai choisi 2 routes
- J’ai produit au moins 8 cas de test (4 par route)
- J’ai testé succès + erreurs
- Mes préconditions sont réalistes
- Mes résultats attendus sont précis
Solution proposée (exemple)
Voir une proposition de solution (2 routes)
Route 1 : POST /login
| ID | Route | Préconditions | Requête | Résultat attendu |
|---|---|---|---|---|
| TC-L01 | POST /login | utilisateur existe | body {email,password} valides |
200 + { token } |
| TC-L02 | POST /login | utilisateur existe | password incorrect | 401 |
| TC-L03 | POST /login | — | email manquant | 400 + erreur validation |
| TC-L04 | POST /login | — | format email invalide | 400 + erreur validation |
Route 2 : GET /profile
| ID | Route | Préconditions | Requête | Résultat attendu |
|---|---|---|---|---|
| TC-P01 | GET /profile | token valide | header Authorization | 200 + { id, email, fullName } |
| TC-P02 | GET /profile | — | aucun token | 401 |
| TC-P03 | GET /profile | token invalide | Bearer xxxx |
401 |
| TC-P04 | GET /profile | token expiré | Bearer token expiré | 401 (ou 403 selon design) |
✅ Remarque : les codes exacts peuvent varier selon implémentation, l’important est la cohérence.