Abbiamo parlato spesso di come le intelligenze artificiali e gli algoritmi di machine learning stiano per rivoluzione il settore dello sviluppo software. Facebook ha annunciato recentemente al pubblico un nuovo strumento che applica a pieno tali tecnologie per rendere la vita più semplice agli sviluppatori, il nuovo tool Getafix è infatti capace di risolvere da solo i bug più comuni, imparando e migliorando se stesso tramite la lettura delle correzione eseguite in precedenza dagli stesi sviluppatori.
Getafix trova automaticamente correzioni per i bug e li mostra agli sviluppatori che possono scegliere se applicare tali accorgimenti oppure implementare una nuova soluzione, consentendo agli ingegneri di lavorare in modo più efficace e garantendo una migliore qualità complessiva del codice. Getafix è uno dei primi tool di questa tipologia ad essere stata implementata in un insieme di sistemi di produzione su scala, questo ha reso il team di Facebook pioniere in tale settore. Getafix contribuisce infatti alla stabilità e alle prestazioni delle applicazioni utilizzate da miliardi di persone ogni giorno.
Getafix sta alla base del tool Sapfix, che suggerisce correzioni per i bug rilevati dallo strumento di test Sapienz. Questo strumento fornisce anche correzioni per i bug trovati da Infer, il tool di test statico usato dal team di Facebook. Getafix apprende da correzioni già effettuate e modifiche eseguite al codice dagli sviluppatori, dunque ciò che suggerisce si bassa anche su un'esperienza passata, oltre ai classici modelli preconfezionati, quindi più lo si usa più tale tool diventa preciso nel suggerire soluzioni che si adattano al nostro stile o magari al nostro progetto.
Getafix rappresenta quindi un'evoluzione della precedente tecnologia di correzione automatica e utilizza tecniche più potenti per l'apprendimento degli schemi di correzione, ciò grazie ad un algoritmo di clustering più performante che analizza anche il contesto in cui sono presenti le righe di codice che rileva come problematiche, cosi da individuare le correzioni più appropriate. Per superare i limiti delle precedenti tecnologie di correzione, gli sviluppatori di Facebook hanno creato uno strumento che apprende non solo dalle precedenti modifiche degli ingegneri alla codebase ma anche dai modelli nascosti, basati sul contesto, che può usare per identificare i problemi e suggerire i rimedi più probabili per i nuovi bug scoperti.
Le codebase di produzione moderne sono estremamente complesse e vengono aggiornate costantemente, dunque Facebook aveva la necessità di affidarsi ad un sistema di supporto evoluto che potesse apprendere dagli errori e dell'esperienza diretta degli ingegneri software. L'obiettivo di Getafix è lasciare che i computer si occupino del lavoro di routine, pur rimanendo sotto l'occhio vigile di un operatore umano.
Getafix funziona applicando un metodo di raggruppamento gerarchico alle migliaia di modifiche del codice eseguite in passato ed esaminando le correlazioni tra correzioni e contesto in cui tale fix è stato applicato.
Via code.fb.com