Middle
Ce cazuri de test pot fi dezvoltate pentru testarea bazelor de date?
sobes.tech AI
Răspuns de la AI
Testarea structurii bazei de date, inclusiv scheme, tabele, indecși, constrângeri (PRIMARY KEY, FOREIGN KEY, UNIQUE, CHECK, NOT NULL).
Testarea datelor:
- Verificarea corectitudinii datelor după operații: INSERT, UPDATE, DELETE.
- Verificarea conformității datelor cu logica de business.
- Testarea integrității datelor în timpul operațiunilor simultane (accès concurențial).
- Testarea importului/exportului de date.
- Testarea migrației datelor.
Testarea procedurilor stocate, funcțiilor și trigger-urilor:
- Testarea parametrilor de intrare și a rezultatelor de ieșire.
- Testarea gestionării erorilor și excepțiilor.
- Testarea impactului asupra datelor din tabele.
- Testarea performanței.
Testarea performanței și a încărcării:
- Testarea timpului de execuție al interogărilor (SELECT).
- Testarea vitezei operațiunilor de modificare a datelor (INSERT, UPDATE, DELETE).
- Testarea comportamentului bazei de date sub sarcină ridicată.
- Testarea scalabilității.
Testarea securității:
- Testarea drepturilor de acces ale utilizatorilor.
- Testarea vulnerabilităților la injecții SQL.
- Testarea auditului și a jurnalizării.
Testarea regresivă după modificări ale schemei bazei de date sau ale codului.
Testarea backup-ului și restaurării datelor.
Exemple de cazuri pentru verificarea constrângerilor:
| ID | Numele cazului | Pași | Rezultatul așteptat |
|---|---|---|---|
| 1 | Verificarea PRIMARY KEY - duplicarea valorii | Încercarea de a insera o înregistrare nouă cu un ID care există deja în tabel. | Sistemul trebuie să afișeze o eroare de încălcare a unicitații PRIMARY KEY. |
| 2 | Verificarea FOREIGN KEY - referință la înregistrare inexistentă | Încercarea de a insera o înregistrare în tabelul dependent, care face referire la un ID care nu există în tabelul părinte. | Sistemul trebuie să afișeze o eroare de încălcare a integrității cheii externe. |
| 3 | Verificarea NOT NULL - inserare NULL | Încercarea de a insera o înregistrare în tabel, lăsând NULL în câmpul marcat ca NOT NULL. | Sistemul trebuie să afișeze o eroare de încălcare a restricției NOT NULL. |
| 4 | Verificarea CHECK - valoare incorectă | Încercarea de a insera / actualiza o înregistrare cu o valoare în câmpul care nu satisface constrângerea CHECK (de exemplu, o valoare negativă pentru vârstă). | Sistemul trebuie să afișeze o eroare de încălcare a constrângerii CHECK. |
Exemplu de interogare SQL pentru testarea vulnerabilităților:
-- Verificare posibilitate de injecție SQL în câmpul de login
SELECT * FROM users WHERE username = 'admin' AND password = '' OR '1'='1';
Exemplu de interogare pentru testarea performanței:
-- Măsurarea timpului de execuție al unei interogări complexe 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';