Middle
Welke testgevallen kunnen worden ontwikkeld voor het testen van databases?
sobes.tech AI
Antwoord van AI
Testen van de database-structuur, inclusief schema's, tabellen, indexen, constraints (PRIMARY KEY, FOREIGN KEY, UNIQUE, CHECK, NOT NULL).
Datatests:
- Controleer de correctheid van gegevens na operaties: INSERT, UPDATE, DELETE.
- Controleer de naleving van gegevens met de bedrijfslogica.
- Test de gegevensintegriteit bij gelijktijdige operaties.
- Test gegevensimport/export.
- Test gegevensmigratie.
Test opgeslagen procedures, functies en triggers:
- Test invoerparameters en uitvoerresultaten.
- Test fout- en uitzonderingafhandeling.
- Test de impact op tabelgegevens.
- Prestatie testen.
Prestatie- en belastingstests:
- Test de uitvoeringstijd van queries (SELECT).
- Test de snelheid van gegevenswijzigingsoperaties (INSERT, UPDATE, DELETE).
- Test het gedrag van de database onder hoge belasting.
- Schaalbaarheidstests.
Beveiligingstests:
- Test gebruikersrechten.
- Test op SQL-injectie kwetsbaarheden.
- Test audit en logging.
Regressietests na schema- of codewijzigingen.
Back-up en hersteltests.
Voorbeelden van cases voor het controleren van constraints:
| ID | Naam case | Stappen | Verwacht resultaat |
|---|---|---|---|
| 1 | PRIMARY KEY - duplicatie van waarde | Probeer een nieuwe record in te voegen met een ID die al bestaat. | Het systeem moet een fout geven over schending van de uniekheid van PRIMARY KEY. |
| 2 | FOREIGN KEY - verwijzing naar niet-bestaand record | Probeer een record in een afhankelijke tabel in te voegen die verwijst naar een ID die niet bestaat in de hoofd tabel. | Het systeem moet een fout geven over schending van de referentiële integriteit. |
| 3 | NOT NULL - NULL invoer | Probeer een record in te voegen met NULL in een NOT NULL veld. | Het systeem moet een fout geven over schending van NOT NULL constraint. |
| 4 | CHECK - ongeldige waarde | Probeer een record in te voegen of bij te werken met een waarde die de CHECK constraint niet voldoet (bijvoorbeeld negatieve leeftijd). | Het systeem moet een fout geven over schending van de CHECK constraint. |
Voorbeeld SQL-query om kwetsbaarheden te testen:
-- Test op SQL-injectie mogelijkheid in login veld
SELECT * FROM users WHERE username = 'admin' AND password = '' OR '1'='1';
Voorbeeld query om prestaties te testen:
-- Meet de uitvoeringstijd van een complexe SELECT-query
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';