Middle
Δώστε ένα παράδειγμα για το πώς θα επιλέγατε τα τεστ-περιπτώσεις για ένα αίτημα PUT.
sobes.tech AI
Απάντηση από AI
Κατά την επιλογή των test-case για το PUT αίτημα, θα ακολουθούσα τις ακόλουθες αρχές:
-
Θετικά σενάρια:
- Επιτυχής πλήρης ενημέρωση υπάρχοντος πόρου με έγκυρα δεδομένα.
- Επιτυχής μερική ενημέρωση υπάρχοντος πόρου (αν το API το υποστηρίζει).
- Ενημέρωση πόρου με χρήση ορίων για τα πεδία.
-
Αρνητικά σενάρια:
- Μη ύπαρξη πόρου με το δοσμένο ID.
- Μη έγκυρη μορφή ID πόρου.
- Μη έγκυρος τύπος δεδομένων στα πεδία του αιτήματος.
- Απουσία υποχρεωτικών πεδίων στο σώμα του αιτήματος.
- Μη έγκυρη μορφή του σώματος του αιτήματος (π.χ. όχι JSON).
- Προσπάθεια ενημέρωσης πεδίων που δεν πρέπει να ενημερώνονται (π.χ. ID, ημερομηνία δημιουργίας).
- Μη επαρκή δικαιώματα πρόσβασης για την ενημέρωση του πόρου.
- Ανταγωνιστική ενημέρωση πόρου (για έλεγχο διαχείρισης συγκρούσεων).
-
Οριακές συνθήκες:
- Μέγιστα επιτρεπτά μεγέθη για αριθμητικά πεδία.
- Κενές γραμμές για string πεδία (αν επιτρέπεται).
- Ειδικοί χαρακτήρες σε string πεδία.
- Μακριές γραμμές για string πεδία.
-
Έλεγχος παρενεργειών:
- Αλλαγή άλλων σχετικών πόρων μετά την ενημέρωση.
- Ορθότητα εμφάνισης ενημερωμένων δεδομένων σε άλλα μέρη του συστήματος (π.χ. σε διεπαφή χρήστη).
Παράδειγμα δομής test-case (για πόρο user με πεδία id, name, email):
| TestCase ID | Περιγραφή | URL Αιτήματος | Σώμα Αιτήματος | Αναμενόμενος Κωδικός Κατάστασης | Αναμενόμενη Συμπεριφορά/Σώμα Απάντησης |
|---|---|---|---|---|---|
| PUT_USR_001 | Επιτυχής πλήρης ενημέρωση | /users/123 |
{"name": "New Name", "email": "new@example.com"} |
200 | Ενημερωμένα δεδομένα χρήστη |
| PUT_USR_002 | Ο χρήστης δεν βρέθηκε | /users/999 |
{"name": "New Name"} |
404 | Μήνυμα σφάλματος που δηλώνει ότι ο χρήστης δεν βρέθηκε |
| PUT_USR_003 | Μη έγκυρη μορφή email | /users/123 |
{"email": "invalid-email"} |
400 | Μήνυμα σφάλματος που δηλώνει μη έγκυρη μορφή email |
| PUT_USR_004 | Απουσία υποχρεωτικού πεδίου | /users/123 |
{} |
400 | Μήνυμα σφάλματος που δηλώνει ότι λείπει πεδίο |
| PUT_USR_005 | Ενημέρωση με μέγιστα όρια για πεδίο | /users/123 |
{"name": "A" * 255} |
200 | Ενημερωμένα δεδομένα χρήστη με μεγάλο όνομα |
| PUT_USR_006 | Προσπάθεια ενημέρωσης μη ενημερώσιμου πεδίου | /users/123 |
{"id": 456, "name": "New Name"} |
400/403 | Μήνυμα σφάλματος που δηλώνει απαγόρευση ή κακό αίτημα |
Φυσικά, ο συγκεκριμένος αριθμός test-case θα εξαρτηθεί από τις προδιαγραφές του API, τη λογική της επιχείρησης και την αρχιτεκτονική του συστήματος.