Ontwikkelaars: Intel's geautomatiseerde debugging tool ControlFlag is nu open source

0
130

Daphne Leprince-Ringuet

Door Daphne Leprince-Ringuet | 20 oktober 2021 | Onderwerp: Ontwikkelaar

gettyimages-1320577198.jpg

ControlFlag was tot nu toe alleen intern door Intel gebruikt om afwijkingen in de eigen softwareontwikkeling van het bedrijf op te sporen.

Afbeelding: LukaTDB/Getty Images

Intel's geautomatiseerde code debugging tool ControlFlag is nu open source en beschikbaar voor ontwikkelaars om gratis toegang te krijgen.

Nu beschikbaar via GitHub, maakt ControlFlag gebruik van machine learning om automatisch bugs in software en firmwarecode te identificeren, waardoor ontwikkelaars de tijdrovende taak van het handmatig debuggen van de programma's die ze schrijven, wordt bespaard.

ControlFlag werd eind vorig jaar voor het eerst aangekondigd en werd tot nu toe alleen intern door Intel gebruikt om afwijkingen in de eigen softwareontwikkeling van het bedrijf op te sporen. Door de tool open te stellen voor externe ontwikkelaars en ze erop te laten bouwen, verwacht Intel de grenzen te verleggen van wat het systeem kan doen om het proces van het schrijven van code te stroomlijnen.

Debuggen is van cruciaal belang voor de ontwikkeling van programma's: bijna alle grootschalige software bevat fouten op het gebied van nauwkeurigheid, prestaties of beveiliging die moeten worden verholpen. Bovendien introduceert elke update van die programma's, bijvoorbeeld de lancering van een nieuwe functie, een nieuwe kans voor het verschijnen van een anomalie.

Maar voor de overgrote meerderheid van ontwikkelaars is het proces een tijdrovende en nog grotendeels handmatige klus. Dit komt omdat de meeste bugs een semantische analyse vereisen om de hoofdoorzaak te identificeren, te beoordelen en te verhelpen – een analyse die zelfs geavanceerde debugging-systemen niet effectief kunnen uitvoeren.

“Historisch gezien waren dergelijke semantische analysers gewoon softwareontwikkelaars”, vertelt Justin Gottschlich, hoofd-AI-wetenschapper bij Intel Labs, aan ZDNet. “Als zodanig is dit een belangrijke reden waarom debuggen een grotendeels door mensen gedreven proces blijft.”

De afgelopen decennia is er vooruitgang geboekt bij het automatiseren van foutopsporing, maar bestaande tools zijn niet opgewassen tegen softwarefouten die alleen maar complexer worden. Dit is de reden waarom ontwikkelaars zo'n hekel hebben aan debuggen, zegt Gottschlich: het kan dagen, weken en zelfs maanden duren om een ​​enkel softwaredefect te herstellen. In feite wordt geschat dat tot 50% van alle ontwikkeltijd van software wordt besteed aan debuggen.

Ook voor bedrijven kost dit geld. Volgens Intel heeft de IT-industrie in 2020 naar schatting $ 2 biljoen uitgegeven aan softwareontwikkelingskosten in verband met foutopsporingscode, wat ongeveer de helft van het gemiddelde IT-budget vertegenwoordigt.

ControlFlag is ontworpen om deze kloof te dichten, door middel van een mogelijkheid die anomaliedetectie wordt genoemd. De tool leert van eerdere voorbeelden om normale coderingspatronen te detecteren en kan daarom afwijkingen identificeren die waarschijnlijk een bug zullen veroorzaken, ongeacht de programmeertaal.

Het team van Intel stelde vast dat een leermethode zonder toezicht nodig zou zijn om ControlFlag in staat te stellen bugs te detecteren in een groter aantal repositories. Het systeem leerde coderingspatronen van meer dan een miljard regels ongelabelde broncode, waardoor het een hoge mate van nauwkeurigheid kon bereiken en zich zelfs kon aanpassen aan de stijl van een ontwikkelaar om een ​​softwareafwijking te onderscheiden van een stilistische variatie in een programmeertaal.

