Testscenario's voor een Oracle-databasetabel zijn sterk afhankelijk van het doel van de tabel en de gegevens die deze bevat. We kunnen ze echter in verschillende belangrijke gebieden onderverdelen:
Ik. Gegevensintegriteit en -validatie:
* Validatie van gegevenstype:
* Scenario: Probeer in elke kolom gegevens van het verkeerde gegevenstype in te voegen (bijvoorbeeld door tekst in een getalkolom in te voegen). Verwacht een fout of een passende afhandeling (bijvoorbeeld gegevensafkapping met waarschuwing).
* Verwacht resultaat: De database moet ongeldige gegevenstypen weigeren, waardoor een fout ontstaat of deze wordt afgehandeld volgens gedefinieerde beperkingen (zoals 'DEFAULT'-waarden of 'NULL'-afhandeling).
* Beperkingsvalidatie:
* Scenario: Test alle beperkingen die in de tabel zijn gedefinieerd (bijvoorbeeld `NOT NULL`, `UNIQUE`, `PRIMARY KEY`, `FOREIGN KEY`, `CHECK`). Probeer elke beperking te overtreden.
* Verwacht resultaat: De database moet de overtreding voorkomen en een passend foutbericht retourneren.
* Validatie van gegevensbereik:
* Scenario: Probeer waarden in te voegen buiten het toegestane bereik voor numerieke of datumkolommen (indien van toepassing, bijvoorbeeld door een datum in de toekomst in te voegen in een historische gegevenstabel).
* Verwacht resultaat: De database moet waarden buiten het gedefinieerde bereik afwijzen.
* Validatie van gegevenslengte:
* Scenario: Probeer waarden in te voegen die de maximale lengte overschrijden die is gedefinieerd voor tekenreekskolommen (`VARCHAR2`, `CHAR`).
* Verwacht resultaat: De database moet de gegevens afkappen of de invoeging weigeren, afhankelijk van de configuratie.
* Verwerking van nulwaarden:
* Scenario: Test het gedrag van de tabel wanneer 'NULL'-waarden worden ingevoegd in kolommen, zowel null- als 'NOT NULL'-kolommen.
* Verwacht resultaat: De database moet `NULL`-waarden verwerken volgens de kolomdefinities. 'NOT NULL'-kolommen zouden een fout moeten opleveren als een 'NULL'-waarde wordt geprobeerd.
* Standaardwaardevalidatie:
* Scenario: Rijen invoegen zonder waarden op te geven voor kolommen met standaardwaarden.
* Verwacht resultaat: De kolommen moeten worden gevuld met hun respectievelijke standaardwaarden.
II. Gegevensmanipulatie:
* Invoegbewerkingen:
* Scenario: Voeg enkele rijen, meerdere rijen (met `INSERT ALL`) en grote hoeveelheden gegevens in.
* Verwacht resultaat: Gegevens moeten correct worden ingevoegd, waarbij aan alle beperkingen en validaties moet worden voldaan. Controleer op prestatieproblemen met grote wisselplaten.
* Updatebewerkingen:
* Scenario: Update bestaande rijen met geldige en ongeldige gegevens. Werk alle kolommen afzonderlijk en in combinaties bij.
* Verwacht resultaat: Geldige updates zouden moeten slagen, terwijl ongeldige updates (die beperkingen schenden) zouden moeten mislukken.
* Bewerkingen verwijderen:
* Scenario: Verwijder enkele rijen, meerdere rijen en mogelijk alle rijen. Test verwijderbewerkingen met 'WHERE'-clausules die aan verschillende voorwaarden voldoen (bijvoorbeeld specifieke waarden, bereiken).
* Verwacht resultaat: Gegevens moeten correct worden verwijderd volgens de voorwaarden van de `WHERE`-clausule. Controleer op referentiële integriteitsproblemen als er sprake is van externe sleutels.
III. Gegevens ophalen:
* Selecteer bewerkingen:
* Scenario: Test `SELECT`-instructies met verschillende `WHERE`-clausules (met behulp van verschillende operators zoals `=`, `>`, `<`, `BETWEEN`, `LIKE`, `IN`, `IS NULL`), `ORDER BY`, `GROUP BY` en `HAVING`-clausules. Test met joins naar gerelateerde tabellen.
* Verwacht resultaat: Query's moeten de juiste gegevenssets retourneren. Controleer de nauwkeurigheid van de opgehaalde gegevens en de prestaties van verschillende querytypen.
* Gegevensaggregatie:
* Scenario: Gebruik aggregatiefuncties (bijvoorbeeld `SOM`, `AVG`, `COUNT`, `MAX`, `MIN`) om te controleren of de gegevensaggregatie correct is.
* Verwacht resultaat: Nauwkeurige geaggregeerde resultaten moeten worden geretourneerd.
IV. Prestaties en schaalbaarheid:
* Verwerking van grote datavolumes:
* Scenario: Vul de tabel met een grote hoeveelheid gegevens (dicht bij of groter dan het verwachte productiegegevensvolume) en test invoeg-, update-, verwijder- en selectiebewerkingen om de prestaties te meten.
* Verwacht resultaat: De database moet het datavolume verwerken binnen aanvaardbare prestatieparameters.
* Gelijktijdigheidstesten:
* Scenario: Simuleer dat meerdere gebruikers gelijktijdig toegang hebben tot de tabelgegevens en deze wijzigen.
* Verwacht resultaat: De database moet gelijktijdige toegang kunnen verwerken zonder gegevensbeschadiging of fouten.
V. Beveiliging:
* Toegangscontrole:
* Scenario: Controleer of gebruikers met de juiste rollen en bevoegdheden gegevens kunnen openen, wijzigen en verwijderen, terwijl ongeautoriseerde gebruikers dat niet kunnen.
* Verwacht resultaat: Er worden goede toegangscontrolemechanismen toegepast.
Dit zijn algemene scenario's. U moet deze afstemmen op de vereisten, gegevenstypen, beperkingen en het beoogde gebruik van uw specifieke tabel. Houd bij uitgebreid testen rekening met randgevallen en randvoorwaarden. U moet ook geschikte testtools en -methodologieën gebruiken, zoals het schrijven van SQL-scripts voor geautomatiseerd testen. |