Mensen zijn slim en creatief genoeg om relatief snel een nieuw product te bedenken. Vervolgens te ontwerpen, bouwen en na een geslaagd testproces op de markt te brengen. Eigenlijk maakt het dan niet uit of je een softwareoplossing programmeert of het volgende vliegtuigmodel ontwerpt. Inmiddels zijn in het testproces steeds meer handzame processen ingeruild voor geautomatiseerd testen. Toch is ook dat op termijn niet meer voldoende.
Testen verandert. Zo wint de inzet van kunstmatige intelligentie (artificial intelligence – ai) steeds meer terrein. Sterker nog, we kunnen straks niet meer zonder. Complexiteit, snelheid en explosieve groei van data zorgen ervoor, dat we wel aan de slag moeten met kunstmatige intelligentie. Want weet waar het slimme algoritme allemaal toe in staat is.
Complexiteit neemt toe
Producten worden steeds complexer van samenstelling. In de mechanische wereld is embedded software niet meer weg te denken. Een lopende band is helemaal te programmeren en te configureren met software. Andersom zit in de softwarewereld steeds meer ‘high tech’. Zo krijg je bij het afsluiten van een autoverzekering een kastje meegeleverd die jouw rijgedrag bijhoudt.
Een complex product wordt opgebouwd uit ´simpele´ bouwblokken. De tester creërt het testproces op een vergelijkbare manier. Kleine simpele testscenario´s kunnen delen van het systeem aan de tand voelen. Bij een complex product groeit het aantal testgevallen harder dan het aantal systeemonderdelen. Zo is de combinatie van testgevallen oneindig bij het testen van een robot. Om maar een voorbeeld te noemen. Het valt niet mee om de meest relevante keten van testscenario´s te maken. En dan ook nog een bijbehorend resultaat met de hand vaststellen, is onmogelijk.
Versnellen
Los van deze beperkingen, kost het uitvoeren van grote aantallen testgevallen uiteraard veel tijd. Die tijd is er simpelweg niet. De marketeer wil sneller dan ooit zijn product op de markt brengen. Snelheid betekent minder zorgvuldigheid.
Fouten in producten is ook geen optie. Dat zorgt alleen maar voor reputatieschade. En we willen veel updates naar producten kunnen sturen. Dat betekent goede producttesten voordat een update wordt uitgebracht. Daar schuurt het flink. Veel testen en snel lanceren gaat niet samen.
Data groeit
De opkomst van internet of things (IoT) zorgt ervoor dat producten allerlei data kunnen verzamelen. Gegevens te gebruiken voor het product. Tegelijkertijd kan die data ook dienst doen in het testproces.
Productgedrag, configuraties en andere informatie is allemaal nuttig om zo dicht mogelijk de werkelijke situatie te benaderen. Daar schuilt eveneens een gevaar. Met de snel groeiende berg aan testdata zien we het bos tussen de bomen niet meer.
De oplossing
Inzet van kunstmatige intelligentie zorgt ervoor, dat we veel sneller en nauwkeuriger kunnen testen. Kunstmatige intelligente helpt ons op drie vlakken die onze menselijke pet te boven gaan.
Ten eerste kan kunstmatige intelligentie alle complexiteit de baas. Een zelflerend mechanisme zorgt voor een eindeloos aantal ketens van testgevallen. Bovendien leert het algoritme het bijbehorende resultaat te voorspellen.
De zelflerende technologie maakt de juiste keuzes voor het uitvoeren van testgevallen. Een robot leert immers welke wijzigingen welke impact hebben. Binnen een mum van tijd worden de juiste testgevallen geselecteerd.
Tenslotte is kunstmatige intelligentie in staat grote hoeveelheden data te filteren. Het zelflerende systeem weet welke situaties in het echt veel voorkomen. Het slimme dashboard wijst je de weg door grote hoeveelheden testresultaten. Daarmee zie je direct waar echt iets aan de hand is.
Kortom, het is een kwestie van tijd dat testen zonder een vorm van kunstmatige intelligentie niet meer weg te denken is bij de ontwikkeling van nieuwe digitale producten.
Tom van de Ven, senior test consultant bij Sogeti
Voorlopig is het net als de autonome automobiel, het is nog een soort utopisch scenario. Het probleem zit in de interfaces, daar is zo maar geen AI toepasbaar, terwijl de meeste systemen gekoppeld worden aan externe applicaties en diensten. In een homogene applicatieve infrastructuur is AI een mogelijke optie om mee te experimenteren.
AI applicaties worden om ons heen al ingezet (soms zonder dat we dat herkennen als zodanig of in erg primitieve vorm). Het testen van AI is daarmee een hot topic. Testen met AI is dan ook niet ver weg. AI in testen kan al simpel ingezet worden als testcase-selector, parameters van een testomgeving bepalen of door grote hoeveelheden testresultaten correlaties zoeken.
IoT oplossingen kenmerken zich door een oneindig aantal mogelijke connectie-scenario’s. Ik denk dat we daar al snel niet meer zonder AI kunnen testen 🙂