Scrivere codice è solo il primo passo per creare qualcosa. Esaminare il codice alla ricerca di bug e risolverli richiede molto tempo e spesso richiede più tempo del previsto, ma è comunque un passaggio essenziale.

Se solo ci fosse un modo per correggere automaticamente i bug che va oltre gli errori di sintassi e comprende veramente le intenzioni dietro il tuo codice.

Di recente, Microsoft ha sviluppato un'intelligenza artificiale in grado di rilevare e correggere i bug nel codice utilizzando il deep learning. Ma come è nato questo pezzo di tecnologia rivoluzionaria e come funziona?

Che cos'è BugLab e come funziona?

BugLab è un'implementazione Python di intelligenza artificiale che cerca e corregge i bug all'interno del codice. È stato sviluppato da Miltos Alamanis e Marc Brockschmidt, due ricercatori di Microsoft Research. Sono riusciti a superare la mancanza di dati etichettati spesso utilizzati in apprendimento automatico ricorrendo all'apprendimento auto-supervisionato e permettendo a BugLab di allenarsi attraverso un gioco “nascondino” con righe di codice.

instagram viewer

BugLab è stato addestrato utilizzando due modelli di calcolo; uno che nasconde i bug all'interno di frammenti di codice corretti e un altro che cerca e corregge i bug. Entrambi i modelli imparano continuamente l'uno dall'altro. Nel tempo, il selettore di bug diventa più bravo a nascondere i bug nel codice e il rilevatore diventa più bravo a individuarli e risolverli.

Comprendere il codice con BugLab

La maggior parte dei bug che BugLab AI è addestrato a rilevare e correggere non danno luogo a errori logici ma sono errati solo a causa del contesto generale del codice. Comprendere l'intento dello sviluppatore è essenziale per trovare questi bug.

Trattando frammenti di codice allo stesso modo dell'elaborazione dei linguaggi naturali si ottengono risultati non ottimali. È ancora difficile per l'intelligenza artificiale comprendere la relazione tra le diverse istruzioni quando sono suddivise in singoli token.

Invece, BugLab esamina il codice nel suo insieme. In questo modo, ogni sintassi, espressione, simbolo e identificatore sono rappresentati come punti in un grafico, consentendo all'IA di "capire" la connessione e la relazione tra i vari nodi.

Architetture di rete neurale vengono quindi utilizzati per addestrare l'IA di debug. Sono in grado di estrarre informazioni dalla ricca struttura del grafico del codice e fornire ragioni per la relazione di ciascun nodo con gli altri.

BugLab funziona con codici reali?

È importante notare che BugLab non sostituisce un programmatore esperto. Questo perché i bug complessi non sono ancora a portata di mano.

L'obiettivo di Microsoft con l'intelligenza artificiale è rilevare e correggere i bug che si verificano comunemente come operatori booleani errati, come l'uso di "o" invece di "e" e viceversa, oltre a confronti di valori invertiti e variabili abusi.

Secondo Microsoft, i risultati sono promettenti, poiché BugLab è in grado di rilevare e correggere automaticamente circa il 26% dei bug in un pezzo di codice. Tuttavia, una percentuale significativa di accuratezza viene ancora persa a causa di falsi positivi e bug mancati.

Applicazioni future di Microsoft BugLab

L'obiettivo di Microsoft con BugLab è far risparmiare tempo agli sviluppatori di software, spesso speso a rivedere il loro codice alla ricerca del più piccolo dei bug.

Sebbene il modello di debug AI sia ancora in fase di elaborazione, ha la possibilità di trovare e correggere bug che vanno da scomodo a catastrofico. Ma in pochi anni, puoi aspettarti che BugLab diventi un must nel toolkit di ogni sviluppatore, anche se non è perfetto.

L'evoluzione esponenziale dell'autoapprendimento AI

Più tempo hanno i modelli di intelligenza artificiale come BugLab per allenarsi su esempi di vita reale, migliori e più accurati saranno i risultati che otterranno.

Uno degli ostacoli più impegnativi che i ricercatori Microsoft hanno dovuto affrontare durante lo sviluppo di BugLab è stato l'utilizzo della comprensione umana del codice e dell'intenzione nello strumento. Ma ora che questo è stato per lo più risolto, puoi aspettarti che BugLab migliori con il tempo.

Apprendimento profondo vs. Apprendimento automatico vs. AI: come vanno insieme?

Stai cercando di capire la differenza tra intelligenza artificiale, machine learning e deep learning? Ecco cosa significano tutti.

Leggi Avanti

CondividereTweetE-mail
Argomenti correlati
  • Programmazione
  • Microsoft
  • Suggerimenti per la codifica
  • Intelligenza artificiale
Circa l'autore
Anina Ot (89 articoli pubblicati)

Anina è una scrittrice freelance di tecnologia e sicurezza Internet presso MakeUseOf. Ha iniziato a scrivere di sicurezza informatica 3 anni fa nella speranza di renderlo più accessibile alla persona media. Desideroso di imparare cose nuove e un grande appassionato di astronomia.

Altro da Anina Ot

Iscriviti alla nostra Newsletter

Iscriviti alla nostra newsletter per suggerimenti tecnici, recensioni, ebook gratuiti e offerte esclusive!

Clicca qui per iscriverti