Middle
Ποια τεστ περιπτώσεις μπορούν να αναπτυχθούν για τη δοκιμή βάσεων δεδομένων;
sobes.tech AI
Απάντηση από AI
Δοκιμή της δομής της βάσης δεδομένων, συμπεριλαμβανομένων των σχημάτων, πινάκων, ευρετηρίων, περιορισμών (PRIMARY KEY, FOREIGN KEY, UNIQUE, CHECK, NOT NULL).
Δοκιμή δεδομένων:
- Έλεγχος ορθότητας δεδομένων μετά από λειτουργίες: INSERT, UPDATE, DELETE.
- Έλεγχος συμμόρφωσης των δεδομένων με τη λογική της επιχείρησης.
- Δοκιμή ακεραιότητας δεδομένων κατά τη διάρκεια ταυτόχρονων λειτουργιών (ανταγωνιστική πρόσβαση).
- Δοκιμή εισαγωγής/εξαγωγής δεδομένων.
- Δοκιμή μετανάστευσης δεδομένων.
Δοκιμή αποθηκευμένων διαδικασιών, συναρτήσεων και triggers:
- Δοκιμή εισόδων και εξόδων.
- Δοκιμή διαχείρισης σφαλμάτων και εξαιρέσεων.
- Δοκιμή επιρροής στα δεδομένα των πινάκων.
- Δοκιμή απόδοσης.
Δοκιμή απόδοσης και φόρτου:
- Δοκιμή χρόνου εκτέλεσης ερωτημάτων (SELECT).
- Δοκιμή ταχύτητας λειτουργιών τροποποίησης δεδομένων (INSERT, UPDATE, DELETE).
- Δοκιμή συμπεριφοράς της βάσης δεδομένων υπό υψηλό φόρτο.
- Δοκιμή κλιμάκωσης.
Δοκιμή ασφάλειας:
- Δοκιμή δικαιωμάτων πρόσβασης χρηστών.
- Δοκιμή ευπάθειας σε SQL injection.
- Δοκιμή καταγραφής και ελέγχου.
Επαναληπτική δοκιμή μετά από αλλαγές στο σχήμα της βάσης δεδομένων ή στον κώδικα.
Δοκιμή αντιγράφων ασφαλείας και αποκατάστασης δεδομένων.
Παραδείγματα περιπτώσεων για έλεγχο περιορισμών:
| ID | Όνομα περίπτωσης | Βήματα | Αναμενόμενο αποτέλεσμα |
|---|---|---|---|
| 1 | Έλεγχος PRIMARY KEY - διπλότυπη τιμή | Προσπάθεια εισαγωγής νέας εγγραφής με ID που ήδη υπάρχει στον πίνακα. | Το σύστημα πρέπει να εμφανίσει σφάλμα παραβίασης μοναδικότητας PRIMARY KEY. |
| 2 | Έλεγχος FOREIGN KEY - αναφορά σε μη υπαρκή εγγραφή | Προσπάθεια εισαγωγής εγγραφής σε σχετικό πίνακα που αναφέρεται σε ID που δεν υπάρχει στον γονικό πίνακα. | Το σύστημα πρέπει να εμφανίσει σφάλμα παραβίασης της ακεραιότητας του εξωτερικού κλειδιού. |
| 3 | Έλεγχος NOT NULL - εισαγωγή NULL | Προσπάθεια εισαγωγής εγγραφής στον πίνακα αφήνοντας NULL σε πεδίο που έχει οριστεί ως NOT NULL. | Το σύστημα πρέπει να εμφανίσει σφάλμα παραβίασης περιορισμού NOT NULL. |
| 4 | Έλεγχος CHECK - μη έγκυρη τιμή | Προσπάθεια εισαγωγής / ενημέρωσης εγγραφής με τιμή που δεν ικανοποιεί το CHECK constraint (π.χ. αρνητική τιμή στην ηλικία). | Το σύστημα πρέπει να εμφανίσει σφάλμα παραβίασης του CHECK constraint. |
Παράδειγμα ερωτήματος SQL για δοκιμή ευπάθειας:
-- Έλεγχος για πιθανή SQL injection στο πεδίο εισόδου ονόματος χρήστη
SELECT * FROM users WHERE username = 'admin' AND password = '' OR '1'='1';
Παράδειγμα ερωτήματος για δοκιμή απόδοσης:
-- Μέτρηση χρόνου εκτέλεσης πολύπλοκου ερωτήματος SELECT
EXPLAIN ANALYZE SELECT o.order_id, c.customer_name, p.product_name
FROM orders o
JOIN customers c ON o.customer_id = c.customer_id
JOIN order_items oi ON o.order_id = oi.order_id
JOIN products p ON oi.product_id = p.product_id
WHERE c.country = 'USA' AND o.order_date > '2023-01-01';