I test generati spesso falliscono con implementazioni valide
In parole semplici
Il paper chiede se gli agenti di coding scrivono test capaci di distinguere i programmi corretti da quelli errati. Un controllo comune usa il programma originale e una sola risposta di riferimento, anche quando sono valide diverse implementazioni.
TestPrism aggiunge alternative valide e non valide. TestHelix crea più coppie di test e riparazioni, le confronta tra loro e migliora la strategia con cui le genera.
Nel set di test del paper, composto da 300 attività, il workflow finale ha superato gli agenti nativi per entrambi i gruppi di modelli, ma ha avuto successo in circa un terzo delle attività.
La ricerca
Se un test passa su un’implementazione di riferimento, dimostra che ha colto il comportamento richiesto dall’attività oppure soltanto che è compatibile con quel particolare programma?
I test generati possono rifiutare alternative valide o accettarne di non valide, facendo apparire un sistema più affidabile di quanto siano davvero i suoi test.
TestPrism valuta i test generati su alternative valide e non valide; TestHelix aggiunge verifiche tra pari e perfezionamento della strategia per migliorare l’affidabilità tra implementazioni.
TestPrism abbina 300 attività di test a un riferimento, altre quattro implementazioni valide e cinque non valide.
Ogni test inviato viene eseguito sul programma iniziale e su ogni candidato; per ottenere un esito positivo sull’attività deve fallire inizialmente, accettare tutti i candidati validi e rifiutare tutti quelli non validi.
Per Claude Fable 5.1, il punteggio sull’intero pannello è stato del 28.00%, contro il 59.67% del controllo sul solo riferimento.
Mantenendo fissi i test, l’aggiunta di candidati ha ridotto anche il punteggio medio: ciò sostiene l’interpretazione degli autori secondo cui il successo rispetto a un solo riferimento può sovrastimare l’affidabilità tra implementazioni.
Le evidenze riguardano pannelli di candidati fissi e bilanciati e specifiche validate delle attività in TestPrism. Non dimostrano una copertura semantica esaustiva, la prevalenza delle patch nel mondo reale o le prestazioni con specifiche che cambiano e in ambienti di esecuzione più ampi.
Analisi
Dettagli
- Autori
- Han Li, Lingxiang Hu, Jiacheng Huang, Ziqian Jiang, Jingkai Luo
- Licenza
- CC BY 4.0