Sobes.tech
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';