Sobes.tech
Middle

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

sobes.tech AI

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

Για την επιλογή σεναρίων δοκιμής για το αίτημα PUT, θα εφάρμοζα τις ακόλουθες προσεγγίσεις, εστιάζοντας σε διάφορες πτυχές:

  • Έγκυρα δεδομένα:

    • Δημιουργία / ενημέρωση εγγραφής με σωστά, πλήρη δεδομένα.
    • Μόνο μερική ενημέρωση πεδίων, τα υπόλοιπα παραμένουν αμετάβλητα.
    • Ενημέρωση όλων των πεδίων με νέες, έγκυρες τιμές.
    • Χρήση οριακών τιμών για αριθμητικά πεδία (ελάχιστο, μέγιστο).
    • Χρήση διαφορετικών μορφών δεδομένων που επιτρέπονται από την προδιαγραφή (π.χ. ημερομηνία, ώρα).
  • Μη έγκυρα δεδομένα:

    • Μετάδοση δεδομένων με λανθασμένο τύπο πεδίου (π.χ. συμβολοσειρά αντί για αριθμό).
    • Μετάδοση δεδομένων που παραβιάζουν περιορισμούς μήκους συμβολοσειράς ή εύρους αριθμού.
    • Μετάδοση δεδομένων που παραβιάζουν την μοναδικότητα του πεδίου (αν ισχύει).
    • Μετάδοση δεδομένων με λανθασμένη μορφή (μη έγκυρη ημερομηνία, email).
    • Απουσία υποχρεωτικών πεδίων.
    • Μετάδοση κενών συμβολοσειρών ή null για πεδία που δεν πρέπει να είναι κενά.
  • Υπάρχει ο πόρος:

    • PUT αίτημα σε υπάρχοντα πόρο.
    • PUT αίτημα σε μη υπάρχοντα πόρο (αναμένουμε απάντηση 404).
  • Εξουσιοδότηση και πιστοποίηση:

    • PUT αίτημα με σωστά διαπιστευτήρια χρήστη που έχει δικαίωμα αλλαγής πόρου.
    • PUT αίτημα με λανθασμένα ή απουσιάζοντα διαπιστευτήρια (αναμένουμε 401 Unauthorized ή 403 Forbidden).
    • PUT αίτημα από χρήστη χωρίς τα απαραίτητα δικαιώματα (αναμένουμε 403 Forbidden).
  • Συγχρονισμός και ανταγωνισμός:

    • Ταυτόχρονα PUT αιτήματα σε έναν και τον ίδιο πόρο (π.χ. με χρήση etag).
  • Διαχείριση σφαλμάτων:

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

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

ID Περιγραφή σεναρίου δοκιμής Προϋποθέσεις Δεδομένα δοκιμής (μέρος του αιτήματος) Αναμενόμενο αποτέλεσμα Κωδικός HTTP
PUT-001 Ενημέρωση υπάρχοντος πόρου με έγκυρα δεδομένα Ο πόρος με ID=123 υπάρχει { "name": "Νέο Όνομα", "value": 100 } Ο πόρος ενημερώνεται επιτυχώς, τα δεδομένα ταιριάζουν με το αίτημα 200
PUT-002 Ενημέρωση υπάρχοντος πόρου με μερική ενημέρωση Ο πόρος με ID=123 υπάρχει { "name": "Μόνο το όνομα άλλαξε" } Ο πόρος ενημερώνεται επιτυχώς, μόνο το πεδίο name άλλαξε 200
PUT-003 Προσπάθεια ενημέρωσης μη υπάρχοντος πόρου Ο πόρος με ID=999 δεν υπάρχει { "name": "Μη υπαρκτό update" } Ο πόρος δεν βρέθηκε 404
PUT-004 Ενημέρωση πόρου με μη έγκυρο τύπο δεδομένων Ο πόρος με ID=123 υπάρχει { "value": "όχι αριθμός" } Σφάλμα επικύρωσης δεδομένων 400
PUT-005 Ενημέρωση πόρου χωρίς αυθεντικοποίηση Ο πόρος με ID=123 υπάρχει, το αίτημα χωρίς token { "name": "Μη εξουσιοδοτημένη αλλαγή" } Μη εξουσιοδοτημένο 401

Κάθε σενάριο δοκιμής πρέπει να είναι ατομικό και να ελέγχει μια συγκεκριμένη πτυχή της λειτουργικότητας του PUT αιτήματος.