Artificial Intelligence: Utopie of dystopie?
Deel 4: AI in software testing
Wat is de impact van AI op software development en testing?
De huidige golf van automatisering, ook wel de ‘vierde golf van de industriële revolutie’ genoemd, wordt voor een groot deel mogelijk gemaakt door ANI. Veel mensen zijn bang dat het voor veel banenverlies gaat zorgen. Waar automatiseringen vroeger vooral zorgde voor banenverlies onder laaggeschoolde, onpopulaire beroepen, ligt dat nu anders. Ook banen die veel denkwerk en zelfs creativiteit vergen kunnen op de tocht komen te staan. De vraag is dan ook hoe ver dit zal doorzetten en hoe we hier mee om zullen gaan als maatschappij. Én, niet geheel onbelangrijk, hoe zit dit eigenlijk met het test vak? Wat is eigenlijk de impact van AI op software development en testen?
Het is zeker mogelijk om AI’s in te zetten voor het ontwikkelen en testen van software. AI algoritmes hebben als voordeel dat ze niet aan scherpte verliezen wanneer ze lang bezig zijn, wat zorgt voor een hogere productiviteit en lagere foutmarges. Feit is wel dat alles op dit gebied in opdracht is van mensen met specifieke wensen. AI toepassingen werken momenteel op basis van grote hoeveelheden data, menselijke beslissingen, uitkomsten en algoritmes die door de mens zijn ingeladen. AI’s zijn goed in staat om kloppende code te schrijven, maar het belangrijkste is natuurlijk de ‘wat’ vraag: wat moet er gemaakt worden. Deze kan een AI moeilijk zelf invullen. Het is natuurlijk goed mogelijk dat er grote hoeveelheden data beschikbaar komen van wat mensen prefereren en belangrijk vinden in hun software. Dit gaat dan echter alleen op voor bestaande concepten. Wanneer je iets compleet nieuws wilt ontwikkelen is dat lastiger.
Dit geldt niet alleen voor het ontwikkelen maar ook voor het testen van software. Een AI is goed in staat om zelf geautomatiseerde testen uit te voeren en bugs in de code te ontdekken. Het probleem is echter dat de AI niet eenvoudig kan identificeren wat gewenst en ongewenst gedrag is van de software, omdat dit vanuit menselijk perspectief komt. Ook is het voorlopig nog niet goed in te schatten voor kunstmatige intelligentie waar de echte risico’s liggen. Er zullen dus mensen nodig blijven als supervisor om deze algoritmes te trainen en bij te sturen wanneer nodig, zodat ze er van kunnen leren. Ook is het de vraag hoe een AI om kan leren gaan met false positives. In hoeverre de AI autonoom kan testen is ook afhankelijk van hetgeen dat er getest moet worden. Als we dit reflecteren op de ISO 25010 dan kan het per hoedanigheid verschillen hoe geschikt het is om een AI op los te laten. Zo kan het zijn dat een AI zich bijvoorbeeld heel goed raad weet met het testen van de performance van een systeem. Ook kan een AI goed bijdragen aan het bevorderen van de beveiligbaarheid, door zelf actief op zoek te gaan naar zwakheden in het systeem. Een wat subjectievere hoedanigheid als leerbaarheid of gebruiksgemak zal lastiger zijn voor een AI om zich volledig eigen te maken. Dit is namelijk afhankelijk van doelgroepen en van persoonlijke voorkeur. Wellicht zullen AI’s op den duur overal wel in uitblinken, wanneer de technologie en algoritmes erachter zo geraffineerd zijn dat ze in staat zijn accuraat de verwachte uitkomsten kunnen voorspellen. Tot die tijd zullen we het moeten beschouwen als een kans en een aanvulling op onszelf waarmee we tot ongekende resultaten kunnen komen.