Testtechnieken

 
Software testen is van vitaal belang voor iedere organisatie die het systeem in kwestie gaat gebruiken. Het is namelijk praktisch onmogelijk om software compleet foutloos te ontwerpen – en daardoor komen diverse testtechnieken om de hoek kijken. Testtechnieken zijn ontworpen om fouten in de uiteindelijke software te voorkomen, hetgeen op verschillende manieren mogelijk is. Hieronder gaan we verder in op de diverse soorten testtechnieken.
 
Meer weten?
Testtechnieken

De doelen van testtechnieken

De ontwikkeling van software is niet eenvoudig. Vaak gaat het om dermate ingewikkelde, complexe programma’s dat het ontwerpen ervan simpelweg niet foutloos kán zijn. Daarom zijn de juiste testtechnieken ook zo belangrijk: ze sporen fouten – en daarmee risico’s – tijdig op én controleren of de ontwikkelaar van de software zijn of haar werk goed heeft gedaan.

Globaal zijn er aantal testtechnieken te onderscheiden, te weten de volgende:

  • Positieve testtechnieken
  • Negatieve testtechnieken
  • Statische testtechnieken
  • Dynamische testtechnieken
  • White-box-testen
  • Black-box-testen

Positieve en negatieve testtechnieken

Een positieve testtechniek onderscheid zich door een letterlijke, positieve benadering. Hierbij wordt gekeken of een systeem al dan niet voldoet aan de wensen en voorkeuren van de opdrachtgever – de toekomstige gebruikerseisen. Een negatieve testtechniek focust zich meer op de fouten in het te gebruiken systeem en het opsporen hiervan.

Statische versus dynamische testtechnieken

Een ander, veelgemaakt onderscheid tussen diverse soorten testtechnieken is de categorisering aan de hand van statische en dynamische technieken. Een statische test is een controle die wordt gedaan waarbij het systeem in principe niet wordt gebruikt. Deze testen komen veel voor wanneer het te testen systeem (nog) niet beschikbaar is en vinden derhalve veel plaats aan het begin van een ontwikkelingsproces.

Een dynamische test is een test waarbij het daadwerkelijke systeem wél in staat is om te ‘draaien’. We onderscheiden daarbij twee subcategorieën: impliciete, dynamische testen en expliciete, dynamische testen. Een impliciete test controleert zijdelings of een testobject voldoet aan bepaalde, gestelde eisen. De expliciete test is wat dat betreft nauwkeuriger en gaat meer in op specifieke eigenschappen en resultaten.

White-box- en black-box-testen

Naast het hierboven genoemde onderscheid is er nog een derde manier van testtechnieken rangschikken, namelijk de onderscheiding tussen white-box- en black-box-testen. Een white-box-test richt zich voornamelijk op de interne werking van de software of een softwarepakket en wordt vooral gebruikt voor het controleren van tussenresultaten. Dergelijke tests worden vaak uitgevoerd door programmeurs of de ontwikkelaars zelf. Dit is anders bij de black-box-variant, waarbij men weinig kennis hoeft te hebben van de software zelf.

Naast de genoemde testtechnieken zijn er ook een aantal varianten die in géén van deze categorieën lijken te vallen. Daaronder valt bijvoorbeeld het zogenaamde ‘error guessing’, waarbij men een ontworpen systeem naloopt op veel gemaakte problemen en fouten. De werking van zo’n test heeft niet altijd een bewezen werking, maar er zijn organisaties die, aan de hand van persoonlijke ervaringen, zweren bij deze wijze van controle.

Voorbeelden van testtechnieken

TMAP
De afkorting TMAP staat voor Test Management Approach en omvat een methodiek die voornamelijk de risico’s van de software test. Zodoende wordt er met een TMAP gekeken naar de locaties waar zich de grootste kansen op een mogelijke fout bevinden. TMAP is derhalve een van de voornaamste testtechnieken.

Agile Testing
Agile Testing wordt meer gebruik voor kleinschalige softwareprojecten vanwege de persoonlijke communicatie die bij deze testtechniek komt kijken. Het uitgangspunt bij deze manier van testen is om integraal te werken aan het testen en de uiteindelijke bouw van de software. Dit gebeurt aan de hand van een multidisciplinair team waarin ieder lid een eigen kwaliteit heeft. Het resultaat is een product van deze gezamenlijke verantwoordelijkheid.

Unit Testing
Bij Unit Testing wordt de kwaliteit van de software bewaakt aan de hand van tests die specifieke codes automatisch testen. Deze geautomatiseerde manier van testen is nog altijd erg in opkomst en vormt, mits goed uitgevoerd, een krachtige wijze van kwaliteitsbewaking.

Wilt u meer weten over de verschillende testtechnieken of kunnen wij u adviseren bij uw softwaretraject? Neem dan contact met ons op.

Meer weten?