SWE-bench è diventato in meno di due anni il test di riferimento per misurare la capacità dei modelli linguistici di scrivere e correggere codice software in contesti reali. Non è un esercizio accademico su problemi inventati: ogni task del benchmark corrisponde a un bug effettivamente segnalato e risolto in repository open source attivi e utilizzati da milioni di sviluppatori. Il modello riceve la descrizione del problema — la issue così come è stata aperta dal segnalatore — e deve generare una patch che lo risolva, interagendo con l’intera base di codice del progetto. La versione Verified, introdotta per eliminare i casi ambigui o mal formulati dal dataset originale, è diventata il punto di riferimento per i confronti tra modelli a inizio 2026.
Indice dei contenuti
ToggleCome funziona SWE-bench e perché è diverso dagli altri benchmark di coding
La maggior parte dei benchmark di coding esistenti testa la capacità di un modello di generare codice a partire da una specifica astratta in un ambiente pulito e isolato. HumanEval, creato da OpenAI, chiede al modello di implementare una funzione Python a partire da una docstring che ne descrive il comportamento atteso. MBPP presenta problemi di programmazione di livello introduttivo. Aider Polyglot valuta la capacità di generare codice in più linguaggi. Questi test misurano la capacità di generazione isolata — il modello scrive codice in un ambiente controllato, senza la complessità di un progetto reale, senza file multipli, senza dipendenze, senza la necessità di comprendere codice scritto da altri.
SWE-bench fa l’opposto. Il modello deve interagire con un intero repository software: comprendere la struttura del progetto con le sue cartelle, moduli e dipendenze, leggere file multipli scritti da sviluppatori diversi in momenti diversi, identificare dove si annida il bug — che potrebbe trovarsi in un punto molto diverso da quello che la issue sembra indicare — e generare una modifica che lo corregga senza rompere il resto del codice. I task sono estratti da progetti open source reali e molto usati: Django, Flask, scikit-learn, sympy, requests, matplotlib, tra gli altri. Sono software con centinaia di migliaia di righe di codice, storie di sviluppo lunghe anni, e convenzioni stilistiche proprie. La difficoltà non è scrivere codice da zero: è intervenire su codice altrui in un contesto articolato.
La versione Verified ha affinato il dataset eliminando i task con test di validazione ambigui, non riproducibili o con errori nella specifica del problema. Il sottoinsieme verificato — usato nella maggior parte delle valutazioni recenti con 477 task — dispone di test automatizzati che confermano in modo oggettivo se la patch generata dal modello risolve effettivamente il problema senza introdurre regressioni. Il tasso di risoluzione — la percentuale di task risolti correttamente — è il numero che compare nelle classifiche e nei comunicati stampa dei laboratori.
I punteggi dei modelli a inizio 2026: chi è in testa
GPT-5, al momento del lancio nell’agosto 2025, ha raggiunto il 74,9% su SWE-bench Verified — un salto netto rispetto ai modelli precedenti, che si fermavano tra il 40% e il 55%. Il dato ha segnato un punto di svolta nella percezione dell’IA applicata allo sviluppo software: per la prima volta, un modello linguistico risolveva correttamente quasi tre quarti dei bug reali proposti dal benchmark. Claude di Anthropic si è mantenuto competitivo, con punteggi tra i più alti in diverse configurazioni del test, specialmente in scenari con contesto esteso dove la documentazione del progetto è ampia. GPT-5.2, rilasciato a inizio 2026, ha ulteriormente migliorato le prestazioni grazie a una migliore capacità di usare strumenti e di iterare sulle soluzioni.
I modelli open source come Llama 4 e Qwen 2.5, pur mostrando progressi rispetto alle generazioni precedenti, restano distanti dai modelli proprietari di punta su questo benchmark specifico. Il gap è più marcato su SWE-bench che su altri test di coding perché risolvere bug in repository reali richiede capacità di ragionamento su scala — comprendere un intero progetto, non solo una singola funzione — e i modelli più grandi e meglio addestrati hanno un vantaggio strutturale su questo tipo di compito.
Un aspetto spesso trascurato nei confronti è che il punteggio varia significativamente in base alla configurazione dell’esperimento. Il modello da solo, in modalità zero-shot (riceve la issue e deve generare la patch al primo tentativo), ottiene punteggi molto inferiori rispetto a un setup agentico dove il modello può leggere file, eseguire test, correggere gli errori e reiterare la soluzione in un loop di feedback. I risultati migliori si ottengono con approcci agentici complessi, dove il modello opera come un assistente di sviluppo iterativo — ed è questa modalità che rispecchia il modo in cui l’IA viene effettivamente usata nella pratica dello sviluppo software professionale.
Perché SWE-bench interessa anche a chi non scrive codice
La capacità di un modello di risolvere bug reali in codice di produzione non è un dato di interesse solo per gli sviluppatori. È un indicatore che dice qualcosa di più generale sulla maturità operativa di un modello linguistico. Risolvere un bug in Django richiede: comprendere un sistema complesso fatto di molti componenti interdipendenti, ragionare su dipendenze multiple, individuare con precisione il punto di intervento in un contesto vasto, e produrre una modifica che funzioni senza effetti collaterali. Queste sono le stesse abilità richieste quando un modello deve analizzare un contratto legale con molte clausole interconnesse e identificare una contraddizione, o quando deve individuare un’anomalia in un dataset finanziario, o quando deve suggerire modifiche a un processo aziendale articolato.
SWE-bench, in questo senso, è un proxy per la capacità del modello di lavorare in modo affidabile su strutture complesse e interconnesse. Un modello che risolve correttamente il 75% dei bug reali ha dimostrato un grado di competenza misurabile su problemi concreti — non su quiz a risposta multipla o su problemi progettati per essere risolti. Un modello che ne risolve il 30% è ancora troppo inaffidabile per essere usato senza supervisione costante in un contesto produttivo.
Per i dirigenti e i decisori aziendali che valutano quale modello adottare per i propri team di sviluppo — o più in generale per l’automazione di compiti complessi — SWE-bench offre un criterio meno astratto di molti altri benchmark. La domanda non è “quanto bene il modello risponde a quiz scientifici”, ma “quanto bene il modello lavora su problemi reali in un ambiente di produzione”. La risposta ha implicazioni dirette sui costi di sviluppo, sulla velocità di rilascio del software, sulla qualità del prodotto finale e sulla possibilità di ridurre il tempo dei developer impiegato in attività di debug e manutenzione per dedicarlo a compiti di progettazione e innovazione.
I limiti di SWE-bench come strumento di valutazione
SWE-bench non è privo di limiti e va usato con consapevolezza delle sue caratteristiche. Il dataset è composto prevalentemente da repository Python, il che introduce un bias linguistico: un modello che eccelle su SWE-bench potrebbe essere meno forte su codice Java, C++, Rust, Go o TypeScript — linguaggi ampiamente usati nell’industria. I task sono estratti da progetti open source maturi, con documentazione estesa, struttura ben definita e pratiche di testing consolidate — un contesto diverso da quello di una startup con codice disordinato, poca documentazione e test frammentari.
Il benchmark misura la risoluzione di bug noti — problemi già identificati e documentati in una issue tracker — non la capacità di individuare bug sconosciuti, di progettare architetture software da zero, di prendere decisioni di design in condizioni di incertezza, di negoziare requisiti con un product manager, o di scrivere codice per specifiche vaghe e in evoluzione. Un modello che eccelle su SWE-bench non è automaticamente in grado di sostituire un software architect o di gestire un progetto software complesso dall’inizio alla fine. I due tipi di compito richiedono capacità parzialmente diverse: il primo è più tecnico ed esecutivo, il secondo richiede visione, giudizio e capacità di comunicazione che oggi restano prerogativa umana.
Un aspetto critico e molto dibattuto nella comunità di ricerca è la possibile contaminazione dei dati di addestramento. Se un modello è stato addestrato su dati che includono le soluzioni dei bug presenti nel dataset di SWE-bench — le pull request con le patch già applicate — il punteggio risulta artificialmente gonfiato perché il modello “ricorda” la soluzione piuttosto che derivarla ex novo. La versione Verified mitiga parzialmente questo problema selezionando task verificati e riproducibili, ma il rischio di data leakage resta un tema aperto. I laboratori più scrupolosi testano su versioni del benchmark con task cronologicamente successivi alla data di cutoff dei dati di addestramento — ma non tutti lo fanno, e la comparabilità dei risultati ne risente.
Da benchmark accademico a strumento decisionale per le imprese
Per le imprese italiane che stanno integrando l’IA nei propri processi di sviluppo software, SWE-bench Verified fornisce un criterio di selezione concreto. Se il caso d’uso principale è la revisione del codice, la correzione di bug in codebase esistenti o l’assistenza nella manutenzione di software legacy, il punteggio su SWE-bench è il dato più rilevante da consultare nella scelta del modello. Se il caso d’uso è la generazione di codice ex novo, la prototipazione rapida o la conversione tra linguaggi di programmazione, altri benchmark — come Aider Polyglot o HumanEval — possono essere più indicativi.
La tendenza è chiara: i modelli linguistici stanno diventando strumenti di lavoro quotidiani per gli sviluppatori, non gadget da provare una volta e dimenticare. Il tasso di adozione dei coding assistant AI è in crescita costante — GitHub Copilot, Cursor, Cline, Claude Code — e le aziende che li integrano nei flussi di sviluppo riportano riduzioni significative dei tempi di debug, revisione del codice e onboarding di nuovi sviluppatori su codebase esistenti. SWE-bench è il metro che permette di confrontare gli strumenti disponibili e di verificare se i progressi dichiarati dai laboratori nei comunicati stampa corrispondono a miglioramenti reali nella pratica quotidiana dello sviluppo.
Per chi deve prendere decisioni di acquisto o integrazione, il consiglio pratico è semplice: guardare i numeri, verificare la configurazione del test (zero-shot vs agentico, con o senza iterazione, con o senza strumenti ausiliari), e non fermarsi al punteggio aggregato. Il contesto in cui il modello viene valutato cambia il risultato in modo sostanziale: un modello che raggiunge il 75% in setup agentico potrebbe fermarsi al 40% in zero-shot. Il benchmark conta, ma conta di più capire come la configurazione del test si traduce nel proprio ambiente di lavoro — e testare direttamente il modello sui propri casi d’uso reali resta il passo decisivo che nessun benchmark può sostituire. Per le imprese italiane che stanno valutando l’adozione di coding assistant AI, SWE-bench è il punto di partenza per una scelta informata — non il punto di arrivo.
di Redazione AIPIA
Contenuti a cura della redazione dell'Associazione Italiana Professionisti dell'Intelligenza Artificiale.
