Ik krijg steeds meer moeite met wat ik lees over de gevaren
van AI. Niet omdat ik geen gevaren zie. Die zie ik, die ervaar ik elke keer als
ik met AI werk. Maar omdat ik steeds meer tunnelvisie zie. Ik heb steeds meer
het gevoel dat, als het om AI aankomt, we deze beoordelen vanuit wat we verwachten
dat er misgaat. Ik zie steeds minder een echte objectieve blik.
Laat me vanuit testperspectief een voorbeeld geven. Ik ontken
absoluut niet dat b.v. security testing of performance testing belangrijke testen
zijn. Dit zijn beide vormen van testen, waarbij je bewust probeert een
applicatie te laten falen. Maar als deze testen tegenvallen, zal je als tester
nooit zeggen dat de applicatie functioneel niet werkt. Dit gebeurt bij AI wel.
Als AI bewust getest wordt op hallucinaties, bias of andere bekende fouten, is
dat zeker een goede ontwikkeling. Wat geen goede ontwikkeling is, dat als we de
AI vervolgens onder deze bewust uitgevoerde testen op hallucinatie of bias
betrappen, we gaan beweren dat de AI functioneel niet goed werkt. Er is een
groot verschil tussen een applicatie die bij normaal gebruik al performance
problemen heeft en een applicatie die onder extreme omstandigheden bezwijkt.
Net zo goed zouden we een verschil moeten zien tussen AI die bij normaal
gebruik last heeft van hallucinaties en een AI die onder extreme omstandigheden
last heeft van hallucinaties.
Een ander voorbeeld: een goede tester heeft een basis set
aan testkennis. Hij of zij weet waar een gemiddelde applicatie op kan falen. En
als je begint bij een nieuw bedrijf is dat je startpunt. Maar een goede tester
weet ook iets anders: elk bedrijf heeft zijn eigen type kwaliteitsproblemen.
Dit is afhankelijk van de hoeveelheid beschikbare documentatie, de ervaring van
de developers, de mate van samenwerking, de druk in de organisatie, het domein
van het bedrijf. Dus naast de algemene risico’s kijk je als tester ook naar de
voor het bedrijf specifieke risico’s.
Zo gaan we, zelfs als testers, niet met AI om. Ik zie geen
artikelen over wat de gevaren van AI voor testers zijn. Ik zie geen artikelen
over wat voor problemen AI kan geven binnen b.v. testautomatisering. Dus ik ben
zelf met een testpet AI ingedoken en heb drie experimenten gedaan.
Experiment 1 Testers bewust laten worden van de gevaren van AI
Ik heb AI gevraagd om experimenten te bedenken, waarmee testers
zelf kunnen ervaren wat de gevaren van AI zijn. Hierop was de eerste reactie
buitengewoon van slechte kwaliteit. De gegeven experimenten zouden misschien
een paar jaar geleden inderdaad falen, maar de huidige AI’s zijn al lang
getraind om dit soort problemen zoveel mogelijk te voorkomen. Je zag een
duidelijke trend naar veel gegeven risico’s over een lange periode van tijd. Terwijl
je voor een juiste antwoord van dit onderwerp moet kijken naar de veel gegeven
antwoorden van, laten we zeggen, het afgelopen jaar. Nadat de AI hierop gewezen
was, werd het antwoord al wel beter.
Experiment 2 Informatie vragen over een bedrijf waar niet al te veel informatie
over is
Het bedrijf waar ik voor werk is niet zo groot, dus uitstekend
geschikt om te kijken hoe een AI omgaat met een onderwerp waar weinig
informatie over is. Het probleem van langere periode kwam hier weer
gedeeltelijk terug. Informatie van jaren terug werd gebracht alsnog steeds van
toepassing op deze tijd. Hier was in beperkte mate ook sprake van
hallucinaties. Zo wist die niet goed te achterhalen welke medewerkers het
laatst begonnen zijn, terwijl dit wel te vinden is. Maar waar ik dit eigenlijk
startte met een verwachting dat weinig informatie zou leiden tot verzonnen informatie
of informatie uit onbetrouwbare bronnen, kwam het grootste risico ergens anders
op uit. De conclusies die AI trok, waren regelmatig gebaseerd op correcte
bronnen en waren gebaseerd op feiten. Maar de conclusies waren gebaseerd op
veel te weinig informatie. Je kan niet aangeven wat het aannamebeleid is van
een bedrijf op basis van twee aangenomen medewerkers. Je kan geen uitspraak
over een bedrijf doen op basis van 1 review. Dat is wel precies wat ik waarnam.
Experiment 3 Testcases genereren
Naar aanleiding van bovenstaande onderzoeken werd ik
nieuwsgierig: hoe goed is AI nu met testcases genereren. Specifiek wilde ik
twee onderwerpen onderzoeken:
1.
Is er verschil in kwaliteit als je een AI een
volledige omschrijving geeft van wat je wil testen v.s. een specifiek onderwerp
vraagt?
2.
Is er verschil in kwaliteit als je een algemene
AI vraagt om een test v.s. een gespecialiseerde AI
De tweede geef ik wat toelichting. We hebben, in principe
terecht, steeds meer de neiging om AI te gebruiken binnen een AI die voornamelijk
geïsoleerd kijkt naar informatie van een bepaald bedrijf. Dit om het mogelijk
te maken om bedrijfsgevoelige informatie te delen bij het gebruik van AI. Wat
ik me af begon te vragen is of dit effect kan hebben op de kwaliteit van de
test cases.
Voor de duidelijkheid: ik heb dit niet echt getest met een
AI die specifiek voor een bedrijf is ingericht. Daar heb ik geen toestemming
voor. Ik heb een gespecialiseerde AI genomen, in dit geval een AI
gespecialiseerd in het samenstellen van mocktails. Wat voor mij enigszins
vergelijkbaar is met een bedrijf, waar het merendeel van de informatie niet getraind
is op testdata, maar op bedrijfsspecifieke informatie. Deze specialistische AI
heb ik gevraagd om testcases te maken voor een app, die voorstellen doet voor
mocktails. Datzelfde heb ik vervolgens gevraagd aan een niet specialistische
AI. De specialistische AI scoorde veel hoger op domein gerelateerde antwoorden,
maar veel lager op algemene kwaliteitstestcases. Wat mij doet zeggen: laten we
als testers eens onderzoeken of we werkelijk alleen een AI moeten gebruiken, die
werkt binnen een bepaald bedrijfsdomein.
Volledige omschrijving v.s. specifiek onderwerp was ook heel
interessant. Wat ik zag is dat de AI op basis van de prompt in de meeste
gevallen een aandachtsgebied bepaalde. Zo werd bij een mobiele applicatie voor
vergelijkingen de nadruk van de testcases gelegd op vergelijken, niet op
mobiele applicaties. En als je een scherm omschreef dat een IBAN-veld bevatte
kreeg je meer hoog niveau testcases, dan als je specifiek vroeg een IBAN-veld
te testen. En als je dan werkelijk je AI-onzin wil laten uitkramen, moet je hem
vragen waarom hij de ene keer testcases niet noemt en de andere keer wel. Die
redenaties stonden vol van aannames, die niet klopten. Zo gaf hij aan dat een IBAN-veld
als enige op een scherm strengere controle vereist dan een IBAN-veld in een
algemeen formulier. Een redenering die misschien waar kan zijn, maar in heel
veel gevallen hebben IBAN-velden echt dezelfde controles, ongeacht met hoeveel
velden ze gecombineerd staan.
Conclusie
In mijn ogen wordt het tijd dat we wakker worden voor
de echte gevaren van AI. En hier zie ik zeker een rol van testers weggelegd,
omdat vele van ons al gewend zijn om het risico bepalen niet alleen te baseren
op de theorie, maar ook op onze eigen ervaringen. Laten we, voor we AI inzetten
voor iets, eerst controleren in hoeverre AI geschikt is voor de wijze waarop
wijzelf het willen gaan gebruiken. Net als we doen als we een ander tool in
gebruik nemen, b.v. een testautomatiseringstool of een bevindingentool. Laten
we af en toe een expert vragen om naar een resultaat te kijken. En laten we beseffen
wat we testen en hoe we testen als we AI testen. Testen op extreme situaties is
waardevol, maar hetzelfde is testen op normaal gebruik. Testen op algemene
problemen is waardevol, maar hetzelfde is testen op domein of bedrijfsspecifieke
problemen. Laten we ons, zeker als tester, bij AI ook als ervaren testers
gedragen.