Is AI een vloek of een zegen voor exploratory testen? – Sofius

Is AI een vloek of een zegen voor exploratory testen?

AI (artificial intelligence) is hot. Ook binnen het testvak. Stoppen de ontwikkelingen hier of zijn we pas begonnen? Hoe kan AI ons helpen bij exploratory testing? Zijn er ook beperkingen? En, welke vragen moet je jezelf stellen voor je AI inzet in software testen? In deze blog laat ik kort mijn gedachten gaan over de vraag: Maakt AI je leven als tester makkelijker of juist moeilijker met betrekking tot exploratory testing?

Wat is exploratory testing (ET) ook alweer?

Exploratory testing (ET) is één van de drie pijlers van ons Quality Infected Teams-gedachtegoed, namelijk Exploration. Bij ET staan zowel de creativiteit, het echte denkwerk als de nieuwsgierigheid van de tester centraal. De tester combineert deze vaardigheden om zoveel mogelijk te leren over de software die hij of zij aan het testen is. Bij ET ben je heel bewust bezig met een deel van het product en besluit je in het moment wat de meest zinvolle weg is om meer te ontdekken over het gebied waarop je focust. Net als een ervaren ontdekkingsreiziger die zich op onbekend terrein begeeft, navigeert een verkennende tester door het softwarelandschap. Op zoek naar aanwijzingen uit verschillende bronnen, zoals de lay-out van de gebruikersinterface, de bewoordingen, logboeken en infrastructuur. Omdat je niet op voorhand alle verwachtingen over de werking van het product vastlegt in procedures of testscripts, kun je je strategie steeds bijstellen op basis van wat je al doende leert. Zo ontdek je dingen waar je vooraf geen rekening mee had gehouden.

Terwijl traditioneel testen kan steunen op vooraf gedefinieerde testscripts en verwachtingen die tijdens de ontwikkeling zijn gesteld, is bij ET het begrijpen van de context waarin het product functioneert heel belangrijk. Kan AI jou als tester helpen als je ET gaat toepassen?

Generatieve AI-tools

De meest bekende AI-tools zijn zogenaamde generatieve AI-tools. Generatieve AI is een vorm van kunstmatige intelligentie die tekst, afbeeldingen en gevarieerde inhoud kan produceren op basis van de gegevens waarmee de tool wordt gevoed/getraind. Voor het trainen zijn één of meerdere datasets nodig als input. Bekende voorbeelden van generatieve AI-tools zijn ChatGPT, Bard, Scribe en Dall-E2.

“Zolang je je bewust bent van de beperkingen tijdens het gebruik, kun je AI prima gebruiken als hulpmiddel.”

De beperkingen van generatieve AI bij Exploratory testing

Als we AI gaan gebruiken bij ET, moeten we voorzichtig zijn. Hoewel de generatieve AI-tools, zoals bijvoorbeeld ChatGPT, over veel mogelijkheden beschikken, zijn ze niet in staat diepe context te begrijpen zoals wij mensen wel kunnen. Het ontbreekt aan een diep begrip van het doel, de doelgroep van het product en het verwachte gebruik door de doelgroep. Simpelweg omdat de trainingsdata van de tool niet voorziet in de specifieke software die je wilt testen. Zolang je je bewust bent van de beperkingen tijdens het gebruik, kun je AI gebruiken als hulpmiddel.

Generatieve AI is afhankelijk van een uitgebreide trainingsdataset als primaire bron en wordt bepaald door vele parameters, die dienen als opslagplaats voor de verzamelde ‘kennis’. Als gevolg hiervan blinkt bijvoorbeeld ChatGPT uit in taken als tekstclassificatie, het beantwoorden van vragen, het samenvatten van documenten, het herschrijven van documenten en het genereren van tekst.

Er worden vanuit verschillende hoeken terechte zorgen geuit over:

  • Door elkaar halen en verkeerd combineren van feiten en referenties.
  • Vertrouwen op bronnen die niet geverifieerd zijn op betrouwbaarheid.
  • Bias op gegeneerde inhoud.
  • Beperkt begrip van context.

Hier moet je dus rekening mee houden.

Hoe zorgen voor een betrouwbaar resultaat?

Je kunt dus niet uitsluitend vertrouwen op generatieve AI voor ET, laat staan dat het een tester kan vervangen. Voor ET zijn inhoudelijke kennis, diepe context van het product, product risico’s, wensen en gedrag van de gebruikers en nog een aantal andere parameters van belang. Je bepaalt vooraf strategieën hoe je het testen gaat aanvliegen. Gedurende de uitvoering maak je keuzes op basis van al die parameters die van belang zijn. Dit is een dusdanig complex proces dat je bij het gebruik van een generatieve AI-tool zaken gaat missen. En dus ook risico’s en fouten in de software over het hoofd kan gaan zien. Met alle gevolgen van dien als deze software uiteindelijk naar de gebruikers gaat.