Sinds de introductie vorig jaar heeft Intel de machine learning tool getest op verschillende softwaresystemen, met veelbelovende resultaten. “Toen we het systeem oorspronkelijk ontwierpen, hadden we niet verwacht dat het zeer complexe defecten zou kunnen vinden”, zegt Gottschlich. “Gezien het zelfbeheerde ontwerp heeft ControlFlag echter zelfs ons, degenen die het hebben gebouwd, verbluft door het vermogen om zeer complexe, genuanceerde softwaredefecten te vinden.”

Het gebruik van ControlFlag op slechts twee propriëtaire softwarebronnen, zegt Gottschlich, resulteerde in het identificeren van meer dan 300 defecten in geïmplementeerde programma's van productiekwaliteit. Vorig jaar ontdekte ControlFlag bijvoorbeeld een codeafwijking in een computersoftwareproject met de naam Client URL (cURL), dat meer dan een miljard keer per dag gegevens overdraagt ​​met verschillende netwerkprotocollen. Na de anomalie aan het cURL-team te hebben gemeld, stemden ze in met de bevindingen van ControlFlag en herontworpen hun code om het probleem te verhelpen.

Het afgelopen jaar heeft ook een behoorlijk aantal leerpunten opgeleverd toen het team van Intel werkte aan de ontwikkeling van ControlFlag. Twee belangrijke verbeterpunten zijn volgens Gottschlich het verminderen van het aantal fout-positieven dat door de tool wordt gerapporteerd – het aantal gerapporteerde defecten dat geen echte bugs zijn – en het integreren van een nog geavanceerdere sematic analyzer in de redenering van ControlFlag.

Als een systeem dat een van de vlaggenschipproducten van Intel's machineprogrammeersuite met tools zal worden, zal ControlFlag zich echter blijven ontwikkelen. “Het is onwaarschijnlijk dat de vooruitgang van ControlFlag ooit zal stoppen”, zegt Gottschlich. “Dit komt grotendeels omdat naarmate softwareprogrammeertalen, hardwarebeschrijvingstalen en computerapparatuur evolueren, ControlFlag ook zal moeten evolueren om gelijke tred te houden met hen.”

Het systeem maakt deel uit van Intel's Machine Programming Research (MPR)-project, dat als algemene doelstelling heeft om de tijd die nodig is om software te ontwikkelen met 1.000 keer te verkorten dankzij automatisering. Een van de gebieden die het team van Gottschlich bijvoorbeeld onderzoekt, is om uiteindelijk de mogelijkheden van ControlFlag uit te breiden om automatisch de gedetecteerde bugs te repareren.

Tegelijkertijd werkt Intel's MPR-team aan een handvol projecten die zich richten op het vereenvoudigen van softwareontwikkeling. Vorig jaar bracht het bedrijf bijvoorbeeld een tool uit die samen met de laboratoria van MIT is ontwikkeld en die stukjes code kan bestuderen om te begrijpen wat een stukje software van plan is te doen. Met de naam MISIM (Machine Inferred code Similarity), gebruikt het systeem een ​​catalogus van reeds bestaande code om de bedoeling achter een nieuw algoritme te begrijpen en technici te helpen die aan software werken door andere manieren van programmeren voor te stellen of opties aan te bieden om de code efficiënter te maken.

Gottschlich verwacht dat MISIM op een dag naast ControlFlag zal werken. “Als het goed samengesmolten is, stellen we ons een krachtiger nieuw systeem voor dat in staat zal zijn om alle defecten te detecteren die ControlFlag momenteel kan detecteren, evenals honderden defecten die het momenteel niet kan detecteren vanwege hun onderliggende complexiteit”, zegt Gottschlich.

In de tussentijd kunnen ontwikkelaars die geïnteresseerd zijn om met de tool aan de slag te gaan, nu toegang krijgen tot ControlFlag op GitHub hier.

Verwante onderwerpen:

Intel Enterprise Software Open Source mobiel besturingssysteem Daphne Leprince-Ringuet

Door Daphne Leprince-Ringuet | 20 oktober 2021 | Onderwerp: Ontwikkelaar