
ControlFlag har hittills bara varit används internt av Intel för att upptäcka avvikelser i företagets egen mjukvaruutveckling.
Bild: LukaTDB/Getty Images
Intels automatiserade kodfelsökningsverktyg ControlFlag är nu öppen källkod och tillgängligt för utvecklare gratis – ett drag som kommer att komma som en lättnad för många som är trötta på att spendera timmar på att granska sina program i jakten på en potentiell anomali.
ControlFlag, som nu är tillgängligt via GitHub, tappar maskininlärning för att automatiskt identifiera fel i programvara och firmware-kod, vilket sparar utvecklare den tidskrävande uppgiften att manuellt felsöka programmen de skriver.
Tillkännagav för första gången i slutet av förra året, ControlFlag har hittills endast använts internt av Intel för att upptäcka avvikelser i företagets egen mjukvaruutveckling. Genom att öppna verktyget för externa utvecklare och låta dem bygga vidare på det, förväntar sig Intel att tänja på gränserna för vad systemet kan göra för att effektivisera processen att skriva kod.
Felsökning är avgörande för programutveckling: nästan all storskalig programvara innehåller noggrannhet, prestanda eller säkerhetsbuggar som måste åtgärdas. Dessutom introducerar varje uppdatering av dessa program, till exempel lanseringen av en ny funktion, ytterligare en möjlighet för en anomali att dyka upp.
Men för de allra flesta utvecklare är processen en tidskrävande och fortfarande till stor del manuell syssla. Detta beror på att de flesta buggar kräver en semantisk analys för att identifiera, bedöma grundorsaken och mildra – en analys som inte ens toppmoderna felsökningssystem är kapabla att utföra effektivt.
“Historiskt sett var sådana semantiska analysatorer helt enkelt mjukvaruutvecklare”, säger Justin Gottschlich, ledande AI-forskare vid Intel Labs, till ZDNet. “Som sådan är detta en viktig orsak till att felsökning fortfarande är en i stort sett mänskligt driven process.”
De senaste decennierna har vi gjort framsteg när det gäller att försöka automatisera felsökning, men befintliga verktyg matchar inte programvarubuggar som bara blir mer komplexa. Det är därför som utvecklare ogillar felsökning så mycket, säger Gottschlich: det kan ta dagar, veckor och till och med månader att åtgärda ett enda programvarufel. Det uppskattas i själva verket att upp till 50% av all programutvecklingstid är avsedd för felsökning.
Detta kostar också företag. Enligt Intel spenderade IT -industrin uppskattningsvis 2 biljoner dollar år 2020 i kostnader för utveckling av programvara i samband med felsökningskod, vilket motsvarar ungefär hälften av den genomsnittliga IT -budgeten.
ControlFlag utformades för att åtgärda detta gap, genom en förmåga som kallas anomaliedetektering. Verktyget lär sig av tidigare exempel för att upptäcka normala kodningsmönster och kan därför identifiera avvikelser som sannolikt kommer att orsaka ett fel, oavsett programmeringsspråk.
Intels team bestämde att en inlärningsmetod utan övervakning skulle vara nödvändig för att tillåta ControlFlag att upptäcka buggar i ett större antal lagringsplatser. Systemet lärde sig kodningsmönster från över en miljard rader med omärkt källkod, vilket gjorde det möjligt att uppnå en hög grad av noggrannhet och till och med anpassa sig till en utvecklares stil för att skilja en programvaruavvikelse från en stilistisk variation i ett programmeringsspråk.
Sedan det introducerades förra året har Intel testat maskininlärningsverktyget på olika mjukvarusystem, med lovande resultat. “När vi ursprungligen designade systemet trodde vi inte att det skulle kunna hitta mycket komplexa defekter”, säger Gottschlich. “Men med tanke på dess självövervakade design har ControlFlag häpnat även oss, de som byggde den, i dess förmåga att hitta mycket komplexa, nyanserade programvarufel.”
Att använda ControlFlag på bara två proprietära programvarulager, säger Gottschlich, resulterade i att identifiera över 300 defekter i produktionskvalitet, utplacerade program. Till exempel upptäckte ControlFlag förra året en kodanomali i ett datorprogram som heter Client URL (cURL), som överför data med olika nätverksprotokoll över en miljard gånger om dagen. Efter att ha rapporterat anomalin till cURL -teamet gick de med på ControlFlags resultat och gjorde om sin kod för att korrigera problemet.
Det senaste året har också medfört en rättvis andel av lärandepoäng när Intels team arbetade med att utveckla ControlFlag. Två viktiga förbättringsområden, enligt Gottschlich, är att minska antalet falska positiva rapporter som verktyget rapporterar – antalet fel som inte är faktiska fel – och att integrera en ännu mer avancerad sematisk analysator i ControlFlags resonemang.
Som ett system som kommer att bli en av flaggskeppsprodukterna i Intels maskinprogrammeringspaket med verktyg, kommer dock ControlFlag att fortsätta utvecklas. “Det är osannolikt att framstegen av ControlFlag någonsin kommer att stoppa”, säger Gottschlich. “Detta beror till stor del på att i takt med att programmeringsspråk, maskinvarubeskrivningsspråk och datorenheter utvecklas måste ControlFlag utvecklas också för att hålla jämna steg med dem.”
Systemet är en del av Intels maskinprogrammeringsforskningsprojekt (MPR), som har det övergripande målet att minska tiden det tar att utveckla programvara med 1000 gånger tack vare automatisering. Ett av områdena som Gottschlichs team till exempel undersöker är att så småningom utöka förmågan hos ControlFlag till att automatiskt reparera de buggar som den upptäcker.
Parallellt arbetar Intels MPR -team med en handfull projekt som fokuserar på att göra mjukvaruutveckling enklare. Förra året släppte företaget till exempel ett verktyg som samutvecklats med MIT: s laboratorier, som kan studera kodavsnitt för att förstå vad en programvara avser att göra. Systemet kallas MISIM (Machine Inferred code Similarity) och använder en katalog med redan existerande kod för att förstå avsikten med en ny algoritm och hjälpa ingenjörer som arbetar med programvara genom att föreslå andra sätt att programmera eller erbjuda alternativ för att göra koden mer effektiv.
Gottschlich räknar med att MISIM en dag kommer att arbeta tillsammans med ControlFlag. “När de är ordentligt sammansmälta föreställer vi oss ett kraftfullare nytt system som kommer att kunna upptäcka alla defekter som ControlFlag för närvarande kan, såväl som hundratals defekter som det för närvarande inte kan upptäcka på grund av deras underliggande komplexitet”, säger Gottschlich.
Under tiden kan utvecklare som är intresserade av att komma igång med verktyget nu komma åt ControlFlag på GitHub här.
Relaterade ämnen:
Intel Enterprise Software Open Source Mobile OS