De testprocedures die in programmeertools worden gebruikt, zijn sterk afhankelijk van het type tool en het doel ervan. Er is geen eenduidig antwoord, maar hier zijn enkele veelvoorkomende benaderingen, gecategoriseerd per testtype:
1. Eenheidstesten:
* Procedure: Het afzonderlijk testen van individuele componenten (functies, methoden, modules). Dit omvat het maken van testcases die verschillende invoer- en edge-cases gebruiken om te verifiëren dat elke component zich gedraagt zoals verwacht.
* Hulpmiddelen: JUnit (Java), pytest (Python), unittest (Python), Mokka (JavaScript), Jest (JavaScript).
* Technieken: Testgestuurde ontwikkeling (TDD), waarbij tests *vóór* de code worden geschreven, waarbij afhankelijkheden worden belachelijk gemaakt om de te testen eenheid te isoleren.
2. Integratietesten:
* Procedure: Het testen van de interactie tussen verschillende componenten of modules om er zeker van te zijn dat ze correct samenwerken.
* Hulpmiddelen: Vaak dezelfde tools die worden gebruikt voor het testen van eenheden, maar met een focus op het testen van de interfaces en interacties tussen eenheden.
* Technieken: Door gebruik te maken van mocking om externe afhankelijkheden alleen te simuleren wanneer dat nodig is, met de nadruk op het verifiëren van de gegevensstroom en functionaliteit over meerdere eenheden.
3. Systeemtesten:
* Procedure: Het testen van het gehele systeem als geheel om er zeker van te zijn dat het aan de gestelde eisen voldoet. Dit omvat het testen van de functionaliteit, prestaties en beveiliging van het systeem.
* Hulpmiddelen: Selenium (webapplicaties), Appium (mobiele applicaties), belastingtesttools zoals JMeter of k6.
* Technieken: Black-box-testen (testen zonder kennis van de interne werking), white-box-testen (testen met kennis van de interne werking) en verschillende testontwerptechnieken zoals equivalentiepartitionering en grenswaardeanalyse.
4. Regressietesten:
* Procedure: Het opnieuw testen van de software na wijzigingen (bijvoorbeeld bugfixes, nieuwe functies) om ervoor te zorgen dat de bestaande functionaliteit niet wordt verbroken. Dit is cruciaal om de softwarekwaliteit in de loop van de tijd te behouden.
* Hulpmiddelen: Testautomatiseringsframeworks (zoals Selenium, pytest, JUnit) zijn essentieel voor efficiënte regressietesten. Testbeheertools helpen de uitvoering en resultaten van tests bij te houden.
* Technieken: Het uitvoeren van bestaande testsuites, waarbij voorrang wordt gegeven aan tests op basis van risico en impact.
5. Prestatietesten:
* Procedure: Het evalueren van het reactievermogen, de stabiliteit, de schaalbaarheid en het bronnengebruik van het systeem onder verschillende belastingsomstandigheden.
* Hulpmiddelen: JMeter, k6, Gatling, LoadRunner.
* Technieken: Belastingtesten (het simuleren van een groot aantal gebruikers), stresstesten (het systeem over zijn grenzen duwen), duurtesten (het testen van het vermogen van het systeem om langdurige belasting aan te kunnen).
6. Beveiligingstests:
* Procedure: Het identificeren van kwetsbaarheden en zwakheden in het systeem die door aanvallers kunnen worden misbruikt.
* Hulpmiddelen: Statische en dynamische tools voor het testen van applicatiebeveiliging (SAST/DAST), tools voor penetratietesten.
* Technieken: Scannen van kwetsbaarheden, penetratietesten, codebeoordeling op beveiligingsfouten.
7. Bruikbaarheidstesten:
* Procedure: Het evalueren van de gebruiksvriendelijkheid en effectiviteit van de tool vanuit het perspectief van de gebruiker.
* Hulpmiddelen: Observatie, gebruikersinterviews, enquêtes, software voor het testen van bruikbaarheid.
* Technieken: Heuristische evaluatie, cognitieve walkthroughs, gebruikerstestsessies.
De specifieke gebruikte testprocedures zullen ook variëren afhankelijk van de ontwikkelingsmethodologie (bijvoorbeeld Agile, Waterfall). Agile-methodologieën leggen doorgaans de nadruk op continu testen en integratie, terwijl Waterfall aan het einde van de ontwikkelingscyclus uitgebreidere testfasen kan inhouden. Naast het bovenstaande nemen veel teams codebeoordeling en statische analyse op als onderdeel van hun teststrategie. |