Sobes.tech
Middle

Μπορείς να δώσεις ένα παράδειγμα για το πώς θα επέλεγες τις περιπτώσεις δοκιμής για ένα αίτημα PUT;

sobes.tech AI

Απάντηση από AI

Θα επέλεγα περιπτώσεις δοκιμής βασιζόμενος στα εξής:

  • Επιτυχής ενημέρωση:

    • Ενημέρωση όλων των πεδίων με έγκυρες τιμές.
    • Ενημέρωση ενός ή περισσότερων πεδίων αφήνοντας τα υπόλοιπα αμετάβλητα.
    • Ενημέρωση πεδίων με τιμές ορίου (αν ισχύει).
  • Αποτυχία ενημέρωσης (αρνητικές δοκιμές):

    • Μη έγκυρα δεδομένα:
      • Μη έγκυρη μορφή δεδομένων για τα πεδία (π.χ., συμβολοσειρά αντί για αριθμό).
      • Τιμές που υπερβαίνουν το μέγιστο μήκος ή βρίσκονται εκτός εύρους.
      • Απαιτούμενα πεδία που λείπουν από το σώμα του αιτήματος.
    • Μη υπάρχουσα πόρος:
      • Αίτημα PUT με ID που δεν υπάρχει στο σύστημα.
    • Σύγκρουση δεδομένων:
      • Προσπάθεια ενημέρωσης πόρου που έχει τροποποιηθεί από άλλον χρήστη (αν χρησιμοποιείται μηχανισμός ελέγχου εκδόσεων ή κλειδώματος).
    • Έλλειψη δικαιωμάτων:
      • Προσπάθεια ενημέρωσης πόρου χωρίς τα κατάλληλα δικαιώματα.
    • Σφάλματα επικύρωσης:
      • Παραβίαση επιχειρηματικής λογικής ή περιορισμών βάσης δεδομένων (π.χ., διπλότυπη μοναδική τιμή).
    • Λάθος Content-Type:
      • Αποστολή αιτήματος με Content-Type διαφορετικό από το αναμενόμενο (π.χ., text/plain αντί application/json).
    • Άδειο σώμα αιτήματος:
      • Αποστολή αιτήματος χωρίς σώμα.
  • Οριακές συνθήκες:

    • Ενημέρωση πόρου με το ελάχιστο σύνολο πεδίων (αν επιτρέπεται).
    • Ενημέρωση πόρου με το μέγιστο σύνολο πεδίων.
    • Έλεγχος συμπεριφοράς κατά την αποστολή επιπλέον, μη αναμενόμενων πεδίων στο σώμα.

Παράδειγμα δομής περιπτώσεων δοκιμής:

Περίπτωση Περιγραφή Αναμενόμενο αποτέλεσμα
Επιτυχής ενημέρωση Ενημέρωση όλων των πεδίων με σωστές τιμές. 200 OK / 204 No Content (ανάλογα με το API)
Μη υπάρχον ID Προσπάθεια ενημέρωσης πόρου με ID που δεν υπάρχει. 404 Not Found
Μη έγκυρη μορφή δεδομένων Προσπάθεια ενημέρωσης πεδίου αριθμού με συμβολοσειρά. 400 Bad Request
Απαιτούμενο πεδίο λείπει Απουσία στο σώμα του αιτήματος ενός πεδίου που έχει οριστεί ως υποχρεωτικό. 400 Bad Request
Έλλειψη δικαιωμάτων Προσπάθεια ενημέρωσης πόρου από χρήστη χωρίς τα απαραίτητα δικαιώματα. 403 Forbidden

Για αυτοματοποίηση, θα χρησιμοποιούσα frameworks όπως το RestAssured (Java), Requests (Python) ή Supertest (Node.js) και εργαλεία για τη δημιουργία δοκιμαστικών δεδομένων.