Waarbij kan AI ondersteunend zijn?

Een test uit laten voeren door een generatieve AI-tool is vooralsnog geen betrouwbare en verstandige optie. Hoe zou je het als testers dan wel kunnen gebruiken? Het kan nuttig zijn voor inspiratie, generen van testdata en als bron voor nieuwe ideeën. De tijd die je wint, kun je weer steken in het beter en uitgebreider testen van het test object. Aan de hand van wat voorbeelden, laat ik zien hoe je sneller op weg raakt bij bijvoorbeeld het maken van een strategie of het bedenken van testdata.

Voorbeelden

Ik gebruik in deze blog ChatGPT, maar je bent natuurlijk vrij in de keuze voor een andere generatieve AI-tool. Hieronder volgen drie voorbeelden.

1.     Starten met basisstrategie voor ET

Om jezelf te helpen/inspireren voor de aanpak van ET waarbij je bijvoorbeeld wilt kijken naar de gebruikersvriendelijkheid van een testobject, kun je aan ChatGPT vragen om een teststrategie te generen. Je hebt dan een startpunt en vanuit daar kun je je strategie uitbreiden.

Snel voorbeeld

“Genereer een teststrategie voor exploratory testing bij het controleren of een applicatie gebruiksvriendelijk is.”

Afbeelding1

2.     Fictieve testdata genereren op basis van parameters

Tijdens het uitvoeren van testen heb je vaak (en veel) testdata nodig en dat genereren kan een tijdrovende klus zijn. Je wilt daarnaast ook voorkomen dat je uit gemak telkens dezelfde gegevens gebruikt. Je kunt ChatGPT gebruiken om fictieve representatieve data te genereren.

Voorbeeld

Geef mij 1 klant met de naam van een bekende wielrenner inclusief een fictief adres, postcode in Nederland, geldig iban bankrekeningnummer bij willekeurige Nederlandse bank, geboortedatum, kenteken van een auto, merk en type van een auto, VIN nummer, aantal schadevrije jaren en soort verzekering en e-mailadres die klant zijn bij een verzekeraar en een autoverzekering heeft.

Afbeelding2

3.     Inspiratie voor testscenario’s

Stel je wilt nieuwe functionaliteit in de software gaan testen en je hebt behoefte aan een startpunt voor testscenario’s. Dan kun je vragen of er onderwerpen zijn waar je op kan letten/focussen. Net als bij de teststrategie-vraag kan dit een mooi startpunt zijn om verder uit te bouwen.

 Voorbeeld

Creëer testscenario’s om de geldigheid van de aangeleverde gegevens van een klant voor een autoverzekering te controleren

Afbeelding3

Kwaliteit van generatieve AI-antwoorden verbeteren

Om in de toekomst de best mogelijke antwoorden te krijgen, moet je duidelijk hebben wat de bedoeling is. Let daarom op het volgende:

  • Wees zeer relevant in de gestelde vraag
  • Verstrek nauwkeurige en feitelijke informatie
  • Geef aan wat het gewenste detailniveau is
  • Geef aan wat de gewenste lay-out is

De drie stappen die je kunt ondernemen om de antwoorden van een generatieve AI-tool te verbeteren, zijn:

  1. Toevoegen specifieke context van jouw applicatie
  2. Voorbeelden geven van de gewenste antwoorden
  3. Controleren van de antwoorden

De kunst van het verkennen

Om na deze korte analyse te concluderen dat AI een zegen is voor ET is wat overdreven, maar een vloek is het zeker niet. Generatieve AI-tools kunnen handige hulpmiddelen zijn om jezelf meer uit te dagen, testdata te genereren, simpele/saaie taken van je over te nemen en je te helpen bij brainstormsessies. Het begrijpen van diepe context is iets waar generatieve AI nog echt tekortkomt in vergelijking met een tester. Door het trainen van de generatieve AI-tool kan het antwoord in de toekomst betrouwbaarder worden.

Tot die tijd is de mens nog steeds beter is en nodig voor het kritische denken! Gelukkig maar, want je creativiteit de vrije loop laten is voor mij een van de leukste aspecten van het testvak. Gebruik generatieve AI dus vooralsnog om jezelf op gang te helpen en creatief uit te dagen. En niet om ongecontroleerde taken uit te voeren.

Misschien vind u de volgende artikelen ook wel interessant