Middle
Milliseid testjuhtumeid saab andmebaaside testimiseks välja töötada?
sobes.tech AI
Vastus AI-lt
Andmebaasi struktuuri testimine, kaasa arvatud skeemid, tabelid, indeksid, Constraints (PRIMARY KEY, FOREIGN KEY, UNIQUE, CHECK, NOT NULL):
Andmete testimine:
- Õigsuse kontroll pärast operatsioone: INSERT, UPDATE, DELETE:
- Andmete vastavuse kontroll äriloogikale:
- Andmete terviklikkuse testimine samaaegsete operatsioonide ajal (konkurentsivaba juurdepääs):
- Andmete importimise/väljundi testimine:
- Andmete migratsiooni testimine:
Säilitatavate protseduuride, funktsioonide ja triggereid testimine:
- Sisendparameetrite ja väljundtulemuste testimine:
- Vea- ja erandite töötlemise testimine:
- Andmete mõju testimine tabelites:
- Tõhususe testimine:
Tõhususe ja koormuse testimine:
- Päringute täitmise aja testimine (SELECT):
- Andmete muutmise operatsioonide kiiruse testimine (INSERT, UPDATE, DELETE):
- Andmebaasi käitumise testimine suure koormuse all:
- Skaleeritavuse testimine:
Turvatestimine:
- Kasutajate õiguste kontroll:
- SQL-investeerimise haavatavuste testimine:
- Audit ja logimise testimine:
Regressioonitestimine pärast skeemi või koodi muudatusi:
Andmete varundamise ja taastamise testimine:
Constraints näidised:
| ID | Juhtumi nimi | Sammud | Oodatav tulemus |
|---|---|---|---|
| 1 | PRIMARY KEY - väärtuse duplikaat | Uue kirje lisamine ID-ga, mis juba eksisteerib tabelis. | Süsteem peaks kuvama vea PRIMARY KEY unikaalsuse rikkumise kohta. |
| 2 | FOREIGN KEY - viide mitteolevale kirjele | Kirje lisamine sõltuvas tabelis, viidates ID-le, mida pole vanematabelis. | Süsteem peaks kuvama vea välise võtme rikkumise kohta. |
| 3 | NOT NULL - NULL väärtuse lisamine | Kirje lisamine, jätmata NULL-iks välja, mis on märgitud NOT NULL-ks. | Süsteem peaks kuvama vea NOT NULL piirangu rikkumise kohta. |
| 4 | CHECK - vale väärtus | Kirje lisamine või uuendamine väärtusega, mis ei vasta CHECK piirangule (nt. negatiivne vanus). | Süsteem peaks kuvama vea CHECK piirangu rikkumise kohta. |
SQL päring näide, mis testib haavatavusi:
-- SQL-injektsiooni võimaluse kontroll logini väljale
SELECT * FROM users WHERE username = 'admin' AND password = '' OR '1'='1';
Tõhususe testimiseks näide päringust:
-- Keeruka SELECT päringu täitmisaja mõõtmine
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';