Tom's Hardware Italia
Spazio e Scienze

Il bot che ripara i bug e inganna gli umani, è un test di Turing superato?

Il sistema automatico ha prodotto codice abbastanza valido da convincere i moderatori di GitHub.

Esistono molti sistemi automatici per trovare e correggere i bug nel software, compreso uno così credibile che è stato preso per un essere umano da altri sviluppatori. Si chiama Repairnator e lo ha creato Martin Monperrus, insieme a un team di ricercatori presso il KTH Royal Institute of Technology di Stoccolma (Svezia).

Repairnator è un bot che esamina il software, trova i bug ed scrive patch correttive. E lo fa piuttosto bene, visto che i suoi “colleghi” umani hanno visto il suo lavoro e lo hanno accettato – credendo che a scriverlo fosse stata una persona. Repairnator si è dunque rivelato un po’ più bravo rispetto ad altri software automatici – il cui codice in genere non è di buona qualità, per quanto possa tornare utile per velocizzare lo sviluppo.

Per realizzare il loro esperimento Monperrus e colleghi ha “travestito” Repairnator da programmatore iscritto a GitHub con il nome di Luc Escape. Guardando il profilo, sembra un giovane ricercatore del loro laboratorio. L’inganno si è reso necessario per assicurarsi che le patch pubblicate da Repairnator fossero giudicate senza pregiudizi dagli utenti GitHub – a quanto pare tendono ad avere qualche pregiudizio con i bot.

Il test è stato diviso in due sessioni: da febbraio a dicembre 2017 Repairnator è intervenuto su 14.188 progetti GitHub, dimostrandosi capace di fare 30 tentativi di correzione al giorno. Ha analizzato 11.500 progetti, riuscendo a riprodurre i problemi in 3.000 casi. E ha poi sviluppato quindici patch correttive. Nessuna di queste è stata però accettata, perché arrivata troppo tardi o giudicata di qualità scadente.

I ricercatori hanno quindi deciso di restringere il campo di azione, facendo lavorare Repairnator su un solo progetto. La seconda sessione ha avuto luogo da gennaio a giugno 2018, mesi durante i quali Repairnator ha lavorato su Travis CI. Già nei primi giorni, il 12 gennaio scorso, ha sviluppato una patch poi accettata dai moderatori. In quell’occasione Repairnator è stato “competitivo con gli esseri umani per la prima volta”. Dopo quella prima volta, sono state altre cinque le patch accettate.

Ci si può forse azzardare a parlare di un test di Turing parziale ma superato. Più importante, forse, è il fatto che strumenti come questo probabilmente cambieranno profondamente il mondo dello sviluppo software nei prossimi anni – se non altro perché daranno agli sviluppatori un po’ (o molto) tempo in più per concentrarsi sulla parte creativa del lavoro. La ricerca e la correzione dei bug infatti, a oggi, assorbe ancora moltissime ore lavoro in tutto il mondo.

La cattiva notizia è che quelle persone e quelle aziende che oggi ne hanno fatto un mestiere, forse, potrebbero avere qualcosa di cui preoccuparsi.

Fare un programma senza bug è probabilmente impossibile, ma tenersi vicino un manuale di Python può essere di aiuto.