Einde softwarebugs flinke stap dichterbij

03/02/16 om 09:46 - Bijgewerkt om 09:46

Het nieuw ontwikkelde systeem Prophet van MIT brengt de droom van bugvrije software een stap dichterbij.

Einde softwarebugs flinke stap dichterbij

. © iStock

Prophet is ontwikkeld aan het Massachusetts Institute of Technology door Fan Long en Martin Rinard. De wetenschappers pasten de techniek van machineleren toe om het succes bij het automatisch genereren van patches te vergroten. Prophet werd voor dat doel gevoed met 777 programmeerfouten en de verbeteringen daarvan in 8 veelgebruikte opensource-applicaties die via GitHub gepubliceerd zijn.

Gewapend met die kennis blijkt Prophet een stuk effectiever bij het repareren van fouten dan bestaande automatische patchprogramma's. Bij een test op 8 andere opensource-applicaties in GitHub met 69 bugs wist Prophet er 15 tot 18 automatisch te herkennen en repareren; hoe langer Prophet de tijd kreeg, hoe meer fouten het correct repareerde. Bestaande automatische patchprogramma's die het zonder 'voorkennis' moeten stellen, kwamen niet verder dan 1 of 2. Prophet voert zijn kunsten bovendien ook correct uit bij grote applicaties tot een miljoen regels code of meer. Eerdere systemen kunnen meestal niet meer dan 100 regels code aan. Omdat de correctheid van een patch ook afhangt van de vraag of die niet tot problemen elders in het programma leidt, maakt Prophet ook op dit vlak dus een belangrijke stap vooruit.

Factor 10

Maar al is een verbetering met een factor 10 en heuse prestatie, uit de getallen valt ook af te leiden dat voor het foutvrij maken van software nog een weg is af te leggen. Anderzijds: Prophet en vergelijkbare systemen kunnen natuurlijk bijleren. En de meest hoopvolle conclusie is wellicht dat goede code kennelijk universele eigenschappen heeft. Want anders had Prophet zijn kunde bij het repareren van code van één set applicaties niet kunnen opdoen uit het bestuderen van al gerepareerde bugs in een andere set. Als wetenschappers erin slagen te herkennen wat correcte code is, of beter nog een systeem weten te ontwikkelen dat dat kan, krijgt dat een enorm positief effect op software-ontwikkeling.

Fan Long en Martin Rinard geven een uitgebreide beschrijving van hun ontwikkelingswerk in de paperAutomatic Patch Generation by Learning Correct Code.

Bron: Automatiseringgids

Lees meer over:

Onze partners