同样是评估大模型代码生成的测试质量,按行业常规的单参考方案算,14款基线模型的通过率有59.67%;但换成TestPrism这套新框架的核心指标,通过率直接掉到28%。这个反差,戳破了代码测试评估的一个普遍误区。
我们一直高估的测试质量
过去几年,大语言模型在代码生成上的进步,让自动生成测试的需求快速涨起来。但多数评估还是停留在“生成的测试能不能过某一个参考实现”——只要能通过预设的那套标准答案,就算合格。
但这个标准太松了。研究人员分析14款基线模型后发现,这种单参考评估会漏掉三类问题:测试没覆盖程序的异常行为,断言写得有漏洞,甚至测试本身的结构就有问题。比如同一段逻辑,不同的合法代码实现没被测试覆盖,或者测试会把合理的改动当成错误。按单参考算的高通过率,其实是“虚高”的。
TestPrism:用“三维标准”评测试
TestPrism就是为了补这个盲区设计的。它准备了300个测试任务,来自17个不同的数据源,还凑了3000个候选代码实现——合法的和非法的各占一半,用来检验测试的“辨对错能力”。
核心的联合成功函数,卡得很死:生成的测试首先得在初始程序状态下失败,不能一开始就“蒙对”;然后要能通过所有合法的代码实现,不能把合理的改动当成错误;最后还要把所有非法的实现都挡掉,不能漏判。三个条件同时满足才算合格,这也是它把通过率拉到28%的原因。
TestHelix:补全测试的最后一块短板
光有评估标准还不够,研究人员还推出了配套的TestHelix工具链,用来优化测试生成的过程。它把测试生成和代码修复结合起来,加入了同行交叉验证和递归自改进的机制,让测试从“能过参考”变成“真能辨对错”。
在两款模型上测试,TestHelix把联合成功率提了8.67到9个百分点,效果很明确——它让生成的测试不再是“为了过某套答案而凑数”,而是真的能检验代码的正确性。
如果把TestPrism这套评估标准推成行业默认,那些靠单参考“刷分”的测试会被淘汰多少?LLM生成代码的可靠性,又能提升多少?
素材来源:arXiv (LLM/多模态新论文) · AI情报、AI智能体、科研前沿
查看报道原文

发表第一条评论吧