Con l'aumento dell'uso degli strumenti di codifica AI, i codebase sono diventati più soggetti a vulnerabilità, il che ha aumentato la necessità di revisioni del codice efficaci. Per affrontare questo problema, presentiamo RevEval (AI Code Review Eval), che confronta i primi quattro strumenti di revisione del codice AI su 309 pull request provenienti da repository di dimensioni variabili e ne valuta le prestazioni utilizzando l'input di 10 sviluppatori e un LLM-as-a-judge.
Risultati del Confronto
CodeRabbit si è classificato come lo strumento di revisione del codice più efficace nel 51% delle 309 PR:
Per misurare la classifica abbiamo utilizzato i punteggi LLM-as-a-judge. Abbiamo esaminato quale strumento di revisione del codice AI ha ottenuto il punteggio più alto in ciascuna PR (valutato utilizzando il nostro LLM-as-a-judge) e quindi calcolato la percentuale di tutte le PR in cui ogni strumento si è classificato al primo posto.
CodeRabbit ha ottenuto il punteggio più alto sia nelle valutazioni umane manuali che nelle valutazioni LLM-as-a-judge, seguito da Greptile e GitHub Copilot:
Calcolando il punteggio medio, tutte e tre le categorie di valutazione sono state ponderate in modo uguale. I punteggi dei repository grandi e quelli dei repository piccoli sono stati valutati da un LLM-as-a-judge, mentre le valutazioni degli sviluppatori sono state completate manualmente per verificare i punteggi LLM-as-a-judge.
Valutazioni umane
Abbiamo chiesto agli sviluppatori che hanno partecipato alle valutazioni quale strumento di revisione del codice AI preferirebbero integrare nei loro flussi di lavoro. Poiché i CTO svolgono un ruolo chiave nel processo decisionale nello sviluppo software, abbiamo evidenziato le loro risposte in un grafico separato:
Confronto dettagliato
Abbiamo calcolato il numero medio di bug per PR contando tutti i bug/problemi segnalati da ciascuno strumento di revisione del codice e dividendo per il numero totale di PR (309). Non tutte le PR nel nostro codebase contengono bug o problemi. GitHub Copilot non segnala esplicitamente quando rileva un bug in una PR; pertanto, è stato escluso da questo confronto.
Puoi vedere la nostra metodologia di seguito.
Funzionalità
* È fornito dalla funzionalità "controlli pre-merge agentic" di CodeRabbit. Valuta automaticamente le pull request rispetto agli standard di qualità e ai requisiti organizzativi personalizzati prima del merge e restituisce risultati di passaggio/fallimento con spiegazioni direttamente nella navigazione della PR. Ogni controllo può essere configurato per avvisare gli sviluppatori o bloccare completamente i merge. Sebbene GitHub Copilot, Cursor BugBot e Greptile offrano funzionalità di revisione delle PR, funzionano come sistemi di consulenza che offrono feedback e suggerimenti piuttosto che framework di validazione sistematici.
** Cursor e GitHub Copilot potrebbero offrire più funzionalità oltre ai loro componenti di revisione del codice; solo le funzionalità di Cursor Bugbot e GitHub Copilot Code Review sono incluse nel nostro confronto.
Le funzionalità variano a seconda dei piani di abbonamento, quindi alcune funzionalità contrassegnate come disponibili sopra potrebbero non essere disponibili nel tuo abbonamento.
Nelle revisioni del codice automatizzate, CodeRabbit, GitHub Copilot e Cursor Bugbot erano più facili da configurare rispetto a Greptile perché le revisioni del codice automatizzate non possono essere abilitate per un repository vuoto in Greptile.
Approfondimento delle funzionalità
CodeRabbit
- Oltre 40 linter e scanner di sicurezza integrati.
- Istruzioni personalizzate basate su pattern AST.
- Si adatta dai feedback degli sviluppatori nel tempo.
- Gli sviluppatori possono taggare @coderabbitai per chiedere follow-up, richiedere correzioni, mettere in discussione i suggerimenti.
- Supporta server MCP personalizzati per un contesto aggiuntivo.
GitHub Copilot Code Review
- Il pulsante "Implementa suggerimento" passa all'agente di codifica Copilot.
- Integrazione stretta con l'ecosistema GitHub.
- Istruzioni personalizzate tramite copilot-instructions.md.
Greptile
- Impara gli standard di codifica del team dalla cronologia dei commenti delle PR.
- Con i repository pattern gli sviluppatori possono fare riferimento a repository correlati in greptile.json in modo che possano fornire un contesto aggiuntivo.
- Gli sviluppatori possono rispondere con @greptileai per domande di follow-up o suggerimenti di correzione.
- Greptile impara dai feedback con pollice su/giù.
- Gli diagrammi di sequenza auto-generati per tutte le PR.
Cursor BugBot
- Dopo che un bug è stato identificato da BugBot, gli sviluppatori possono utilizzare il pulsante "Fix in Cursor" per aprire rapidamente Cursor per correggere il Bug.
- Gli sviluppatori possono personalizzare le proprie regole di revisione del codice nei file BUGBOT.md.
Abbiamo anche intenzione di confrontare Graphite; tuttavia, a causa di un bug nella loro dashboard, non siamo riusciti ad abilitare le revisioni del codice automatizzate per i nuovi repository. Abbiamo contattato il loro team di supporto il 25 ottobre 2025, ma la risposta non ha risolto il problema. Nonostante le email di follow-up e un messaggio nel loro canale Slack, il problema è rimasto irrisolto.
Componenti e integrazioni
* Tutte queste soluzioni supportano GitHub.
Metodologia
Abbiamo creato repository di confronto separati per ogni strumento all'interno della nostra organizzazione GitHub dedicata.
Dopo aver abilitato le revisioni del codice automatiche per ogni strumento nel suo repository assegnato, abbiamo aperto le pull request in sequenza, abbiamo atteso che lo strumento completasse la sua revisione e quindi abbiamo chiuso le PR per registrare i risultati. Non abbiamo modificato o regolato alcuna impostazione dello strumento. Ogni strumento è stato valutato utilizzando la sua configurazione predefinita, esattamente come installato.
Il nostro flusso di lavoro inizia clonando il repository sorgente così come esisteva in una data di base selezionata, quindi riproducendo le pull request inviate dopo quella data una per una, preservando la struttura originale del repository.
Abbiamo utilizzato le versioni di novembre 2025 di tutti i prodotti. Il nostro confronto è consistito in 2 diversi intervalli di repository sorgente:
1. Repository di dimensioni medio-grandi ben noti
Abbiamo voluto vedere quanto bene gli strumenti di revisione del codice AI comprendono i repository con strutture grandi e complesse. Abbiamo 289 PR revisionate in totale su 7 repository.
2. Repository piccoli e nuovi
Siamo consapevoli che non possiamo alimentare il nostro LLM-as-a-judge con il
intero repository nei repository grandi, poiché le loro finestre di contesto non sono sufficienti per questo. Pertanto, per superare questo problema, abbiamo valutato anche le prime 3-5 PR di repository nuovi e piccoli. I server MCP si adattano perfettamente alle nostre esigenze. Di conseguenza, abbiamo scelto 8 server MCP ufficiali e abbiamo fatto revisionare 20 PR su di essi.
Il nostro dataset contiene codice scritto da sviluppatori esperti. Non abbiamo valutato le prestazioni su codebase completamente generati dall'AI.
Valutazioni degli Sviluppatori
Abbiamo selezionato casualmente 35 PR e le abbiamo assegnate a 10 sviluppatori, con ogni PR valutata 5 volte dagli sviluppatori. Il nostro obiettivo nel ripetere la valutazione era minimizzare il bias degli sviluppatori. Gli sviluppatori hanno valutato i risultati in modo indipendente dal fornitore.
La maggior parte di loro ha raggiunto le stesse intuizioni di alto livello:
- Le recensioni dettagliate di CodeRabbit sono utili ed è efficace nel rilevamento dei bug.
- Greptile ha fornito riassunti efficaci, ma i diagrammi di sequenza generati non sono necessari per alcune PR.
Figura 1: Esempio di diagramma di sequenza fornito da Greptile. Greptile genera i diagrammi per ogni PR.1
- GitHub Copilot è molto efficace nel trovare errori di battitura nel codice e fa suggerimenti perfetti; la sua analisi è più breve di quella di CodeRabbit e Greptile.
- Cursor Bugbot fornisce un'analisi meno dettagliata e meno accurata.
Dopo le valutazioni, hanno anche dichiarato che inizieranno a utilizzarli nei propri repository come strumento di supporto per gli sviluppatori.
LLM-as-a-Judge
Abbiamo utilizzato GPT-5 per valutare le recensioni. Dopo la valutazione, abbiamo utilizzato GPT-4o per strutturare l'output in formato JSON.
Il nostro flusso di lavoro di valutazione include:
- Per i repository grandi: Il corpo originale della PR, il diff e i commenti/recensioni dagli strumenti.
- Per i repository piccoli: Tutto il codebase, il corpo originale della PR, il diff e i commenti/recensioni dagli strumenti.
Ecco il prompt completo che abbiamo utilizzato:
Valuta ogni strumento su queste dimensioni (scala 1-5):
1. Correttezza
Le questioni identificate sono realmente problemi/bug/correzioni nel codice?
– 5 (Eccellente): Tutte le questioni identificate sono problemi reali
– 4 (Buono): La maggior parte delle questioni sono reali, errori di identificazione minori
– 3 (Accettabile): Miscela di questioni reali e discutibili
– 2 (Scarso): La maggior parte delle questioni identificate non sono problemi reali
– 1 (Fallito): Non riesce a identificare problemi reali, tutti i risultati sono errati
2. Completezza
Ha colto problemi importanti? Quanto è esaustiva la revisione?
– 5 (Eccellente): Coglie tutti i problemi critici e la maggior parte di quelli importanti.
– 4 (Buono): Coglie i problemi principali, ne manca alcuni minori
– 3 (Accettabile): Coglie alcuni problemi importanti ma ha lacune notevoli
– 2 (Scarso): Manca diversi problemi critici
– 1 (Fallito): Manca tutti o quasi tutti i problemi critici
3. Azionabilità
I suggerimenti sono chiari e implementabili? Include patch/correzioni? Se non ci sono bug nel codice, scrivi "null" per l'azionabilità a tutti gli strumenti, non dare punteggi a nessuno strumento per quella PR.
– 5 (Eccellente): Tutti i suggerimenti includono patch/correzioni chiare e sono direttamente implementabili
– 4 (Buono): La maggior parte dei suggerimenti ha indicazioni chiare, alcuni includono patch
– 3 (Accettabile): I suggerimenti sono in qualche modo chiari ma mancano patch per alcuni problemi
– 2 (Scarso): I suggerimenti sono per lo più poco chiari o non implementabili
– 1 (Fallito): Nessun suggerimento o indicazione chiara fornito
4. Profondità
Mostra comprensione della logica e dello scopo del codice?
– 5 (Eccellente): Dimostra una profonda comprensione della logica del codice, dell'architettura e dello scopo
– 4 (Buono): Mostra una buona comprensione con lacune minori
– 3 (Accettabile): Comprensione superficiale, manca di qualche contesto
– 2 (Scarso): Spiegazioni superficiali o errate del comportamento del codice
– 1 (Fallito): Nessuna comprensione della logica e dello scopo del codice
Formato di Output
Per ogni strumento, fornisci:
1. Ragionamento dettagliato: Cosa ha trovato? Ha mancato problemi importanti? Patch incluse? Profonda comprensione del codebase? Esempi specifici.
2. Punteggi individuali (1-5 per ogni dimensione, utilizzando la scala sopra)
Esempio di Output
Strumento A:
Ragionamento: Lo strumento A ha dimostrato un'eccellente correttezza identificando una vera perdita di memoria nella logica di pooling delle connessioni alla riga 145, fornendo una patch specifica utilizzando un gestore di contesto. Ha anche colto la gestione degli errori mancante nell'API endpoint con codice azionabile. Il punteggio di completezza riflette che, sebbene abbia trovato problemi principali, ha mancato la condizione di gara nell'handler asincrono che potrebbe causare problemi di produzione. Tutti i 4 commenti erano sostanziali e direttamente implementabili. La profondità era forte, mostrando una comprensione dei modelli di gestione delle risorse e della propagazione degli errori nel codebase.
Correttezza: 5
Completezza: 4
Azionabilità: 5
Profondità: 4
Strumento B:
Ragionamento: Lo strumento B ha correttamente identificato la vulnerabilità di convalida dell'input alla riga 89 e ha fornito una correzione chiara utilizzando la sanificazione dei parametri. Tuttavia, la completezza ha sofferto significativamente poiché ha mancato la vulnerabilità di sicurezza critica nel flusso di autenticazione che consente il riutilizzo del token. L'azionabilità era per lo più buona – i suggerimenti includevano frammenti di codice. La profondità era accettabile ma superficiale, concentrandosi su controlli di livello superficiale piuttosto che comprendere il modello di sicurezza o le implicazioni del flusso di dati.
Correttezza: 4
Completezza: 1
Azionabilità: 4
Profondità: 2
Strumenti da valutare: CodeRabbit, Cursor Bugbot, Github Copilot, Greptile
Sii obiettivo e completo. Usa esempi specifici dalle recensioni per supportare i tuoi punteggi.
Cos'è la revisione del codice AI?
La revisione del codice AI è l'analisi automatizzata del codice sorgente utilizzando modelli di apprendimento automatico, principalmente grandi modelli linguistici (LLMs), per identificare bug, inefficienze e potenziali vulnerabilità. Oltre a rilevare problemi, questi sistemi possono fornire spiegazioni consapevoli del contesto, suggerire correzioni concrete e generare patch che aiutano gli sviluppatori a migliorare sia la qualità del codice che la manutenibilità. Molti strumenti di revisione AI assistono anche con la documentazione riassumendo le modifiche e producendo commenti descrittivi o spiegazioni per il codice appena aggiunto.
Poiché i modelli AI possono valutare il codice rapidamente e su larga scala, accelerano significativamente il processo di revisione e rendono più facile cogliere i problemi nelle fasi iniziali mantenendo standard di codifica coerenti in progetti grandi o in rapida evoluzione.
Negli ambienti di sviluppo moderni assistiti dall'AI come Cursor o Claude Code, gli sviluppatori potrebbero involontariamente perdere il controllo di come il loro codebase evolve quando "vibe coding" o affidandosi pesantemente a suggerimenti auto-generati. Questo può introdurre vulnerabilità nascoste o incoerenze logiche. Gli strumenti di revisione del codice AI aiutano a mitigare questi rischi fornendo un ulteriore livello di analisi strutturata e sistematica per convalidare e migliorare il codice generato dall'AI.
Vantaggi della revisione del codice AI
Efficienza e velocità
Gli strumenti di revisione del codice AI possono analizzare il codice in tempo reale, fornendo feedback immediato e segnalando potenziali problemi mentre gli sviluppatori lavorano. Sono in grado di rilevare errori e vulnerabilità di sicurezza che i revisori umani potrebbero trascurare, specialmente in codebase grandi o in rapida evoluzione. Automatizzando i controlli di routine, questi strumenti permettono agli sviluppatori di concentrarsi su ragionamenti di livello superiore, risoluzione di problemi complessi e decisioni architetturali.
Miglioramento della qualità del codice
Gli strumenti di revisione del codice AI aiutano a mantenere standard di codifica coerenti tra i team identificando incoerenze stilistiche e deviazioni dalle migliori pratiche. Offrono anche feedback dettagliati e raccomandazioni su un'ampia gamma di problemi di codifica, da piccoli miglioramenti a bug significativi. Nel tempo, gli sviluppatori possono imparare da questo feedback, affinare le proprie abitudini di codifica e adottare nuove tecniche che rafforzano la qualità complessiva del loro lavoro.
Limiti e sfide
Eccessiva dipendenza dagli strumenti AI
Una preoccupazione comune con la revisione del codice AI è l'eccessiva dipendenza dal feedback automatizzato. Sebbene l'AI possa essere una preziosa fonte di intuizioni, non dovrebbe essere trattata come un sostituto completo dell'esperienza umana. Le revisioni automatizzate possono accelerare i flussi di lavoro, ma i revisori umani rimangono essenziali per garantire correttezza, consapevolezza del contesto e allineamento con gli obiettivi del progetto. Nel nostro confronto, gli sviluppatori hanno dichiarato costantemente che non si affiderebbero ciecamente a questi strumenti. Li hanno visti come assistenti che integrano il giudizio umano piuttosto che sostituirlo.
Gestione dei falsi positivi e dei falsi negativi
I falsi positivi si verificano quando lo strumento identifica erroneamente un codice funzionante come problematico, mentre i falsi negativi si verificano quando vengono mancati problemi genuini. Nella nostra valutazione, la preoccupazione più significativa è stata quella dei falsi negativi. Gli strumenti erano più propensi a trascurare problemi importanti che a sollevare avvisi errati. Questo sottolinea la necessità di un miglioramento continuo nei modelli e negli algoritmi sottostanti.
Per affrontare queste sfide, gli strumenti di revisione del codice AI devono evolversi attraverso una migliore formazione, una gestione del contesto migliorata e capacità di ragionamento più accurate.
Migliori pratiche per l'uso delle revisioni del codice AI
Consigli dagli esperti
Abbina le revisioni AI alle intuizioni umane: Usa le revisioni del codice AI insieme alle revisioni umane per garantire che il codice sia tecnicamente solido e allineato con gli obiettivi del progetto.
Personalizza le regole per adattarle al tuo progetto: Regola le regole dello strumento AI per corrispondere agli standard di codifica del tuo progetto per ridurre gli avvisi non necessari.
Usa il feedback AI come strumento di apprendimento: Tratta i suggerimenti AI come un modo per imparare e migliorare, discutendoli con il tuo team per capire perché e come evitare problemi simili in futuro.
Ringraziamenti
Estendiamo il nostro sincero ringraziamento agli sviluppatori che hanno contribuito con il loro tempo e la loro esperienza per eseguire le valutazioni manuali:
Aziz Durmaz (CTO in una compagnia di trasporti e logistica)
Berk Kalelioğlu (co-fondatore di uno studio di sviluppo di giochi)
Elif Ece Örnek (ingegnere software in un sito web di viaggi)
Haydar Külekçi (consulente in una compagnia di tecnologie di ricerca e AI)
Mehmet Şirin Can (capo dello sviluppo in AIMultiple)
Mehmet Korkmaz (CTO in una compagnia media nel settore degli e-sports e dei videogiochi)
Murat Orno (ex CTO in una piattaforma di pagamento regionale con oltre 500 dipendenti)
Orçun Candan (sviluppatore full-stack in AIMultiple)
Yalçın Börlü (ingegnere software senior in una compagnia di salute e benessere)
Yiğit Dinç (co-fondatore di una compagnia legal tech)
Ringraziamo anche gli sviluppatori e i manutentori dei repository open-source inclusi nel nostro confronto per il loro lavoro e i preziosi contributi alla comunità.
Anonimizzazione delle identità originali degli sviluppatori
Per condurre il confronto in modo responsabile, abbiamo anonimizzato tutti i nomi e gli indirizzi email originali degli sviluppatori quando abbiamo riprodotto le pull request dai repository upstream. Poiché i repository di confronto sono pubblici, preservare le informazioni originali dell'autore potrebbe esporre involontariamente dati personali e creare il rischio di notificare gli sviluppatori ogni volta che una pull request ricreata viene aperta o aggiornata. Sebbene GitHub non notifichi tipicamente gli autori quando i loro commit vengono riprodotti in un repository separato, abbiamo considerato buona pratica evitare qualsiasi possibilità di notifiche indesiderate, problemi di attribuzione o preoccupazioni sulla privacy.
L'anonimizzazione garantisce che:
- Gli sviluppatori non siano disturbati da migliaia di eventi PR automatizzati.
- Le informazioni personali non siano ripubblicate in un diverso repository pubblico.
- I confronti rimangano imparziali, impedendo agli strumenti o ai giudici LLM di essere influenzati da nomi di autori riconoscibili.
- Le norme etiche e sulla privacy siano mantenute quando si lavora con contributi open-source.
Solo i metadati dell'identità sono stati alterati; tutto il codice, i diff, l'ordinamento dei commit e le strutture dei file sono stati preservati esattamente per mantenere l'autenticità e la riproducibilità del confronto.
Cita questo benchmark
Scegli il formato adatto a dove pubblicherai. Incollare la versione con link nel tuo CMS preserva il backlink.
@misc{dilmegani2026,
author = {Dilmegani, Cem and Alper, Şevval},
title = {{Confronto degli Strumenti di Revisione del Codice AI}},
year = {2026},
month = mar,
howpublished = {\url{https://aimultiple.com/ai-code-review-tools}},
note = {AIMultiple. Consultato il 13 Marzo 2026}
}

Sii il primo a commentare
Il tuo indirizzo email non verrà pubblicato. Tutti i campi sono obbligatori. I commenti vengono lasciati nella loro lingua originale.