Wat is het verzamelen van testcases?
Een testcase is een gestructureerde beschrijving van een testscenario om te testen of een specifieke functionaliteit van een applicatie correct werkt. Een testcase bevat doorgaans:
- Test-ID: Unieke identificatie van de testcase
- Beschrijving: Korte uitleg van wat getest wordt
- Voorwaarden: Vereisten of setup voordat de test wordt uitgevoerd
- Teststappen: Acties die moeten worden uitgevoerd
- Verwacht resultaat: Het verwachte gedrag van de applicatie
- Werkelijk resultaat: Het daadwerkelijke gedrag na uitvoering
- Status: Bijvoorbeeld ‘Geslaagd’ of ‘Mislukt’
Voordat testcases uitgewerkt worden, wordt eerst een verzameling aangelegd van de testcases. Het startpunt is een testscenario, bijvoorbeeld: ‘Gebruiker logt in op applicatie’. Daarna volgt een strategie om te komen tot de testcases.
Casus Verzamelen testcases
In een druk softwarebedrijf kreeg Lisa, een ervaren tester, de taak om een robuust testplan op te stellen voor de nieuwe inlogmodule. Haar missie? Het verzamelen van alle mogelijke testcases om ervoor te zorgen dat niets over het hoofd werd gezien.
Lisa begon haar zoektocht bij de ontwikkelaars. “Hoe hoort het inloggen te werken?” vroeg ze. De lead developer tekende snel een stroomdiagram uit: “Als de gebruiker de juiste gegevens invoert, komt hij op het dashboard. Zo niet, dan krijgt hij een foutmelding.”
Maar Lisa wist dat software zelden zo simpel was. Ze bezocht de UX-designer, die haar vertelde over de validaties: “Wat als iemand een leeg wachtwoord invoert? Of een e-mailadres zonder @?” Dat waren al twee extra testcases.
Vervolgens ging ze naar de security-expert. “Wat gebeurt er als iemand 100 keer achter elkaar een verkeerd wachtwoord invoert?” vroeg hij. “Wordt het account dan geblokkeerd?” Weer een nieuwe testcase erbij.
Als laatste sprak ze met de supportafdeling. “We krijgen meldingen van gebruikers die hun wachtwoord vergeten,” vertelden ze. “Kun je testen of het wachtwoord-resetproces goed werkt?”
Met een glimlach keek Lisa naar haar groeiende lijst testcases. Van de eenvoudige ‘Inloggen met correcte gegevens’ tot de obscure ‘Inloggen na netwerkonderbreking’—elk scenario werd afgedekt. Nu was het tijd om de testcases uit te voeren en de software op de proef te stellen.
Want als er één ding zeker was in de wereld van testen, dan was het dat de échte bugs zich altijd verstopten in de vergeten hoekjes.
Hoe zit het verzamelen van testcases in elkaar?
Het verzamelen van testcases begint bij het identificeren van een testscenario, een algemene beschrijving van een functionaliteit of gebruikersactie. Bijvoorbeeld, een testscenario kan zijn: “Een gebruiker logt in op de applicatie.” Dit scenario vormt de basis voor meerdere testcases.
Vervolgens is het belangrijk om verschillende varianten en randgevallen in kaart te brengen. Denk hierbij aan situaties waarin de gebruiker correcte of incorrecte inloggegevens invoert, maar ook aan andere factoren zoals een geblokkeerd account, een lege invoer of het gebruik van verschillende apparaten en browsers. Door deze variaties te overwegen, wordt duidelijk welke specifieke testcases nodig zijn.
Op basis hiervan worden afzonderlijke testcases gedefinieerd. Elke testcase beschrijft een specifieke situatie met bijbehorende teststappen, invoerwaarden en verwachte resultaten. Zo kan er bijvoorbeeld een testcase zijn waarin een gebruiker succesvol inlogt en wordt doorgestuurd naar het dashboard, een andere waarin een foutmelding verschijnt bij een verkeerd wachtwoord, en nog een waarin een geblokkeerd account leidt tot een waarschuwingsmelding.
Wanneer alle relevante testcases zijn geïnventariseerd, is het zaak deze te prioriteren. Kritieke testcases, zoals de basisfunctionaliteit van het inloggen, worden als eerste getest. Minder kritieke testcases, zoals specifieke UI-aanpassingen of randgevallen, volgen daarna.
Later wordt elke testcase uitgewerkt in het testontwerp. Eerst wordt per testcase de testsoort bepaald, zoals functioneel testen, performancetesten of beveiligingstesten. Dan wordt ook gekeken naar automatisering en hergebruik van testcases. Testtools zoals Cypress, Selenium of Jest kunnen helpen om bepaalde testcases automatisch uit te voeren. Veelvoorkomende patronen kunnen bovendien worden hergebruikt in andere testscenario’s. Dit maakt het testproces efficiënter en grondiger, waardoor mogelijke fouten vroegtijdig worden opgespoord en opgelost.
Grenswaardenanalyse en waarheidstabellen bij het verzamelen van testcases
Bij het verzamelen van testcases worden verschillende technieken gebruikt om ervoor te zorgen dat zowel normale als uitzonderlijke situaties worden getest. Twee veelgebruikte methoden hiervoor zijn grenswaardenanalyse en waarheidstabellen.
Grenswaardenanalyse
Grenswaardenanalyse richt zich op het testen van de uiterste waarden van invoerbereiken, omdat fouten vaak optreden bij deze grenzen. In plaats van willekeurige waarden te kiezen, test je de minimale, maximale en net binnen/buiten de grens liggende waarden.
Voorbeeld: Stel dat een formulier een leeftijdsveld heeft waarin gebruikers een waarde tussen 18 en 65 moeten invoeren. De testcases zouden dan kunnen zijn:
- Minimale waarde: 18 (geldige invoer)
- Net onder de minimumgrens: 17 (ongeldige invoer, foutmelding verwacht)
- Maximale waarde: 65 (geldige invoer)
- Net boven de maximumgrens: 66 (ongeldige invoer, foutmelding verwacht)
Deze methode helpt bij het effectief identificeren van fouten zonder onnodig veel testcases te creëren.
Waarheidstabellen
Waarheidstabellen worden gebruikt wanneer er meerdere invoerwaarden of beslissingen zijn die verschillende uitkomsten kunnen opleveren. Dit is vooral nuttig bij complexe beslissingslogica waarbij combinaties van invoerwaarden verschillende acties of resultaten veroorzaken.
Voorbeeld: Stel dat een webapplicatie toegang verleent op basis van twee voorwaarden:
- De gebruiker moet een geldig account hebben.
- De gebruiker moet een premium-abonnement hebben.
De mogelijke combinaties en verwachte uitkomsten worden in een waarheidstabel gezet:
Geldig account | Premium-abonnement | Toegang verleend? |
---|---|---|
Nee | Nee | Nee |
Nee | Ja | Nee |
Ja | Nee | Nee |
Ja | Ja | Ja |
Door een waarheidstabel te gebruiken, worden alle mogelijke situaties inzichtelijk en kan worden gecontroleerd of het systeem correct reageert op elke combinatie van invoerwaarden.
Toepassing in testcases
Bij het inventariseren van testcases kunnen grenswaardenanalyse en waarheidstabellen helpen om:
- Kritische testgevallen te identificeren en redundante tests te verminderen.
- Een gestructureerde aanpak te bieden voor zowel numerieke invoerwaarden (grenswaarden) als logische beslissingen (waarheidstabellen).
- De testdekking te vergroten.
Hoe gebruik je het verzamelen van testcases?
Het verzamelen van testcases verloopt in een aantal fasen.
Fase 1. Identificeer het testscenario
Dit is een brede beschrijving van een functionaliteit of proces. Voorbeeld: “Gebruiker logt in op de applicatie.”
Fase 2. Bepaal de mogelijke varianten en randgevallen
Het verzamelen van varianten en randgevallen. Denk aan verschillende invoerwaarden, systeemstatussen en gebruikersrollen. Gebruik hierbaar grenswaardenanalyse en waarheidstabellen.
Fase 3. Definieer afzonderlijke testcases
Voor elk relevant scenario maak je een testcase met specifieke teststappen, invoerwaarden en verwachte resultaten.
Voorbeelden van testcases voor het inlogscenario:
- TC-001: Inloggen met correcte gegevens → gebruiker komt op het dashboard.
- TC-002: Inloggen met onjuist wachtwoord → foutmelding wordt getoond.
- TC-003: Inloggen met een geblokkeerd account → melding “Account geblokkeerd” verschijnt.
- TC-004: Inloggen met een leeg e-mailadres en wachtwoord → validatiefoutmelding verschijnt.
- TC-005: Inloggen op een mobiel apparaat → interface past zich correct aan.
Fase 4. Prioriteren van testcases
Kritieke testcases worden eerst uitgevoerd (bijv. basisfunctionaliteit zoals succesvol inloggen). Minder kritieke testcases (zoals specifieke UI-aanpassingen) kunnen later getest worden.
Fase 5. Automatisering en hergebruik overwegen
Sommige testcases kunnen geautomatiseerd worden met testtools zoals Cypress, Selenium of Jest. Testcases met herhalende patronen kunnen hergebruikt worden in meerdere testscenario’s.
Bronnen
Cypress: https://www.cypress.io/
Selenium: https://www.selenium.dev/
Jest: https://jestjs.io/
Volgende stap: Uitleg selecteren testsoorten