Middle
Milyen tesztesetek fejleszthetők az adatbázisok tesztelésére?
sobes.tech MI
Válasz az MI-től
Az adatbázis szerkezetének, beleértve a sémákat, táblákat, indexeket, korlátozásokat (PRIMARY KEY, FOREIGN KEY, UNIQUE, CHECK, NOT NULL) tesztelése.
Adatok tesztelése:
- Az adatok helyességének ellenőrzése műveletek után: INSERT, UPDATE, DELETE.
- Az adatok megfelelőségének ellenőrzése az üzleti logikával.
- Az adatok integritásának tesztelése egyidejű műveletek során (versenyhelyzet).
- Adatok import/export tesztelése.
- Adatmigráció tesztelése.
Tárolt eljárások, függvények és triggerek tesztelése:
- Bemeneti paraméterek és kimeneti eredmények tesztelése.
- Hibakezelés és kivételek tesztelése.
- A táblák adataira gyakorolt hatás tesztelése.
- Teljesítmény tesztelése.
Teljesítmény és terhelés tesztelése:
- Kérdések végrehajtási idejének tesztelése (SELECT).
- Az adatmódosító műveletek sebességének tesztelése (INSERT, UPDATE, DELETE).
- Az adatbázis viselkedésének tesztelése nagy terhelés alatt.
- Skálázhatóság tesztelése.
Biztonsági tesztelés:
- Felhasználói jogosultságok tesztelése.
- SQL-injekciók sebezhetőségének tesztelése.
- Audit és naplózás tesztelése.
Az adatbázis séma vagy kód módosítása utáni regressziós teszt.
Biztonsági mentés és adat-helyreállítás tesztelése.
Korlátozások ellenőrzésére példák:
| ID | Eset neve | Lépések | Várható eredmény |
|---|---|---|---|
| 1 | PRIMARY KEY - érték duplikáció ellenőrzése | Új rekord beszúrása egy már létező ID-vel. | A rendszer hibát kell, hogy jelezzen az egyediség megsértése miatt. |
| 2 | FOREIGN KEY - nem létező rekordra hivatkozás | Egy függő táblába rekord beszúrása, amely egy nem létező ID-re hivatkozik a szülő táblában. | A rendszer hibát kell, hogy jelezzen a külső kulcs megsértése miatt. |
| 3 | NOT NULL - NULL érték beszúrása | NULL érték beszúrása egy NOT NULL-ként megjelölt mezőbe. | A rendszer hibát kell, hogy jelezzen a NOT NULL korlátozás megsértése miatt. |
| 4 | CHECK - helytelen érték | Egy rekord beszúrása vagy frissítése olyan értékkel, amely nem felel meg a CHECK constraint-nek (pl. negatív életkor). | A rendszer hibát kell, hogy jelezzen a CHECK constraint megsértése miatt. |
SQL-injekció teszt példák:
-- SQL-injekció lehetőségének ellenőrzése a felhasználónév mezőben
SELECT * FROM users WHERE username = 'admin' AND password = '' OR '1'='1';
Teljesítmény teszt példák:
-- Egy összetett SELECT kérés végrehajtási idejének mérése
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';