Tosca & AI
Deze blog is de eerste in de serie 'Tosca & AI'. In de komende serie zal ik praktische voorbeelden introduceren van het gebruik van AI (Artificial Intelligence) in testen (inclusief automatisering), vooral wanneer Tosca wordt gebruikt. Elke blog zal een specifieke vraag over Tosca en AI beantwoorden en soms vergelijken met andere testtools.
ChatGPT
Sinds de wereldwijde introductie van ChatGPT afgelopen november (2022), heeft de wereld van AI met betrekking tot testen en ontwikkeling een 'revolutionaire' verandering en transformatie doorgemaakt. Waarom 'revolutionair'? Testen met behulp van AI en ontwikkeling was al een snel evoluerend gebied met regelmatig vele vooruitgangen. AI-modellen zoals GPT-1, 2 of 3 bestonden al en werden gebruikt voor een verscheidenheid aan toepassingen zoals natuurlijke taalverwerking, beeldherkenning en besluitvormingssystemen. En met de introductie van ChatGPT aan het publiek zijn de mogelijkheden nu eindeloos. Een van de grote uitdagingen is dat het testen en ontwikkelen van deze modellen een aanzienlijke hoeveelheid rekenkracht en expertise op het gebied van machine learning en data science vereist. Maar de ervaring leert dat de wereldwijde (online) community zeer flexibel is en oplossingen zal vinden voor deze uitdagingen.
Testim AI en Tosca
Laten we verder dieper duiken in de wereld van AI en testautomatisering! Vooral de vergelijking tussen Tosca en Testim. We weten dat Testim en Tosca beide softwaretesttools zijn, maar ze verschillen op verschillende manieren. Testim is een testautomatiseringsplatform in de cloud, dat is ontworpen om AI te gebruiken in testprocessen en zich richt op webapplicaties. Bovendien maakt het gebruik van natuurlijke taalverwerking en machine learning om testgevallen te begrijpen en geautomatiseerde testscripts te genereren. Het platform is, net als Tosca, ontworpen om gemakkelijk te gebruiken te zijn en vereist geen programmeerkennis. Het integreert ook gemakkelijk met verschillende CI/CD-tools. Niet onbelangrijk om te vermelden is dat Testim gedeeltelijk gratis te gebruiken is ("Community" versie). Aan de andere kant is Tosca een testautomatiseringstool op enterprise-niveau die de testen van zowel web- als desktoptoepassingen ondersteunt. Tosca maakt gebruik van de zogenaamde "model based” aanpak voor testautomatisering, wat betekent dat het modellen van de toepassing en de componenten creëert om testgevallen te genereren. Omdat Tosca verschillende soorten testen ondersteunt en functies biedt zoals testdatamanagement en rapportage, is het veel meer een "Alles-in-1" oplossing. Over het algemeen ondersteunen beide tools een specifiek niveau van AI in testen, waarbij de zogenaamde “Self-healing” functie een heel goed voorbeeld is.
Self-healing
Een van de veel voorkomende problemen die "Self-healing" kan aanpakken, is dat testers te maken hebben met dynamische ID's en locators bij het testen van webapplicaties. Dynamische ID's zijn identificatoren die telkens wanneer een pagina wordt geladen of vernieuwd, veranderen, terwijl locators de code zijn die wordt gebruikt om een element op een webpagina te identificeren, zoals een invoerveld of een knop. Dynamische ID's en locators kunnen een uitdaging vormen voor testers omdat het moeilijk kan zijn om betrouwbaar elementen op een webpagina te lokaliseren en ermee te communiceren. Wanneer ID's en locators dynamisch veranderen, kunnen geautomatiseerde tests die afhankelijk zijn van deze zogenaamde “identificatoren” falen of onverwachte resultaten opleveren, wat kan leiden tot “false positives” of “negatives”.
Om dit probleem op te lossen kunnen testers verschillende technieken gebruiken om elementen te identificeren, zoals het gebruik van relatieve locators, XPath-expressies of CSS-selectors. Ze kunnen ook tools gebruiken die elementen kunnen identificeren op basis van hun visuele eigenschappen, zoals hun grootte, positie of kleur. Over het algemeen vereist het omgaan met dynamische id's en locators dat testers vindingrijk en flexibel zijn en een combinatie van tools en technieken gebruiken om ervoor te zorgen dat hun tests betrouwbaar en nauwkeurig zijn. De functie "Self-healing" biedt ondersteuning voor dit soort problemen. Een van de grote voordelen van "Self-healing" ligt dan ook op het gebied van refactoring en onderhoud. Problemen worden gedetecteerd op basis van AI en automatisch opgelost zonder (directe) menselijke interactie. In onderstaande geanimeerde figuur 1 zie je de "Self-healing" functie in actie met Testim.
figuur 1
Tosca AI vison engine
Tosca heeft een extra AI-functie, de zogenaamde "VisionAI" engine, voor slimme of "intelligente" scanmodules bij het ontwerpen van testcases. Vanaf Tosca versie 14.3 is het mogelijk om testcases te maken, zelfs zonder dat de code van een (web)applicatie is geschreven of gebouwd. Houd er rekening mee dat Tosca nu op versie 16 patch 1 zit (op het moment van schrijven van dit artikel). Dat betekent dat Tosca versies 14 en 15 nog wat "kinderziektes" zullen hebben met betrekking tot VisionAI. De meeste Tosca-experts weten dat Tosca met VisionAI nog geen groot succes is. Ondanks dat, is de VisionAI-engine een krachtige feature bij het ontwikkelen van tests. Veel testers en ontwikkelaars kennen het zogenaamde "Shift-Left" principe. Met dat principe in gedachten kan VisionAI theoretisch gezien nog verder gaan richting "Extreme Shift-Left".
Hoe begin ik met Tosca VisionAI?
Ten eerste maakt de VisionAI-engine deel uit van het standaard Tosca Test Suite-installatieproces, er is een optie om deze specifieke functie te installeren of niet. Laten we ervan uitgaan dat je geen Tosca-beheerder bent en je VisionAI wilt gebruiken. Dan moet je toegang krijgen via jouw organisatie of project. De "organisatie" moet een VisionAI geldige/actieve account hebben in de Tricentis User Administration (TUA). De TUA is een “server based” gebruikersadministratie service (Tosca server feature) en maakt het mogelijk dat een organisatie gebruikers en groepen centraal kan beheren. Bovendien zal de Tosca-licentiebeheerder alle gebruikers van de organisatie registreren en aanmelden wanneer ze VisionAI willen gebruiken. Zie voor meer informatie, de link onderaan het artikel. Nadat je VisionAI hebt geïnstalleerd en succesvol bent geregistreerd, kun je Tosca gebruiken zoals je normaal gesproken deed.
VisionAI werkt op verschillende niveaus, van het ontwerpen van testcases tot refactoring. Over het algemeen kun je de werking van VisionAI onderverdelen in 3 niveaus:
- Testvoorbereiding
- Testuitvoering
- "Self-healing"
Met betrekking tot testvoorbereiding, gebruikt VisionAI zogenaamde “computer vision” algoritmes om de GUI te analyseren en de verschillende grafische elementen te identificeren, zoals knoppen, velden en menu's. Op basis van deze analyse genereert het een model van de GUI en maakt het testcases die gebruikersinteracties simuleren. Bovendien gebruikt de VisionAI-engine tijdens de testuitvoering zijn GUI-model om gebruikersinteracties zoals kliks, invoer en selecties te simuleren. Vervolgens valideert het of de applicatie correct op deze acties reageert en rapporteert eventuele bugs of issues. Ten slotte heeft de VisionAI-engine ook een “Self-healing” capaciteit die eventuele testfouten veroorzaakt door wijzigingen in de GUI, zoals lay-out- of kleurveranderingen, automatisch kan oplossen. Hierbij maakt het gebruik van beeldvergelijkingsalgoritmen om deze veranderingen te detecteren en past op basis van die gegevens zijn model en testcases aan. Hoe passen we dit (als Tosca test engineer) toe in de praktijk?
Laten we starten met een praktisch voorbeeld! Stel je voor dat een multinational een nieuwe verzekeringswebsite wil maken om de interactie met hun klanten beter te beheren. Om het succes van het project te waarborgen, wordt een team van experts samengesteld om een blauwdruk (blueprint) voor de website te maken. Dit team bestaat uit een Tosca test engineer, een functioneel ontwerper, een architect en een business analist. Eén van de eerste blauwdrukken die het team oppakt (voor de komende sprints) is een loginpagina met een nieuw dynamisch ontwerp. Hoe ziet deze blauwdruk of mock eruit? In figuur 2 zie je een voorbeeld van deze mock.
Figuur 2
Nadat er een definitief besluit is genomen om de bovenstaande mock-up als blauwdruk te gebruiken, kan de Tosca test engineer al beginnen met het ontwerpen van een test. Hierbij hoeft geen ontwikkelaar of een infra-team direct betrokken te zijn, m.a.w. diegenen die respectievelijk de applicatie ontwikkelen en een testomgeving opzetten. Over "Extreme Shift-Left" gesproken....Dan komt de kracht van de VisionAI-engine in beeld.
In Tosca Commander kan de mock (afbeelding van het ontwerp) fungeren als een tijdelijk “System Under Test” (SUT). Vervolgens zal de Tosca test engineer XScan gebruiken om de mock te scannen (in dit geval "login.jpg"), en VisionAI selecteren als de engine voor het ontwerpen van testcases (figuur 3 Vision AI engine).
Figuur 3
Wanneer je begint met scannen, kan het volgende bericht verschijnen, zie onderstaande figuur 4 "Vision AI Engine" bericht.
Figuur 4
In dat geval klik je op "Continue". Laten we het verder simpel houden! Voor dit voorbeeld TestCase kun je ervoor kiezen om uitsluitend het "e-mail" veld, het "wachtwoord" veld en de groene "sign in" knop te scannen. Het bijzondere van de VisionAI-engine is dat hij het beeld (afbeelding / blueprint) daadwerkelijk "ziet" als een login-scherm met verschillende front-end componenten, dus het identificeert de 3 attributen, te weten, 2 tekstvelden en 1 knop (figuur 5 VisionAI module attributen).
Figuur 5
Nadat de scan is voltooid, wordt de "login" VisionAI-module opgeslagen alszijnde een "reguliere" Tosca-module op basis van "reguliere" engines waar je al bekend mee bent, zie figuur 6 Opgeslagen VisionAI “login” module hieronder.
Figuur 6
Let op dat in de "Properties" sectie de parameter "Engine" de waarde "Vision AI" heeft. De volgende stap is een “drag and drop” actie van de "login" module naar de TestCases sectie/map. In onderstaande voorbeeld wordt een testscenario gemaakt op basis van een succesvolle login ("happy flow"), zie figuur 7.
Figuur 7
En tot slot kun je, zonder een testomgeving of SUT op te zetten, de Login TestCase uitvoeren in Tosca's Scratchbook. Dat betekent dat de VisionAI-engine de test zal uitvoeren tegen een mock, gebaseerd op een afbeelding/blueprint (figuur 8).
Figuur 8
Zodra de ontwikkelaar de "login" functionaliteit van de verzekeringsapplicatie heeft gebouwd, is dezelfde "VisionAI" Login TestCase al beschikbaar en stabiel genoeg om te testen tegen de werkelijke “real-time” inlogpagina. Dit klinkt toch geweldig?
Wil je meer weten over Tosca AI, Self-healing of AI?
Meer informatie is te vinden hieronder of blijf mijn blogs in de gaten houden!
Gebruikte bronnen in deze blog
Verder groeien in Tosca?
Wil jij iedere dag leren en kunnen sparren met vakgenoten over bijvoorbeeld Tosca of andere testautomationtoolings?
Neem gerust contact op, ik vertel je er graag meer over.
Of bekijk onze vacatures in Tosca.
Vacatures in Tosca