Wedden dat ik fouten goed kan voorspellen?

Als je op Google zoekt naar de betekenis van 'voorspellen', krijg je een groot aantal hits die gaan over het voorspellen van sportuitslagen. Niet heel gek als je bedenkt dat er ontzettend veel geld omgaat in het gokken op sportuitslagen. Voorspellen in testen is echter nog niet zo groot op dit moment. Eigenlijk wel gek als je bedenkt dat we maar al te graag willen weten waar fouten in het softwareontwikkelproces op gaan treden.

Gokken op het juiste paard

Sportwedden wordt op twee manieren bedreven:

  • De wetenschappelijke benadering: heel veel data verzamelen, analyseren en modellen bouwen om te komen tot de beste voorspelling van de uitslag.
  • Onderbuikgevoel: iemand met veel ervaring vragen om tips, schimmige aanbevelingen volgen of op basis van je eigen koffiedrab een voorspelling doen.

Er zijn veel onderzoeken die bekijken welke methode het meest efficiënt is. Eigenlijk is er geen echt uitsluitsel wat beter werkt. Linksom of rechtsom blijft het voorspellen van het winnende paard een spannende bezigheid.

Domeinkennis of testvakmanschap

In de testwereld vinden vergelijkbare activiteiten plaats, alleen wagen we ons nog niet aan echte voorspellingen. Bij het testen van producten of applicaties worden ook twee benaderingen gevolgd, analoog aan voorspellingen in de sportwereld:

  • Volgen van een testmethodologie: door data te verzamelen, testontwerptechnieken te gebruiken en testresultaten te vergelijken wordt een beeld gevormd van de kwaliteit van een product. Hiermee vinden we echte defects en krijgen we ook een goed beeld van de testdekking.
  • Gebruik domeinkennis: experts die een product door en door kennen en bekend zijn met details van de organisatie en interne processen, kunnen in zeer korte tijd een oordeel geven over een nieuwe versie van een site, product of app.

Een goed testproces combineert beide benaderingen om zo inzicht te krijgen in de kwaliteit en het vertrouwen van nieuwe release.

Machine-learning

Als we toch veel data verzamelen en daarmee op veel vlakken historie opbouwen, kan je een model maken van alle testgerelateerde producten. Een machine-learning algoritme kan heel goed leren van historische data welke fouten kritisch zijn en welke niet. Ook kunnen we leren uit code-check-ins, datum, modulenaam, etc. welke wijzigingen grote of veel fouten van een bepaald type kunnen veroorzaken. 

Voorspellen in de testwereld is bereikbaar

Gebruik bijvoorbeeld Google TensorFlow om te leren hoe je een machine-learning algoritme kan trainen en testen. Gebruik een deel van je eigen defects database om te trainen en een deel om mee te testen. Ben je blij met het resultaat, laat het los op nieuwe defects of code wijzigingen. Ik durf het wel aan om met al deze data op de wetenschappelijke manier defects te voorspellen. In de onderstaande animatie zie je ook welke aanpak ik gebruik om te komen van uitvoeren via monitoren naar voorspellen. Ik gebruik daarvoor de metafoor van een reis met 5 zogenaamde Hops. Bekijk de video:

Meer weten over voorspellen in testen? 

Wedden dat ik jou kan laten zien hoe je voorspellend kunt testen? Wil je weten hoe? Neem dan contact op via onderstaande gegevens en kom meer te weten over Predictive Quality voor jouw onderneming.