Att skriva kod är bara det första steget i att skapa något. Att kamma igenom din kod efter buggar och åtgärda dem är tidskrävande och tar ofta längre tid än förväntat, men är ändå ett viktigt steg.

Om det bara fanns ett sätt att automatiskt fixa buggar som går utöver syntaxfel och som verkligen förstår avsikterna bakom din kod.

Nyligen utvecklade Microsoft en AI som kan upptäcka och fixa buggar i kod med hjälp av djupinlärning. Men hur kom den här revolutionerande tekniken till, och hur fungerar den?

Vad är BugLab och hur fungerar det?

BugLab är en Python-implementation med artificiell intelligens som letar efter och fixar buggar i kod. Den har utvecklats av Miltos Alamanis och Marc Brockschmidt, två forskare vid Microsoft Research. De lyckades övervinna bristen på märkt data som ofta används i maskininlärning genom att ta till självövervakad inlärning och låta BugLab träna sig själv genom ett "kurragömma"-spel med kodrader.

BugLab tränades med hjälp av två datormodeller; en som döljer buggar inom korrekta kodavsnitt och en annan som söker och korrigerar buggarna. Båda modellerna lär sig kontinuerligt av varandra. Med tiden blir buggväljaren bättre på att gömma buggar i koden, och detektorn blir bättre på att fånga och fixa dem.

instagram viewer

Förstå koden med BugLab

Majoriteten av buggar som BugLab AI är tränade att upptäcka och fixa resulterar inte i logiska fel utan är bara fel som ett resultat av kodens allmänna kontext. Att förstå utvecklarens avsikt är viktigt för att hitta dessa buggar.

Att behandla kodavsnitt på samma sätt som att bearbeta naturliga språk ger suboptimala resultat. Det är fortfarande svårt för AI att förstå sambandet mellan olika uttalanden när de är uppdelade i individuella tokens.

Istället tittar BugLab på koden som helhet. På så sätt representeras varje syntax, uttryck, symbol och identifierare som punkter i en graf, vilket gör att AI: n kan "förstå" kopplingen och förhållandet mellan olika noder.

Neurala nätverksarkitekturer används sedan för att träna felsöknings-AI. De kan dra in insikter från kodgrafens rika struktur och ge skäl för varje nods relation till de andra.

Fungerar BugLab på verklig kod?

Det är viktigt att notera att BugLab inte är en ersättning för en skicklig programmerare. Det beror på att komplexa buggar fortfarande inte är inom räckhåll.

Microsofts mål med AI är att upptäcka och fixa vanliga buggar som felaktiga booleska operatorer, som användningen av "eller" istället för "och" och vice versa, förutom inverterade värdejämförelser och variabel missbruk.

Enligt Microsoft, resultaten är lovande, eftersom BugLab kan upptäcka och automatiskt fixa cirka 26 procent av buggar i en kodbit. Ändå går en betydande andel av noggrannheten fortfarande förlorad på grund av falska positiva och missade buggar.

Framtida tillämpningar av Microsoft BugLab

Microsofts mål med BugLab är att spara tid för mjukvaruutvecklare, som ofta ägnas åt att gå igenom sin kod och leta efter de minsta buggar.

Medan AI-felsökningsmodellen fortfarande är under arbete, har den chansen att hitta och åtgärda buggar som sträcker sig allt från obekvämt till katastrofalt. Men om några år kan du förvänta dig att BugLab blir ett måste i alla utvecklares verktygslåda, även om det inte är perfekt.

Den exponentiella utvecklingen av självlärande AI

Ju mer tid AI-modeller som BugLab har för att träna på verkliga exempel, desto bättre och mer exakta resultat kommer de att ge.

Ett av de mest utmanande hindren som Microsofts forskare stötte på när de utvecklade BugLab var att använda en mänsklig förståelse för kod och avsikt i verktyget. Men nu när det mestadels är löst kan du förvänta dig att BugLab blir bättre med tiden.

Deep Learning vs. Machine Learning vs. AI: Hur går de ihop?

Försöker du räkna ut skillnaden mellan artificiell intelligens, maskininlärning och djupinlärning? Här är vad de alla betyder.

Läs Nästa

Dela med sigTweetE-post
Relaterade ämnen
  • Programmering
  • Microsoft
  • Kodningstips
  • Artificiell intelligens
Om författaren
Anina Ot (89 publicerade artiklar)

Anina är frilansande teknik- och internetsäkerhetsskribent på MakeUseOf. Hon började skriva inom cybersäkerhet för tre år sedan i hopp om att göra det mer tillgängligt för den genomsnittliga personen. Sugen på att lära sig nya saker och en stor astronominörd.

Mer från Anina Ot

Prenumerera på vårt nyhetsbrev

Gå med i vårt nyhetsbrev för tekniska tips, recensioner, gratis e-böcker och exklusiva erbjudanden!

Klicka här för att prenumerera