Sobes.tech
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/plain au lieu de application/json).
    • Corps de la requête vide :
      • Envoi de la requête sans corps.
  • 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.