Trendsz, Tooling

De wereld van Artificial Intelligence (AI) ontwikkelt zich snel. (mee)Denkende computersystemen zijn geen toekomstbeeld meer maar realiteit van alledag. Met de komst en het toenemend gebruik van systemen die AI gebruiken, zullen de werkzaamheden en de rol van de tester op verschillende vlakken veranderen. In mijn vorige blog heb ik hier al kort bij stilgestaan. Met een groep enthousiaste collega’s zijn we begin dit jaar een Exploration track gestart. Dat betekent dat we op onderzoek zijn uitgegaan, ideeën in kaart hebben gebracht en hebben gediscussieerd over verschillende onderwerpen die te maken hebben met de toekomst van AI en de invloed daarvan op het werk van de tester. Een van die onderwerpen was het in kaart brengen van de testtools die gebruik maken van AI. In deze blog en een vervolgblog die eind dit jaar gepubliceerd wordt, vertel ik jullie meer over de verschillende AI tools en hoe deze tools de tester kunnen helpen en onze werkzaamheden beïnvloeden.

Testtools met AI

In onze zoektocht naar de verschillende AI testtools kwamen we er al snel achter dat het als gebruiker van een testtool vaak niet mogelijk is om te achterhalen of een tool inderdaad gebruik maakt van AI. De functionaliteit waarvan gezegd wordt dat deze mogelijk is dankzij AI, is in sommige gevallen ook te realiseren zonder gebruik te maken van AI. Daarom hebben we voor onszelf allereerst een duidelijk kader voor het onderzoek gesteld. We zijn begonnen met de vraag: wanneer spreken we over AI? Er zijn veel definities die in gebruik zijn binnen de AI-gemeenschap. De definitie die wij gehanteerd hebben, is de volgende: “The ability to perform tasks in complex environments without constant guidance by a user.” And “The ability to improve performance by learning from experience.” (bron: course.elementsofai.com). De drie belangrijkste elementen uit deze definitie zijn autonoom, adaptief en zelflerend.

Op basis van deze drie kenmerken hebben we een definitie geformuleerd waaraan een testtool moet voldoen wanneer het gebruik maakt van AI, namelijk: Testtools die reageren op de omgeving, zelfstandig beslissingen nemen en zelflerend vermogen bezitten. De drie begrippen autonoom, adaptief en zelflerend komen hier in terug, zij het in een iets andere bewoording. Reageren op de omgeving is synoniem aan autonoom (handelen) en zelfstandig beslissingen nemen is een vorm van adoptief handelen. Aan de hand van deze definitie zijn we op zoek gegaan naar testtools. Tijdens het onderzoek werd al snel duidelijk dat er een (groot) verschil bestaat in de mate waarin AI onderdeel uitmaakt van de testtool. Om een goed overzicht te krijgen, hebben we de tools geclassificeerd. Net als bij de definitie van AI zijn er ook nu meerdere classificaties in omloop. De classificatie die we gehanteerd hebben is de volgende:

Niveaus van Artificial intelligence:

  • Niveau 0: No AI
  • Niveau 1: AI assistance
  • Niveau 2: Partial AI automation
  • Niveau 3: Conditional AI automation
  • Niveau 4: High AI automation
  • Niveau 5: Full AI automation

Niveau 0: No AI

De testtools op niveau 0 maken geen gebruik van AI. Deze tools reageren niet op de omgeving (geen autonomie), ze kunnen niet zelfstandig beslissingen nemen (niet adaptief) en ze hebben geen zelflerend vermogen. Voorbeelden van tools op niveau 0 zijn fitnesse, cucumber, protractor en selenium.

Niveau 1: AI assistance

