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