Development

Artificial Intelligence
bug fix

Nieuwe aanpak belooft bugfinding en -fixing veel goedkoper te maken

AI-model had geen training op gelabelde data nodig.

© Shutterstock Mike Focus
13 december 2021

AI-model had geen training op gelabelde data nodig.

Vorige week presenteerden twee onderzoekers van Microsoft een nieuwe methode om fouten in software op te sporen en automatisch te repareren. Dat model zou het proces makkelijker en goedkoper moeten maken. Het interessante is dat bij de opzet geen gebruik is gemaakt van training op bekende softwarefouten.

Het ontdekken en repareren van fouten in software is ondanks de vele tools die beschikbaar zijn, nog altijd een tijdrovende klus. Bovendien blijken bestaande processen daarvoor verre van perfect te zijn. Kwetsbaarheden worden nogal eens gemist en blijken soms al jarenlang in productiecode te zitten. Daarom is er een voortdurende zoektocht gaande naar methoden om dat proces te verbeteren. De inzet van kunstmatige intelligentie biedt daarbij nieuwe mogelijkheden.

De twee onderzoekers - die de resultaten van hun aanpak vorige week uit de doeken deden op de conferentie Neural Information Processing Systems (NeurIPS) 2021 - gebruikten een bijzondere methode om hun AI-model te trainen. Doorgaans worden modellen getraind op grote sets met gelabelde data. Voornaam probleem voor het vinden van bugs in softwarecode is echter dat er wel veel gegevens zijn van bugs, maar dat die zijn niet geannoteerd.

19 niet eerder gerapporteerde bugs

Daarom is gekozen voor een methode met twee modellen, leggen de onderzoekers uit in een blogpost. Het ene model selecteert een bug en introduceert die in bekende software. Het andere model spoort vervolgens de fout weer op en repareert deze automatisch. Het BugLab-model dat zo werd getraind, was in staat 2374 fouten op te sporen in een verzameling Python-code die actief in gebruik is. Daarvan waren er 19 niet eerder gevonden. 11 daarvan zijn gemeld op GitHub. 6 fixes zijn al verwerkt en 5 zijn nog in behandeling. De rest was te onbeduidend om er werk van te maken.

Het model kon 26% van het totaal aantal gevonden bugs automatisch repareren.

Nog wel veel valse positieven

Een probleem waarvoor nog wel een oplossing moet worden gevonden, is dat het model veel valse positieven oplevert. Er worden dus fouten in de code ontdekt terwijl dat helemaal geen bugs zijn. Zo gaf het model in een experiment maar liefst 1000 waarschuwingen terwijl het maar in 19 gevallen een fout betrof. Hier is dus nog ontwikkelwerk te verzetten om deze scheve verhouding te fixen.

Reactie toevoegen
De inhoud van dit veld is privé en zal niet openbaar worden gemaakt.