Zijn testtechnieken nog relevant?

Afgelopen januari was ik als spreker bij Test Academy in Barcelona. Tijdens de Master Class van Derk-Jan de Grood ontstond een interessante discussie over het belang van testtechnieken bij exploratory testen. Derk-Jan bracht een stelling in dat een agile tester de kennis en kunde moet bezitten om testtechnieken op de juiste manier in te zetten, ook als je exploratory test. In de online survey die hij hield tijdens de workshop gaven de deelnemers de stelling een 6.9. Kortom, de testers gaven zelf aan dat dit beter kan. Omdat ik na Derk-Jan een Master Class verzorgde over exploratory testen heb ik het onderwerp meteen meegenomen in mijn sessie.

Eerst zal ik even duidelijk maken wat ik met testtechnieken bedoel. In dit kader versta ik daaronder testontwerptechnieken, zoals grenswaardeanalyse en datacombinatietest. Onder testtechnieken versta ik tevens dekkingsgraadtechnieken zoals decision coverage en condition coverage. En om mijn mening maar direct te geven: ik denk dat het belang van deze testtechnieken in exploratory testen alleen nog maar groter is geworden! Hierbij moet ik wel een onderscheid maken tussen ongestructureerd exploratory testen en gestructureerd exploratory testen. Ongestructureerd exploratory testen noem ik ook wel vrijdagmiddag-er-op-los-klikken. Dus gewoon wat klikken, proberen, kijken, nog meer klikken. Zonder plan, zonder analyse, zonder vastlegging en dus zonder testtechnieken. Desondanks kan deze vorm van testen heel nuttig zijn: juist door het onvoorspelbare ervan kun je op hele interessante situaties of vreemde bugs stuiten. Bij gestructureerd exploratory testen heb je wel duidelijk een doel van een testsessie, bedenk je wel van tevoren en tijdens het testen testideeën, hou je bij wat je doet, rapporteer je daarover en gebruik je testtechnieken: testontwerptechnieken en dekkingsgraadtechnieken, mits deze een toegevoegde waarde hebben. Bij gestructureerd exploratory testen spelen testtechnieken dus wel degelijk een rol, al gebruik je ze anders dan vroeger. Laat me een voorbeeld geven.

Stel dat je een dataverwerkend systeem test. Data worden ingevoerd, opgeslagen, weer beschikbaar gesteld en eventueel verwijderd. Als ik dat met behulp van scripted testen zou testen dan maak ik van tevoren een testspecificatie met behulp van de gegevenscyclustest, wellicht in Word of in Excel. Het doel is dat om te constateren of het systeem wel werkt zoals de documentatie voorschrijft. Bij exploratory testen zou ik ook die testspecificatie maken, maar dan tijdens het testen. Op een kladpapiertje of in Word, Excel, een mindmap of in mijn hoofd, afhankelijk van de complexiteit. In beide gevallen gebruik ik de gegevenscyclustest en voer ik een analyse uit, maar het moment waarop en op basis waarvan verschilt. Het gebruik van deze techniek zorgt ervoor dat ik professioneel en gestructureerd test. En voor mij geldt hetzelfde voor dekkingsgraadtechnieken.

Voor mij is kennis van testontwerptechnieken en dekkingsgraadtechnieken nog steeds bijzonder relevant voor testers, ook in deze tijden van agile testen en exploratory testen. Naar mijn mening is het zelfs nog belangrijker geworden: je moet ze on-the-spot, zonder veel voorbereiding toe kunnen passen. Je hebt bij exploratory testen nu eenmaal niet de tijd om de boel eens even rustig te analyseren. Zo bekeken vereist (gestructureerd) exploratory testen dus een hogere mate van professionaliteit van testers dan scripted testen. Misschien een goede reden voor sommige testers om regelmatig hun kennis van testontwerptechnieken en dekkingsgraadtechnieken op te halen, want zoals mijn collega Ruud van Berkum onlangs tegen mij zei:

"Bij sommige testers is deze kennis wat ver weggezakt."

Jan Jaap Cannegieter

Jan Jaap heeft meer dan 20 jaar ervaring in ICT, vooral op het gebied van testen, requirements en procesverbetering. Daarnaast heeft hij een aantal boeken en artikelen in deze vakgebieden gepubliceerd en spreekt hij regelmatig op (internationale) conferenties.

Volg me op LinkedIn.