Middle
Peux-tu donner un exemple de comment tu choisirais les cas de test pour une requête PUT?
sobes.tech IA
Réponse de l'IA
Je choisirais des cas de test en me basant sur ce qui suit :
-
Mise à jour réussie :
- Mettre à jour tous les champs avec des valeurs valides.
- Mettre à jour un ou plusieurs champs en laissant les autres inchangés.
- Mettre à jour des champs avec des valeurs limites (si applicable).
-
Mise à jour échouée (tests négatifs) :
- Données non valides :
- Format de données incorrect pour les champs (par exemple, chaîne au lieu d'un nombre).
- Valeurs dépassant la longueur maximale ou hors de la plage autorisée.
- Champs obligatoires manquants dans le corps de la requête.
- Ressource inexistante :
- Requête PUT avec un ID qui n'existe pas dans le système.
- Conflit de données :
- Tentative de mise à jour d'une ressource modifiée par un autre utilisateur (si un mécanisme de contrôle de version ou de verrouillage est utilisé).
- Manque de droits :
- Tentative de mise à jour d'une ressource sans les droits appropriés.
- Erreurs de validation :
- Violation de la logique métier ou des contraintes de la base de données (par exemple, duplication d'une valeur unique).
- Type de contenu incorrect :
- Envoi de la requête avec un Content-Type différent de celui attendu (par exemple,
text/plainau lieu deapplication/json).
- Envoi de la requête avec un Content-Type différent de celui attendu (par exemple,
- Corps de la requête vide :
- Envoi de la requête sans corps.
- Données non valides :
-
Conditions limites :
- Mise à jour d'une ressource avec le minimum de champs (si autorisé).
- Mise à jour d'une ressource avec le maximum de champs.
- Vérification du comportement lors de l'envoi de champs supplémentaires non attendus dans le corps.
Exemple de structure de cas de test :
| Cas | Description | Résultat attendu |
|---|---|---|
| Mise à jour réussie | Mise à jour de tous les champs avec des valeurs correctes. | 200 OK / 204 No Content (dépend de l'API) |
| ID inexistant | Tentative de mise à jour d'une ressource avec un ID qui n'existe pas. | 404 Not Found |
| Format de données invalide | Tentative de mise à jour d'un champ numérique avec une chaîne. | 400 Bad Request |
| Champ obligatoire manquant | Manque dans le corps de la requête un champ marqué comme obligatoire. | 400 Bad Request |
| Manque de droits | Tentative de mise à jour d'une ressource par un utilisateur sans droits. | 403 Forbidden |
Pour automatisation, j'utiliserais des frameworks comme RestAssured (Java), Requests (Python) ou Supertest (Node.js) et des outils pour générer des données de test.