Beperkingen van kunstmatige intelligentie: Het kan zijn eigen resultaten niet zelf evalueren.
Ontdek waarom kunstmatige intelligentie haar eigen prestaties niet kan evalueren. Begrijp de beperkingen van haar huidige mogelijkheden en het belang van menselijk toezicht voor haar toekomstige ontwikkeling.
De belangrijkste dingen die je moet weten
- Om de kwaliteit van AI-output te waarborgen, moet het testproces onafhankelijk en herhaalbaar zijn, aangezien generatieve modellen inconsistente resultaten kunnen opleveren en blinde vlekken kunnen creëren die moeilijk zelf te detecteren zijn.
- Functionele tests alleen zijn niet voldoende om de gebruikerservaring te garanderen; visuele verificatie is noodzakelijk om de nauwkeurigheid van de uiteindelijke interfacepresentatie te beoordelen, inclusief lay-out, inhoud en gebruiksgemak, om ervoor te zorgen dat wat de gebruiker ziet overeenkomt met wat hij of zij verwacht.
- In gereguleerde omgevingen is herhaalbare en controleerbare softwaretesten vereist om betrouwbaar bewijs van naleving te leveren. De variabiliteit in AI-uitkomsten tussen opeenvolgende uitvoeringen maakt het namelijk noodzakelijk om deterministische controles te hebben om vast te stellen wat er is getest, wanneer en waarom.
Kunstmatige intelligentie verandert in hoog tempo de manier waarop software wordt ontworpen, geschreven en getest. Ontwikkelteams kunnen nu AI gebruiken om code te genereren, testcases te maken, potentiële defecten te identificeren en repetitieve kwaliteitsborgingstaken te automatiseren met een snelheid die een paar jaar geleden nog ondenkbaar leek.

