Wat is de testingfase?
De testingfase binnen de SSDLC richt zich op het controleren van de correctheid, volledigheid, veiligheid en kwaliteit van de opgeleverde software. Dit gebeurt aan de hand van testgevallen die zijn opgesteld op basis van de requirements en het ontwerp. De uitkomsten van deze fase bepalen of het systeem voldoet aan de verwachtingen van de stakeholders en of het gereed is voor oplevering.
Casus
Voor een betaalsysteem zijn in de requirements specifieke eisen opgesteld over foutmeldingen en transactiesnelheid. In de testingfase wordt met testautomatisering gecontroleerd of de verwerkingstijd onder 1 seconde blijft en of bij foutieve invoer (zoals een verlopen creditcard) de juiste foutmelding verschijnt.
Hoe zit de testingfase in elkaar?
1. Doel van de fase
Het doel is om aan te tonen dat de software werkt zoals gespecificeerd en dat fouten, risico’s of beveiligingsproblemen worden opgespoord vóór oplevering.
2. Activiteiten binnen de fase
- Opstellen en uitvoeren van testgevallen
- Functioneel testen (black box, white box)
- Niet-functioneel testen (performance, usability, beveiliging)
- Automatiseren van tests waar mogelijk
- Rapporteren van fouten en regressies
3. Betrokken rollen
- Testers / QA engineers
- Developers (voor unit- en integratietests)
- Product owner (voor acceptatietests)
- Security testers / ethical hackers
- DevOps engineers (voor testautomatisering)
4. Op te leveren resultaten
- Testrapporten met bevindingen
- Resultaten van geautomatiseerde tests
- Buglijsten en issue tracking (bijv. via Jira)
- Bewijs van traceerbaarheid (welke requirement is getest)
- Go/no-go advies op basis van testresultaten
5. Beveiligingsfocus
- Penetratietesten op kwetsbaarheden (bijv. OWASP Top 10)
- Validatie van autorisatie- en authenticatiemechanismen
- Controle op veilige foutafhandeling en dataversleuteling
- Testen op injecties, XSS, CSRF en andere aanvallen
6. Modelleertechnieken of tools
- Test cases en testscenario’s op basis van use cases
- Test automation tools (bijv. Selenium, Cypress, Postman)
- Load- en stresstests (bijv. JMeter, k6)
- Security testing tools (bijv. OWASP ZAP, Snyk, Burp Suite)
- CI-integratie (bijv. GitHub Actions, Jenkins)
7. Feedbackloops of iteraties
- Testresultaten leiden tot fixes in development
- Regressietests na elke wijziging
- Continous testing binnen CI/CD pipeline
- Regelmatige testdemo’s of reviewmomenten
8. Communiceerbaarheid van tussenresultaten
- Overzichtelijke dashboards (bijv. TestRail, Allure Reports)
- Visuele rapportages van testuitvoering
- Koppeling tussen testcases en requirements in testrapport
- Toelichting op teststrategieën en risico’s
9. Traceerbaarheid
- Elke testcase is gekoppeld aan een requirement of use case
- Defecten zijn gelinkt aan testcases én componenten in de code
- Testverslag toont welke eisen zijn getest en met welk resultaat
10. Testmogelijkheden of controlepunten
- Functionele acceptatietests
- Technische integratietests
- Edge cases en negatieve testgevallen
- Testen op beveiliging, prestaties en gebruikerservaring
11. Voorbeelden of casus
Voorbeeld:
Voor use case UC-03 “Reservering annuleren” is een testscript opgesteld met drie scenario’s: succesvolle annulering, annulering te laat (foutmelding), en annulering zonder reservering (foutmelding). Elk scenario is automatisch getest in de CI-pipeline. Bugs worden automatisch geregistreerd in Jira.
12. Betekenis voor de volgende fase
De testingfase bepaalt of de software gereed is voor oplevering. Alleen als de testresultaten voldoen aan de acceptatiecriteria, kan worden overgegaan tot release. Daarnaast vormen de testdocumenten een belangrijke basis voor toekomstige regressietests en onderhoud. Eventuele resterende risico’s worden gedocumenteerd voor monitoring in de operationele fase.
Hoe gebruik je de testingfase?
De testingfase gebruik je om objectief vast te stellen of de software voldoet aan de gestelde eisen en klaar is voor oplevering. Het is een fase waarin fouten worden opgespoord, risico’s zichtbaar worden en de kwaliteit van de software inzichtelijk wordt gemaakt — voordat deze in productie gaat.
In de praktijk gebruik je deze fase om:
- Alle requirements te verifiëren via testcases die herleidbaar zijn naar specificaties en use cases.
- Risico’s vroegtijdig te ondervangen, met onder andere penetratietests, performancetests en autorisatiecontroles.
- Automatisch en herhaalbaar te testen, zodat regressies snel worden opgespoord bij wijzigingen in de code.
- Feiten te verzamelen voor besluitvorming, zoals go/no-go-momenten en risicoafwegingen richting deployment.
- Verantwoording af te leggen, met traceerbare testrapporten die aantonen dat aan (veiligheids)vereisten is voldaan.
Door testing goed te benutten, verhoog je de betrouwbaarheid van de software, verminder je herstelkosten en verklein je de kans op beveiligingsincidenten of functionele fouten na oplevering.
Volgende stap: Uitleg SSDLC Deploymentfase