# Testcase

Een testcase (soms ook testgeval genoemd) is een test van een specifieke situatie (case).

## Algemeen

Met een testcase wordt een specifieke situatie getest. Er wordt getest of iets mogelijk of onmogelijk is. Goed of fout. Een bekend voorbeeld is de juridische testcase waarbij een nieuwe situatie aan de rechter wordt voorgelegd en er jurisprudentie geschreven wordt.

## Softwaretest

Bij het testen van software is een testcase een beschrijving van een test waarmee getest wordt of een stuk software doet wat het zou moeten doen. Vaak wordt expliciet een vooraf beschreven requirement getest. Er zijn vaak meerdere testcases nodig om te bepalen of een programma goed functioneert. Testcases kunnen samengevoegd worden in een testscript. Deze termen worden ook wel door elkaar gebruikt. In een testscript kunnen meerdere testcases zijn opgenomen. Testcases en testscripts kunnen worden samengevoegd in bijvoorbeeld een unittest, een systeemtest of een acceptatietest. Een testcase is de kleinste testeenheid. Er wordt een specifieke case, een specifieke eis die aan het systeem gesteld wordt getest, bijvoorbeeld of een leeftijd jonger dan 18 jaar op een contract wordt tegengehouden.

### Testgeval

Een oorspronkelijk Nederlands woord voor testcase is "testgeval". Het woord testcase wordt echter veel vaker gebruikt.
Het woord testgeval wordt wel veelvuldig gebruikt in de TMap-methodologie, waar het als volgt is gedefinieerd: Met een testgeval wordt onderzocht of het systeem onder bepaalde omstandigheden het gewenste gedrag vertoont.

### Formele testcases

In een goede testcase wordt eerst de initiële situatie geschapen; de condities waaronder de test kan worden uitgevoerd. Vervolgens is er de actie, de test. Vooraf is er al bekend wat er van het resultaat verwacht wordt en wat goed of fout is, bij een goede testopzet wordt dit ook vooraf opgeschreven. Tot slot is er de meting van het testresultaat. Dit resultaat wordt genoteerd en vergeleken met de verwachte of het "goede" resultaat. Bij een goed resultaat is de test geslaagd.

### Informele testcases

Als er geen formele eisen aan een systeem zijn gesteld, als er dus geen systeemontwerp is en geen lijst van requirements waar het systeem aan moet voldoen, dan kan ook niet die lijst van boven naar beneden worden afgewerkt en moeten er testcases gemaakt worden uitgaande van wat algemeen aanvaard is als "normaal" of "goed" gedrag. Bij sommige testmethoden worden er helemaal geen testcases gemaakt, maar worden achteraf de resultaten gerapporteerd, en dan vaak alleen nog maar die zaken die niet goed functioneren.

### Formaat

Testcases worden vaak beschreven op steeds dezelfde manier. Voor een uitgebreidere test worden vaak meerdere testcases gebruikt en dan is het handig om dit gestructureerd aan te pakken en vooraf een formaat te bedenken wat gebruikt kan worden om testcases te beschrijven.
Een typisch formaat heeft de volgende informatie:
* een identificatie of nummer
* een beschrijving.
* de requirement die men test
* de auteur
* de condities waar vooraf aan voldaan moet worden
* eventueel voorafgaande stappen of testcases
* het verwachte resultaat
* de uitvoerder
* datum van uitvoering
* resultaat
* eventuele opmerkingen
Het meeste tijd kost het bedenken van de testcase. De uitvoering kost vaak minder tijd. Veelvoorkomend is dat men beide tegelijk doet; het bedenken en uitvoeren van de testcase. dat kan alleen maar als de software al klaar is en testbaar. Bij een kortere doorlooptijd worden testcases vooraf gemaakt en pas uitgevoerd nadat de software voor testen is vrijgegeven.

## Externe link

* Writing Software Security Test Cases - Putting security test cases into your test plan by Robert Auger