Deze snelheid is van grote waarde, maar creëert tegelijkertijd een nieuw probleem op het gebied van kwaliteitscontrole.
Wanneer dezelfde technologie wordt gebruikt voor zowel het ontwikkelen als het valideren van software, lopen organisaties het risico een vicieuze cirkel van wantrouwen te creëren . Een AI-model kan code genereren op basis van een bepaalde interpretatie van een vereiste, en vervolgens tests genereren op basis van diezelfde interpretatie. Als de oorspronkelijke aanname onjuist is, kunnen zowel de code als de test consistent zijn, terwijl ze niet voldoen aan de behoeften van de gebruiker.
Met andere woorden, kunstmatige intelligentie kan niet als enige de eigen prestaties beoordelen. Het is daarom volstrekt onverstandig om er volledig op te vertrouwen.
Dit is geen argument tegen AI-ondersteunde ontwikkeling. Fouten, storingen en inconsistente resultaten zijn te verwachten bij een technologie die nog in ontwikkeling is. Ik heb zelf ervaren hoe deze fouten en storingen zich kunnen voordoen. De cruciale vraag is of organisaties beschikken over autonome mechanismen om deze storingen te detecteren voordat ze klanten, medewerkers of kritieke bedrijfsprocessen beïnvloeden.
Gedeelde aannames creëren gedeelde blinde vlekken.
Traditionele softwarekwaliteitsborgingsprocessen erkennen al de waarde van het scheiden van ontwikkeling en testen. Degenen die een systeem bouwen, kennen het door en door, maar deze vertrouwdheid kan het moeilijk maken om de aannames waarop het is gebouwd ter discussie te stellen. Onafhankelijke testers benaderen hetzelfde systeem vanuit een ander perspectief ; ze kijken niet alleen naar wat het programma zou moeten doen, maar ook naar de kans dat het faalt.
Hetzelfde principe geldt voor kunstmatige intelligentie.
Modellen die getraind zijn op vergelijkbare data, dezelfde eisen krijgen of in dezelfde ontwikkelomgeving werken, kunnen dezelfde blinde vlekken vertonen. Een model dat een functionaliteit genereert, kan een onduidelijke eis, een ongebruikelijk gebruikerstraject of een apparaatspecifieke randvoorwaarde negeren. Een tweede model dat de taak heeft om die functionaliteit te testen, kan deze omissie vervolgens versterken in plaats van aan het licht te brengen.
Dit wordt bijzonder riskant wanneer door AI gegenereerde tests als kwaliteitsbewijs worden beschouwd, simpelweg omdat ze succesvol functioneren. Een geslaagde test bevestigt slechts dat aan de testvoorwaarden is voldaan. Het bewijst niet dat die voorwaarden volledig, onafhankelijk of betekenisvol waren.
Het resultaat kan een systeem zijn dat technisch consistent is, maar in de praktijk gebrekkig.
De fundamentele tegenstelling tussen generatieve AI en formele softwarekwaliteitsborging ligt in de herhaalbaarheid. Moderne AI-programmeurs zijn ontworpen om te genereren en zich aan te passen. Dat wil zeggen dat ze, gegeven een ogenschijnlijk identiek doel, verschillende stappen kunnen kiezen, andere tools kunnen gebruiken, de context op verschillende manieren kunnen interpreteren en niet-identieke code of tests kunnen produceren.
Dit komt niet altijd doordat het systeem tijdens elke run leert; het is ook een gevolg van probabilistische generatie, contextveranderingen en modelontwikkeling. Deze variabiliteit kan zeer nuttig zijn wanneer teams oplossingen onderzoeken, maar het is in strijd met een fundamenteel principe van kwaliteitsborging (QA). Een gecontroleerde test moet namelijk reproduceerbaar zijn met dezelfde versie, onder dezelfde omstandigheden, met duidelijk gedefinieerde verwachte resultaten en bewijs van succes of mislukking.
Zonder deze controle beschikken organisaties mogelijk alleen over AI-activiteiten in plaats van echte zekerheid, en resultaten die weliswaar redelijk lijken, maar niet betrouwbaar kunnen worden gereproduceerd, gemeten, gecontroleerd of verdedigd.
Carrièresucces is niet hetzelfde als gebruikerssucces.
Veel geautomatiseerde tests evalueren software aan de hand van signalen op codeniveau. Ze controleren of de service de verwachte respons retourneert, of de pagina een specifiek element bevat, of dat een knop kan worden gevonden via een identifier of selector.
Deze tests zijn belangrijk, maar ze zijn niet hetzelfde als het verifiëren van de gebruikerservaring. Een test kan bijvoorbeeld de aanwezigheid van een knop bevestigen, zelfs als deze achter een ander element verborgen is. Ook kan een test controleren of een veld tekst bevat, zonder te beseffen dat de tekst is afgekapt, op de verkeerde plaats wordt weergegeven of op een manier is opgemaakt waardoor deze onleesbaar is.
De test kan een lijst vinden die technisch gezien wel bestaat, maar ontoegankelijk is op een kleiner scherm. Ook kan de test bevestigen dat een transactie is voltooid, terwijl er over het hoofd wordt gezien dat de bevestiging die aan de gebruiker wordt getoond een onjuist bedrag, rekeningnummer of status bevat.
Vanuit het perspectief van het systeem functioneerde de software mogelijk correct. Vanuit het perspectief van de gebruiker faalde het echter.
Dit onderscheid is belangrijk omdat moderne digitale diensten steeds vaker afhankelijk zijn van complexe combinaties van applicatiecode, browsergedrag, besturingssystemen, schermformaten, externe desktops, virtuele omgevingen en componenten van derden.
Elke wijziging in een van deze lagen kan de weergave op het scherm veranderen zonder dat dit noodzakelijkerwijs leidt tot een mislukking van een traditionele functionele test. De test moet daarom niet alleen onderzoeken wat het platform rapporteert, maar ook wat de gebruiker daadwerkelijk ziet en kan doen.
Waarom is visuele verificatie belangrijk?
Visuele verificatie van de gebruikersinterface biedt een onafhankelijk perspectief, omdat het de uitkomst test die aan de gebruiker wordt getoond in plaats van uitsluitend te vertrouwen op de interne structuur van de applicatie.
Deze onafhankelijkheid is cruciaal. Codegebaseerd testen is vaak afhankelijk van kennis van het te testen systeem: zoals object-ID's, documentstructuren, toegankelijkheidslabels, API's of verwachte datarespons. Visuele verificatie daarentegen kan de uiteindelijke interface evalueren zoals deze aan de gebruiker wordt gepresenteerd, inclusief lay-out, positionering, inhoud, status en bruikbaarheid in verschillende omgevingen.
Visuele verificatie is geen aparte fase in softwarekwaliteitsborging en vervangt ook geen functionele, integratie-, beveiligings- of prestatietests. Integendeel, het wordt toegepast in alle kwaliteitsborgingsafdelingen waar de gebruikersinterface wordt ontworpen, gebouwd, aangepast of getest – van individuele componenten en controles op unitniveau, via integratie- en systeemtests, tot gebruikersacceptatietests.
Functionele testen bevestigen dat het proces correct is voltooid; visuele verificatie bevestigt dat het resultaat nauwkeurig en consistent wordt weergegeven en bruikbaar blijft. Betrouwbare kwaliteitsborging vereist beide gedurende de gehele ontwikkelingscyclus.
Deze behoefte wordt steeds duidelijker naarmate het aandeel softwarewijzigingen dat door kunstmatige intelligentie wordt gegenereerd, toeneemt. AI-tools kunnen snel code produceren, maar deze snelheid verhoogt het volume en de frequentie van wijzigingen die kwaliteitsteams moeten beoordelen. Zonder een kwaliteitsborgingslaag die zich richt op de gebruikerservaring, kunnen fouten sneller door de leveringsketen sijpelen dan organisaties ze kunnen detecteren.
Visuele verificatie fungeert als een waarborg om de kloof tussen technische implementatie en menselijke ervaring te overbruggen.
Door iteratie wordt automatisering een betrouwbare leidraad.
Kunstmatige intelligentie is effectief in het genereren van ideeën, scripts en potentiële testscenario's. De output kan echter variëren tussen opeenvolgende uitvoeringen. Een model kan dezelfde instructies anders interpreteren, afhankelijk van de context, configuratie of waarschijnlijkheidsvariatie. Deze flexibiliteit kan nuttig zijn tijdens de verkenningsfase, maar is niet voldoende om formele kwaliteit te garanderen.
De test die wordt gebruikt om een softwareversie goed te keuren, moet reproduceerbaar zijn. Dezelfde invoer moet leiden tot dezelfde actie, dezelfde controlepunten en dezelfde criteria voor slagen/falen. Teams moeten kunnen aangeven wat er is getest, wanneer het is getest, welke versie van de applicatie erbij betrokken was en waarom het resultaat is geaccepteerd.
Kunstmatige intelligentie is effectief in het genereren van ideeën, scripts en potentiële testscenario's, maar generatieve en agentische systemen zijn niet inherent deterministisch. Hun output kan variëren als gevolg van probabilistische generatie, veranderingen in commando's en context, modelupdates, zoekresultaten en beslissingen van agenten bij het selecteren van tools en het plannen van hun volgende stap. Voor softwareontwikkeling kan deze flexibiliteit de ontdekking versnellen. Voor formele kwaliteitsborging creëert het echter een fundamenteel controleprobleem.
De test die wordt gebruikt om een softwareversie goed te keuren, moet reproduceerbaar en verifieerbaar zijn. Dezelfde applicatieversie, invoergegevens en omgeving moeten dezelfde gedefinieerde procedures, controlepunten en succescriteria opleveren, zodat teams precies kunnen vaststellen wat er is getest, wanneer het is getest, welke versie erbij betrokken was en waarom het resultaat is geaccepteerd.
Pas dan kunnen successen en mislukkingen in de loop van de tijd worden gemeten, gebreken worden gereproduceerd en kan er op bewijs worden vertrouwd bij audits of in gestructureerde omgevingen.
Dit is het verschil tussen het gebruiken van kunstmatige intelligentie om het ontwikkelen van tests te versnellen en het toestaan dat AI de de facto autoriteit op het gebied van testen wordt. Het is belangrijk om te weten wanneer we volledig moeten stoppen met vertrouwen op AI.
Kunstmatige intelligentie kan teams helpen bij het ontwerpen van testcases, het identificeren van hiaten en het verminderen van de inspanning die nodig is om routinematige workflows te automatiseren. Echter, zodra testen onderdeel wordt van het kwaliteitsborgingsproces, moet het gecontroleerd, resultaatgericht, traceerbaar en controleerbaar zijn. De verwachte resultaten moeten duidelijk en expliciet zijn. Wijzigingen moeten worden beoordeeld. Fouten moeten reproduceerbaar zijn. En bewijs van successen en mislukkingen moet worden bewaard.
Zonder deze controlemechanismen zou een organisatie weliswaar weten dat een AI-systeem "enkele tests" heeft uitgevoerd, maar niet precies kunnen bewijzen wat er is gebeurd. Dit creëert een zwakke basis voor operationeel vertrouwen en een nog zwakkere basis voor verantwoording.
Gereguleerde omgevingen verhogen de risico's.
De gevolgen van interfacefouten zijn niet gelijk verdeeld.
In een consumententoepassing kan een inconsistent veld of een onjuiste melding leiden tot frustratie en omzetverlies. In sectoren zoals financiën, gezondheidszorg, defensie of overheid kan een soortgelijke fout een betalingsproces, een medische beslissing, operationele instructies of een publieke dienstverlening beïnvloeden. Een interface die een onjuiste status weergeeft, een waarschuwing verbergt of verouderde informatie presenteert, kan gevolgen hebben die veel verder reiken dan het scherm zelf.
Regulerende instanties moeten ook hun controles kunnen toelichten en bewijs leveren van de effectiviteit ervan. Het volstaat niet om alleen te stellen dat een systeem is getest. Deze instanties moeten mogelijk aantonen dat de tests consistent waren, dat de resultaten zijn geëvalueerd en dat de software naar behoren functioneerde in de omgevingen waarin deze is ingezet. Het dichten van deze transparantiekloof is cruciaal om dit te bereiken.
De betrouwbaarheid die kunstmatige intelligentie biedt, en die van testrun tot testrun verschilt, maakt deze taak lastiger. Hetzelfde geldt voor teststrategieën die zich richten op interne systeemreacties en de gebruikersinterface voor werknemers of klanten negeren.
Onafhankelijke en herhaalbare visuele verificatie kan bijdragen aan een duidelijkere bewijsketen. Het toont niet alleen aan dat de applicatie de verwachte gegevens heeft geretourneerd, maar bewijst ook dat de juiste informatie op de juiste plaats en in een bruikbaar formaat verscheen op het moment dat een menselijke beslissing of actie vereist was.
Dit is cruciaal, vooral omdat ogenschijnlijk kleine weergavefouten het gedrag van de gebruiker kunnen beïnvloeden. Een verborgen waarschuwing, een verkeerd geplaatste komma, een onjuiste meeteenheid of een verouderde statusindicator zorgen er misschien niet voor dat de applicatie niet meer werkt, maar kunnen de gebruiker er wel toe aanzetten de verkeerde actie te ondernemen.
In deze omgevingen is de interface niet zomaar een decoratieve laag; het is een integraal onderdeel van het operationele besturingssysteem.
Snelheid en controle gecombineerd
De optimale aanpak ligt niet in de keuze tussen kunstmatige intelligentie en gevestigde kwaliteitspraktijken, maar in het toewijzen van de meest geschikte rol aan elk.
Kunstmatige intelligentie kan de ontwikkeling versnellen, de testdekking vergroten en de handmatige inspanning die nodig is voor het automatiseren van de productie verminderen. Onafhankelijke verificatie kan de aannames die aan die resultaten ten grondslag liggen, ter discussie stellen. Deterministisch testen kan nuttige, door AI gegenereerde inzichten omzetten in herhaalbare controles. Visuele controles bevestigen dat technisch succesvolle software ook effectief functioneert voor de gebruiker.
Dit gelaagde model stelt organisaties in staat om kunstmatige intelligentie te benutten zonder productiviteit te verwarren met bewijskracht.
Dit model erkent ook dat geen enkele testmethode volledige zekerheid kan bieden. Testen op codeniveau kan het gedrag van individuele componenten bevestigen.
Integratietests kunnen bepalen of systemen correct met elkaar communiceren. Beveiligingstests brengen kwetsbaarheden aan het licht. Prestatietests onderzoeken het gedrag onder belasting. Visuele verificatie, op alle niveaus van de ontwikkeling van de gebruikersinterface, kan bepalen of het eindresultaat accuraat, toegankelijk en bruikbaar is.
De waarde zit hem in het combineren van deze methoden, niet in de eis dat één methode alle andere vervangt.
Naarmate AI steeds meer geïntegreerd raakt in softwareontwikkeling, moet de kwaliteitsborging onafhankelijker worden, niet minder. Organisaties moeten ervan uitgaan dat door AI gegenereerde software onverwacht gebrekkig, onvolledig of inconsistent kan zijn. Het doel is niet om elke fout bij de creatie te elimineren, maar om ervoor te zorgen dat deze gebreken zichtbaar zijn voordat ze de gebruiker bereiken. Dit helpt de zichtbaarheidskloof te dichten die risico's in AI-code kan introduceren.
Kunstmatige intelligentie kan helpen bij opdrachten en zelfs suggesties geven voor de beoordeling ervan. Maar het eindcijfer moet gebaseerd zijn op een onafhankelijk, herhaalbaar en transparant beoordelingsproces.
Reacties zijn gesloten.