Testrigor is een van de tools die we op niveau 1 zijn tegengekomen. Deze tool maakt in zeer geringe mate gebruik van AI. Maar wat kan zo’n tool dan wel? Deze tool is in staat om de applicatie te scannen, waarbij gekeken wordt naar de structuur van de applicatie. Op basis van deze scan worden testscenario’s gegenereerd en vervolgens wordt een eerste run gedraaid die als baseline dient voor volgende testen. Wanneer we een volgende test draaien, zullen we per gevonden verschil aan moeten geven of het om een bevinding of een wijziging gaat.

Wat testrigor daarnaast nog meer kan, is het herkennen van elementen. Deze tool kan dus onderscheid maken tussen tekstvelden, selectielijsten of radio buttons en daar beperkte controles op uitvoeren.

Niveau 2: Partial AI automation

Op niveau 2 wordt al meer gebruik gemaakt van AI. Deze tools hebben de voordelen van niveau 1 en daarnaast zijn ze ook in staat om overeenkomsten te zien tussen wijzigingen. Deze wijzigingen kan de tool tevens groeperen.

Applitools is een voorbeeld van zo’n tool. Applitools is een uitbreiding voor java waar vanuit je je java code validaties aanroept. Deze tool is met name geschikt om lay-out, plaatjes en andere visuele aspecten te testen. Stel je hebt een website waarvan je de taal wilt veranderen van het Nederlands naar het Engels en alle pagina’s bevatten een knop om naar de volgende pagina te gaan. Alle knoppen, mogelijk vele tientallen, zullen dan veranderen van ‘Volgende’ naar ‘Next’. Bij een tool van niveau 1 zou je dus per knop moeten aangeven of het om een bevinding of wijziging gaat. Omdat Applitools herkent dat het om dezelfde verandering gaat op elke pagina kan deze die veranderingen groeperen zodat je maar één keer aan hoeft te geven of het om een wijziging of om een bevinding gaat. Het kunnen groeperen van deze veranderingen, bespaart je als tester heel veel tijd.

"Testtools die gebruik maken van AI zijn testtools die reageren op de omgeving, zelfstandig beslissingen nemen en zelflerend vermogen bezitten."

Niveau 3: Conditional AI automation

Naast functionaliteiten zoals het groeperen van veranderingen, kan een tool van niveau 3 bijvoorbeeld visuele afwijkingen herkennen. Zoals het veranderen van de positie van een knop op een scherm, of de kleur of de vorm van een knop. Bovendien kunnen deze tools afwijkingen in gegevens herkennen. Daarnaast zijn deze categorie tools in staat om al in grote mate te bepalen of het om een bevinding of een wijziging gaat, omdat de tool al veel testen tegen de applicatie heeft gedraaid.

MABL is een voorbeeld van een tool op niveau 3. Op basis van vele testen kan MABL bepalen of iets een bevinding of wijziging is. Neem bijvoorbeeld een website waarop boeken worden verkocht. Op een gegeven moment zijn er zoveel boeken van een bepaald soort waardoor besloten wordt een nieuwe categorie toe te voegen. Alle pagina’s met boeken erop die bij deze categorie horen, zullen dan, hiërarchisch gezien, onder de pagina met de categorie informatie geplaatst worden. Wanneer MABL dan opnieuw een test draait, begrijpt de tool dat het nog steeds dezelfde pagina’s zijn maar op een andere logische locatie. De test wordt door de tool vervolgens aangepast naar de nieuwe situatie.

Niveau 4: High AI automation

Op niveau 4 krijg je wederom de voordelen van alle voorgaande niveaus en daarnaast kunnen deze tools leren om pagina’s te herkennen. Doordat deze tools zoveel verschillende vormen gezien hebben van een bepaald type pagina, zijn ze in staat te leren herkennen. De tool kan dus een onderscheid gaan maken tussen bijvoorbeeld een inlogpagina, een pagina met productinformatie en een pagina met een winkelmandje waar je je bestellingen afrondt. Daarnaast begrijpt een tool van dit niveau dat een pagina onderdeel uitmaakt van een groter geheel. Als we even terugkijken naar het voorbeeld van de website voor boeken kunnen we ons voorstellen dat het bestellen van een boek uit meerdere processtappen bestaat:

  1. het selecteren van het boek;
  2. het toevoegen van het boek aan het winkelmandje;
  3. een scherm waarop controles worden uitgevoerd (om bijvoorbeeld te bepalen of een boek op voorraad is);
  4. een bevestigingspagina.

