Middle
Μπορείς να δώσεις ένα παράδειγμα για το πώς θα επέλεγες τις περιπτώσεις δοκιμής για ένα αίτημα PUT;
sobes.tech AI
Απάντηση από AI
Θα επέλεγα περιπτώσεις δοκιμής βασιζόμενος στα εξής:
-
Επιτυχής ενημέρωση:
- Ενημέρωση όλων των πεδίων με έγκυρες τιμές.
- Ενημέρωση ενός ή περισσότερων πεδίων αφήνοντας τα υπόλοιπα αμετάβλητα.
- Ενημέρωση πεδίων με τιμές ορίου (αν ισχύει).
-
Αποτυχία ενημέρωσης (αρνητικές δοκιμές):
- Μη έγκυρα δεδομένα:
- Μη έγκυρη μορφή δεδομένων για τα πεδία (π.χ., συμβολοσειρά αντί για αριθμό).
- Τιμές που υπερβαίνουν το μέγιστο μήκος ή βρίσκονται εκτός εύρους.
- Απαιτούμενα πεδία που λείπουν από το σώμα του αιτήματος.
- Μη υπάρχουσα πόρος:
- Αίτημα PUT με ID που δεν υπάρχει στο σύστημα.
- Σύγκρουση δεδομένων:
- Προσπάθεια ενημέρωσης πόρου που έχει τροποποιηθεί από άλλον χρήστη (αν χρησιμοποιείται μηχανισμός ελέγχου εκδόσεων ή κλειδώματος).
- Έλλειψη δικαιωμάτων:
- Προσπάθεια ενημέρωσης πόρου χωρίς τα κατάλληλα δικαιώματα.
- Σφάλματα επικύρωσης:
- Παραβίαση επιχειρηματικής λογικής ή περιορισμών βάσης δεδομένων (π.χ., διπλότυπη μοναδική τιμή).
- Λάθος Content-Type:
- Αποστολή αιτήματος με Content-Type διαφορετικό από το αναμενόμενο (π.χ.,
text/plainαντίapplication/json).
- Αποστολή αιτήματος με Content-Type διαφορετικό από το αναμενόμενο (π.χ.,
- Άδειο σώμα αιτήματος:
- Αποστολή αιτήματος χωρίς σώμα.
- Μη έγκυρα δεδομένα:
-
Οριακές συνθήκες:
- Ενημέρωση πόρου με το ελάχιστο σύνολο πεδίων (αν επιτρέπεται).
- Ενημέρωση πόρου με το μέγιστο σύνολο πεδίων.
- Έλεγχος συμπεριφοράς κατά την αποστολή επιπλέον, μη αναμενόμενων πεδίων στο σώμα.
Παράδειγμα δομής περιπτώσεων δοκιμής:
| Περίπτωση | Περιγραφή | Αναμενόμενο αποτέλεσμα |
|---|---|---|
| Επιτυχής ενημέρωση | Ενημέρωση όλων των πεδίων με σωστές τιμές. | 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) και εργαλεία για τη δημιουργία δοκιμαστικών δεδομένων.