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