Stel we besluiten om het controlescherm er tussenuit te halen dan begrijpt zo’n testtool dat het stap 2 aan stap 4 moet knopen om weer tot een correct bestelproces te komen. De tool past de test dan aan zonder tussenkomst van de tester.

Een ander voorbeeld van wat een testtool met AI van niveau 4 kan, bijvoorbeeld Appvance AI, is het lezen en gebruiken van een applicatielog voor het genereren van testscripts. Omdat je als eigenaar van een commerciële website wilt weten wanneer klanten problemen ondervinden in het bestelproces en waar ze afhaken in het bestelproces, worden vaak meetpunten geplaatst op webpagina’s. Het gebruik van Google webanalytics is daar een goed voorbeeld van. In plaats van te raden wat de klant doet, of te vragen wat de klant doet, weet je nu wat de klant doet. Deze meetpunten kun je in de applicatielog laten vastleggen.

Een tool als Appvance AI gebruikt de logging en kan meetpunten zoals webanalytics gebruiken voor het genereren van testscripts. Het resultaat: testen die realistischer zijn en gebaseerd op hoe gebruikers de applicatie gebruiken en niet hoe we bedacht hebben dat de klanten de applicatie gaan gebruiken.

Niveau 5: Full AI automation

Wanneer we het hebben over Full AI automation, hebben we het over testtools die voor het merendeel uit AI technologie bestaan. Als product owner van een applicatie kun je dan een gesprek voeren met de AI waarin je uitlegt wat de applicatie doet en dat je deze getest wilt hebben. Dat lijkt misschien science fiction, maar het is dichterbij dan je verwacht. Nu al is Google assistant zo ver dat je als gebruiker de AI kan vragen om een afspraak bij de kapper in te plannen. De AI belt dan de kapper en maakt dan bij de medewerker van de kapsalon een afspraak. Google Assistant reageert autonoom op de vragen en reacties van de medewerker. Dus het idee van een AI test assistant is niet eens zo ver gezocht.

 

Zoals ook in de inleiding genoemd, bespreek ik in mijn vervolgblog hoe bovengenoemde tools de toekomst en de werkzaamheden van de tester beïnvloeden. Stay tuned!

Wil je ons nieuwste Paarsz magazine per post ontvangen? Laat dan je gegevens achter.

Bartosz_Header_004

Werken bij Bartosz?

Vincent Verhelst

Geïnteresseerd in Bartosz? Dan ga ik graag met jou in gesprek. We kunnen elkaar ontmoeten met een kop koffie bij ons op kantoor. Of tijdens ontbijt, lunch, borrel of diner op een plek die jou het beste uitkomt. Jij mag het zeggen.

Bijtanken bij Bartosz

Gamification

Jan25

Software testen is geen handwerk maar keihard denkwerk. We maken een mentaal model van hetgeen we aan het testen zijn en aan de hand daarvan gaan we op zoek naar hoe we dat model kunnen kraken. Belangrijke skills die je hierbij nodig hebt zoals Critical Thinking en Problem Solving kun je ontwikkelen.

Ben je in staat om je analytische vaardigheden in te zetten om een puzzel op te lossen of een algoritme te kraken? Kun je onder woorden brengen wat de oplossing was? En wat was je aanpak was om de uitdaging aan te gaan?

Zo kennen we verschillende vormen van Gamification binnen het testvak. De eerste Bijtanken bij Bartosz van 2019 laat zien welke spelvormen we daarbij inzetten en waarom we daar zoveel waarde aan hechten. Maar we gaan vooral ook doen!

Mijn Paarsz