PRA(i)
Wat als AI helpt bepalen waar de risico’s echt zitten?
Risk-Based Testing is niet nieuw. De Product Risico Analyse (PRA) waarop we onze teststrategie baseren evenmin. Toch blijft het uitvoeren van zo’n PRA vaak een tijdrovend proces: de juiste stakeholders bij elkaar krijgen, risico’s identificeren, discussiëren over kans en impact en proberen al die verschillende inzichten samen te brengen tot één gedeeld risicobeeld. Waardevol, maar ook arbeidsintensief, subjectief en lastig op exact dezelfde manier te herhalen.
Ook binnen de Erasmus Universiteit Rotterdam liepen we tegen dit vraagstuk aan. Samen onderzochten Squerist en Erasmus daarom of het ook anders kan. Met behulp van de eigen AI-omgeving van de universiteit lieten we AI honderden historische incidenten analyseren en classificeren om deze als basis voor een Product Risico Analyse te gebruiken.
AI is immers sterk in het interpreteren en structureren van grote hoeveelheden ongestructureerde data en het herkennen van patronen daarin. Daarmee kunnen we historische incidentdata gebruiken als basis voor een data-driven PRA, menselijke kennis gericht toevoegen én die analyse met één druk op de knop opnieuw uitvoeren.
In deze blog delen we hoe we dit samen met de Erasmus Universiteit hebben onderzocht en hoe AI een oud en arbeidsintensief proces kan veranderen in een snelle, herhaalbare en onderbouwde basis voor Risk-Based Testing.
Goed idee, lastig uitvoerbaar
Het idee achter Risk-Based Testing is ijzersterk: als tijd en capaciteit beperkt zijn, besteed dan de meeste testinspanning aan de onderdelen met het hoogste productrisico. De Product Risico Analyse vormt daarvoor een logische basis. Maar juist het opstellen van die PRA blijkt al jaren een knelpunt.
Het probleem is overigens niet nieuw. Al in 2004 werd in de literatuur over Risk-Based Testing een aanpak beschreven waarin risicoanalyse sterk afhankelijk is van de inbreng en beschikbaarheid van stakeholders en domeinexperts.1 In de jaren daarna werd steeds duidelijker wat daarvan de keerzijde kan zijn: handmatige risicoanalyses zijn tijdrovend, kostbaar en gevoelig voor subjectieve beslissingen2 en worden in de praktijk bovendien vaak handmatig en ad hoc uitgevoerd.3 Daarbij is een deel van die inspanning ook nog eens herhaling: PRA’s binnen hetzelfde domein blijken regelmatig vergelijkbare risico’s op te leveren, waardoor bestaande risicoanalyses deels hergebruikt zouden kunnen worden.4
Dat probleem herkenden we bij de Erasmus Universiteit. De PRA is een waardevolle basis voor de Risk-Based Teststrategie, maar vraagt traditioneel meerdere stakeholders en kennishouders om gezamenlijk tot een risicobeeld te komen. Wanneer je deze aanpak structureel en voor meerdere systemen wilt toepassen én de risicoanalyse actueel wilt houden, wordt de benodigde tijd en beschikbaarheid van deze mensen een belangrijke beperkende factor.
“We willen de waarde van de PRA behouden, maar niet iedere keer opnieuw dezelfde tijdrovende exercitie uitvoeren om tot dat risicobeeld te komen.”
– Leroy Sewbaks, Coördinator IT Services & Business Operations Erasmus Universiteit Rotterdam
Het probleem zit dus niet zozeer in het principe van de PRA, maar in het proces eromheen: telkens opnieuw stakeholders verzamelen, kennis ophalen, risico’s wegen en het resultaat vastleggen. Een waardevol fundament voor Risk-Based Testing dreigt daarmee juist door de benodigde effort, subjectiviteit en beperkte herhaalbaarheid te weinig of onvoldoende actueel te worden toegepast.
AI maakt data bruikbaar voor de PRA
Ook het idee om risk assessment meer data-driven te maken is niet nieuw. In 2012 werd al onderzocht hoe handmatige risicoanalyse gecombineerd kon worden met automatisch bepaalde informatie uit onder andere defect-, change- en testhistorie.2 Later onderzoek ging een stap verder door softwarekwaliteitsdata en geautomatiseerde risico-indicatoren in Risk-Based Testing te gebruiken.3 De ambitie om menselijke inschattingen aan te vullen met beschikbare data bestond dus al ruim vóór de huidige AI-doorbraak. Wat nu fundamenteel verandert, is ons vermogen om die data daadwerkelijk op grote schaal te interpreteren.
Bij de Erasmus Universiteit was daarvoor een goede bron voorhanden: historische incidentdata. In plaats van aan stakeholders te vragen waar zij denken dat de risico’s zitten, onderzochten we of de operationele historie ook kan laten zien waar problemen zich daadwerkelijk hebben gemanifesteerd. Die historie zien we daarbij niet als een volledige representatie van het productrisico, maar als een waardevol signaal: waar en op welke kwaliteitsaspecten hebben problemen zich in het verleden daadwerkelijk voorgedaan?
Moderne generatieve AI en Large Language Models kunnen niet alleen netjes gestructureerde metrics verwerken, maar ook duizenden ongestructureerde incidentbeschrijvingen lezen, semantisch interpreteren, groeperen en bijvoorbeeld classificeren naar systeemcomponent en kwaliteitsattribuut. Precies deze kracht hebben we ingezet om historische operationele data automatisch om te zetten in een data-driven basis voor de PRA.
Menselijke expertise verdwijnt daarbij niet: stakeholders blijven nodig voor businessimpact en wegingsfactoren. Maar door die kennis configureerbaar vast te leggen, hoeft zij niet voor iedere PRA opnieuw via interviews en workshops te worden verzameld. Zo geeft AI het bestaande idee eindelijk het gereedschap om het schaalbaar, herhaalbaar en praktisch toepasbaar te maken.
Van incident naar risicoprofiel
Het resultaat van het gezamenlijke experiment is een data-driven Product Risico Analyse die automatisch kan worden opgebouwd. Grote hoeveelheden incidentdata worden door AI geïnterpreteerd en geclassificeerd. Ieder incident wordt gekoppeld aan het relevante systeemonderdeel (of functioneel gebied) én aan een kwaliteitsattribuut, zoals betrouwbaarheid, performance, security of usability. Door daarnaast frequentie en ernst van incidenten mee te wegen, ontstaat een heatmap met op de ene as de systeemcomponenten en op de andere as de kwaliteitsattributen. De kleur en score van iedere cel maken zo zichtbaar waar de incidenthistorie wijst op een verhoogd risico.
De winst zit daarbij niet alleen in het automatiseren van de analyse, maar vooral in de herhaalbaarheid van het proces. Dezelfde methode kan telkens opnieuw op een nieuwe periode met incidentdata worden toegepast. Waar een traditionele PRA veelal een momentopname is en voor een actualisatie opnieuw menselijke effort vraagt, kan het risicoprofiel nu periodiek opnieuw worden berekend. Nieuwe incidenten worden meegenomen, verschuivingen in het risicoprofiel worden zichtbaar en de PRA kan zo met het systeem en het gebruik ervan blijven meebewegen.
Tegelijkertijd wordt de PRA traceerbaar en uitlegbaar. De gebruikte brondata, classificatieregels, scoringsmethodiek en wegingsfactoren zijn expliciet vastgelegd. Daardoor is niet alleen zichtbaar waar volgens de PRA de grootste risico’s liggen, maar ook waarom een bepaalde risicoscore tot stand is gekomen. Verandert het risicobeeld, dan kan bovendien worden teruggekeken welke verandering in data, classificatie of weging daaraan ten grondslag ligt.
Daarmee neemt AI vooral het arbeidsintensieve analysewerk uit handen. Het interpreteren en structureren van honderden incidenten, werk dat handmatig nauwelijks haalbaar is, kan op grote schaal en volgens dezelfde methodiek worden uitgevoerd. Het resultaat is een sneller beschikbare, actuele en herhaalbare basis voor een Risk-Based Teststrategie.
De toekomst staat niet in je data
Een PRA op basis van historische data heeft ook een duidelijke beperking: historische data vertelt vooral waar risico’s zich in het verleden hebben gemanifesteerd, niet noodzakelijk waar de risico’s van morgen liggen.5 Een nieuw systeemonderdeel, veranderende wetgeving of een risico met een zeer grote potentiële impact kan nauwelijks of zelfs helemaal niet zichtbaar zijn in incidentdata. Bovendien vertelt de frequentie of ernst van incidenten niet altijd voldoende over de werkelijke businessimpact, kosten of risk appetite van een organisatie. De input van stakeholders en kennishouders blijft daarom essentieel.
Denk bijvoorbeeld aan wegingsfactoren voor kwaliteitsattributen en/of systeemcomponenten, aangevuld met specifieke correcties voor nieuwe of verwachte risico’s. Door deze factoren buiten het AI-model te beheren kunnen stakeholders hun inzichten eenvoudig aanpassen wanneer de context verandert. Bij iedere nieuwe run combineert de PRA vervolgens dezelfde reproduceerbare analyse van de historische data met de op dat moment geldende menselijke wegingsfactoren.
Zo vervangt AI het menselijke oordeel niet, maar wordt voorkomen dat dit oordeel voor iedere PRA opnieuw moet worden opgehaald en verwerkt. De menselijke expertise blijft behouden, terwijl de benodigde effort om een actuele PRA te maken sterk wordt gereduceerd.
En daarmee stopt het voor de Erasmus Universiteit niet bij de PRA. Wanneer een actuele en reproduceerbare risicoanalyse beschikbaar is, ontstaat een basis waarop ook volgende stappen in het testproces kunnen worden geautomatiseerd:
“Nu we het PRA-deel van ons testproces hebben geautomatiseerd, zien we kansen om dit verder uit te breiden met geautomatiseerde testplannen en testscripts. De PRA kan daarbij, gecombineerd met onze Generieke Test Aanpak, aan de basis staan.”– Remy Miedema, Test Manager Erasmus Universiteit Rotterdam
Benieuwd of deze aanpak ook toepasbaar is op jouw incidentdata en testproces? Neem gerust contact met me op; ik denk graag met je mee.
Bronnen
1 - Iris Pinkster, Bob van de Burgt, Dennis Janssen & Erik van Veenendaal (2004), Successful Test Management: An Integral Approach.
https://link.springer.com/book/10.1007/978-3-540-44735-1
2 - Michael Felderer, Christian Haisjackl, Ruth Breu & Johannes Motz (2012), Integrating Manual and Automatic Risk Assessment for Risk-Based Testing.
https://www.researchgate.net/publication/221493954_Integrating_Manual_and_Automatic_Risk_Assessment_for_Risk-Based_Testing
3 - Harald Foidl & Michael Felderer (2016), Integrating software quality models into risk-based testing.
https://link.springer.com/article/10.1007/s11219-016-9345-3
4 - Chris C. Schotanus (2014), The Resurrection of Product Risk Analysis.
https://www.infoq.com/articles/resurrection-pra/
5 - Rudolf Ramler, Michael Felderer & Matthias Leitner (2017), A Lightweight Approach for Estimating Probability in Risk-Based Software Testing.
https://www.researchgate.net/publication/316436913_A_Lightweight_Approach_for_Estimating_Probability_in_Risk-Based_Software_Testing