Utviklere: Intels automatiske feilsøkingsverktøy ControlFlag er nå åpen kildekode

0
131

 Daphne Leprince-Ringuet

Av Daphne Leprince-Ringuet | 20. oktober 2021 | Tema: Utvikler

 gettyimages-1320577198.jpg

ControlFlag har til nå bare vært brukt internt av Intel, for å oppdage avvik i selskapets egen programvareutvikling.

Bilde: LukaTDB/Getty Images

Intels automatiserte kodefeilsøkingsverktøy ControlFlag er nå åpen kildekode og tilgjengelig for utviklere gratis – et trekk som vil komme som en lettelse for mange som er lei av å bruke timer på å granske programmene deres på jakt etter en potensiell anomali.

Nå tilgjengelig via GitHub, ControlFlag trykker på maskinlæring for automatisk å identifisere feil i programvare og fastvarekode, og sparer utviklere for den tidkrevende oppgaven å manuelt feilsøke programmene de skriver.

ControlFlag ble kunngjort for første gang i slutten av fjoråret, og har til nå bare blitt brukt internt av Intel for å oppdage avvik i selskapets egen programvareutvikling. Ved å åpne verktøyet for eksterne utviklere og la dem bygge på det, forventer Intel å presse grensene for hva systemet kan gjøre for å effektivisere prosessen med å skrive kode.

Feilsøking er avgjørende for programutvikling: nesten all storskala programvare inkluderer nøyaktighet, ytelse eller sikkerhetsfeil som må reduseres. Dessuten introduserer hver oppdatering av disse programmene, for eksempel lanseringen av en ny funksjon, en annen mulighet for at en avvik kan vises.

Men for de aller fleste utviklere er prosessen et tidkrevende og fortsatt stort sett manuelt ork. Dette er fordi de fleste feil krever en semantisk analyse for å identifisere, vurdere årsaken og dempe-en analyse som til og med avanserte feilsøkingssystemer ikke er i stand til å utføre effektivt.

“Historisk sett var slike semantiske analysatorer ganske enkelt programvareutviklere,” sier Justin Gottschlich, hoved AI -forsker ved Intel Labs, til ZDNet. “Som sådan er dette en sentral grunn til at feilsøking fortsatt er en stort sett menneskelig drevet prosess.”

De siste tiårene har det vært fremskritt i forsøket på å automatisere feilsøking, men eksisterende verktøy passer ikke til programvarefeil som bare blir mer komplekse. Dette er grunnen til at utviklere misliker feilsøking så mye, sier Gottschlich: det kan ta dager, uker og til og med måneder å fikse en enkelt programvarefeil. Det anslås faktisk at opptil 50 % av all programvareutviklingstid er dedikert til feilsøking.

Dette koster også selskaper. Ifølge Intel brukte IT-industrien anslagsvis 2 billioner dollar i 2020 i programvareutviklingskostnader knyttet til feilsøkingskode, som representerer omtrent halvparten av det gjennomsnittlige IT-budsjettet.

ControlFlag ble designet for å løse dette gapet, gjennom en evne som kalles anomali -deteksjon. Verktøyet lærer av tidligere eksempler for å oppdage normale kodningsmønstre, og kan derfor identifisere avvik som sannsynligvis vil forårsake en feil, uavhengig av programmeringsspråket.

Intels team fastslo at en uovervåket læringstilnærming ville være nødvendig for å tillate ControlFlag å oppdage feil i et bredere spekter av depoter. Systemet lærte kodemønstre fra over en milliard linjer med umerket kildekode, noe som gjorde det mulig å oppnå en høy grad av nøyaktighet, og til og med tilpasse seg utviklernes stil for å skille en programvare -anomali fra en stilistisk variasjon i et programmeringsspråk.

Siden det ble introdusert i fjor, har Intel testet maskinlæringsverktøyet på forskjellige programvaresystemer, med lovende resultater. “Da vi opprinnelig designet systemet, forventet vi ikke at det ville være i stand til å finne svært komplekse feil,” sier Gottschlich. “På grunn av sin egenkontrollerte design har ControlFlag forbløffet oss selv, de som bygde den, i sin evne til å finne svært komplekse, nyanserte programvarefeil.”

Å bruke ControlFlag på bare to proprietære programvarelager, sier Gottschlich, resulterte i identifisering av over 300 defekter i produksjonskvalitet, distribuerte programmer. For eksempel oppdaget ControlFlag i fjor en kode -anomali i et dataprogramvareprosjekt ved navn Client URL (cURL), som overfører data ved hjelp av forskjellige nettverksprotokoller over en milliard ganger om dagen. Etter å ha rapportert uregelmessigheten til cURL-teamet, var de enige i ControlFlags funn og redesignet koden for å rette opp problemet.

Det siste året har også kommet med en god del læringspoeng da Intels team jobbet med å utvikle ControlFlag. To viktige forbedringsområder, ifølge Gottschlich, er å redusere antall falske positiver rapportert av verktøyet – antall feil rapportert som ikke er faktiske feil – og å integrere en enda mer avansert sematisk analysator i ControlFlags begrunnelse.

Som et system som skal bli et av flaggskipsproduktene til Intels maskinprogrammeringspakke med verktøy, vil ControlFlag imidlertid fortsette å utvikle seg. “Det er usannsynlig at fremskrittene til ControlFlag noen gang vil stoppe,” sier Gottschlich. “Dette er i stor grad fordi etter hvert som programmeringsspråk, maskinvarebeskrivelsesspråk og dataenheter utvikler seg, må ControlFlag også utvikle seg for å holde tritt med dem.”

Systemet er en del av Intels prosjekt for maskinprogrammeringsforskning (MPR), som har det overordnede målet å redusere tiden det tar å utvikle programvare med 1000 ganger takket være automatisering. Et av områdene som Gottschlichs team undersøker, er for eksempel å til slutt utvide evnen til ControlFlag til automatisk å reparere feilene som det oppdager.

Parallelt jobber Intels MPR -team med en håndfull prosjekter som fokuserer på å gjøre programvareutvikling enklere. I fjor ga selskapet for eksempel ut et verktøy utviklet sammen med MITs laboratorier, som kan studere kodebiter for å forstå hva en programvare har tenkt å gjøre. Kalt MISIM (Machine Inferred Code Similarity), bruker systemet en katalog med eksisterende kode for å forstå intensjonen bak en ny algoritme og hjelpe ingeniører som jobber med programvare ved å foreslå andre måter å programmere på, eller tilby alternativer for å gjøre koden mer effektiv.

Gottschlich regner med at MISIM en dag vil jobbe sammen med ControlFlag. “Når det er riktig smeltet sammen, ser vi for oss et kraftigere nytt system som vil være i stand til å oppdage alle feilene ControlFlag for øyeblikket kan, så vel som hundrevis av feil det for øyeblikket ikke kan oppdage på grunn av deres underliggende kompleksitet,” sier Gottschlich.

I mellomtiden kan utviklere som er interessert i å komme i gang med verktøyet nå få tilgang til ControlFlag på GitHub her.

Relaterte emner:

Intel Enterprise Software Open Source Mobile OS  Daphne Leprince-Ringuet

Av Daphne Leprince-Ringuet | 20. oktober 2021 | Tema: Utvikler