Middle
Kādus testēšanas gadījumus var izstrādāt datu bāzu testēšanai?
sobes.tech AI
Atbilde no AI
Datu bāzes struktūras testēšana, ieskaitot shēmas, tabulas, indeksus, Constraints (PRIMARY KEY, FOREIGN KEY, UNIQUE, CHECK, NOT NULL):
Datu testēšana:
- Pareizības pārbaude pēc operācijām: INSERT, UPDATE, DELETE:
- Datu atbilstības biznesa loģikai pārbaude:
- Datu integritātes testēšana, veicot vienlaicīgas operācijas (konkurētspējīga piekļuve):
- Datu importēšanas/eksportēšanas testēšana:
- Datu migrācijas testēšana:
Saglabāto procedūru, funkciju un trigeru testēšana:
- Ievades parametru un rezultātu testēšana:
- Kļūdu un izņēmumu apstrādes testēšana:
- Datu ietekmes uz tabulām testēšana:
- Veiktspējas testēšana:
Veiktspējas un slodzes testēšana:
- Vaicājumu izpildes laika testēšana (SELECT):
- Datu modifikācijas operāciju ātruma testēšana (INSERT, UPDATE, DELETE):
- Augstas slodzes apstākļos datu bāzes uzvedības testēšana:
- Mērogojamības testēšana:
Drošības testēšana:
- Lietotāju piekļuves tiesību pārbaude:
- SQL injekciju ievainojamību testēšana:
- Audita un žurnāla ierakstu testēšana:
Regresijas testēšana pēc shēmas vai koda izmaiņām:
Datu rezerves kopiju un atjaunošanas testēšana:
Constraints piemēri:
| ID | Gadījuma nosaukums | Darbības | Sagaidāmais rezultāts |
|---|---|---|---|
| 1 | PRIMARY KEY - vērtības dublēšana | Mēģinājums pievienot jaunu ierakstu ar ID, kas jau eksistē tabulā. | Sistēma jāizmet kļūda par PRIMARY KEY unikālas pārkāpumu. |
| 2 | FOREIGN KEY - atsauce uz neeksistējošu ierakstu | Mēģinājums pievienot ierakstu atkarīgā tabulā, atsaucoties uz ID, kura nav vecāku tabulā. | Sistēma jāizmet kļūda par ārējā atslēgas pārkāpumu. |
| 3 | NOT NULL - NULL vērtības pievienošana | Ieraksta pievienošana, atstājot NULL tajā laukā, kurš ir norādīts kā NOT NULL. | Sistēma jāizmet kļūda par NOT NULL ierobežojuma pārkāpumu. |
| 4 | CHECK - nepareiza vērtība | Ieraksta pievienošana vai atjaunināšana ar vērtību, kas neatbilst CHECK ierobežojumam (piem., negatīvs vecums). | Sistēma jāizmet kļūda par CHECK ierobežojuma pārkāpumu. |
SQL vaicājuma piemērs, lai pārbaudītu ievainojamības:
-- SQL-injekcijas iespējamības pārbaude lietotāja ievades laukā
SELECT * FROM users WHERE username = 'admin' AND password = '' OR '1'='1';
Veiktspējas testēšanai piemērs vaicājums:
-- Sarežģīta SELECT vaicājuma izpildes laika mērīšana
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';