← 最新论文
💻 计算机科学

Auditable Acceptance of LLM-Generated Code:An Evidence-Based Testing Architecture and Multi-Source Evaluation

本文介绍了智能测试基础设施(ITI),这是一种将验证结果与代码候选方案相链接的循证架构,旨在实现可审计的验收决策,并展示了其在降低验证开销和减少误验收方面的能力,同时强调了需要通过独立仲裁来确认在正确性判别能力上的提升。

原作者: Zhiyuan Li, Li Feng, Yurui Feng, Chaofan Ji, Jian Xu, Chen Chen

发布于 2026-10-21
📖 1 分钟阅读☕ 轻松阅读

原作者: Zhiyuan Li, Li Feng, Yurui Feng, Chaofan Ji, Jian Xu, Chen Chen

原始论文采用 CC BY 4.0 许可(https://creativecommons.org/licenses/by/4.0/)。 ✨ 这是对下方论文的AI生成解释。它不是由作者撰写或认可的。如需技术准确性,请参阅原始论文。 阅读完整免责声明

在现代软件世界中,计算机正在越来越多地编写自己的代码。大型语言模型——这种与起草电子邮件或总结新闻相同的类型的人工智能——现在正被要求编写运行我们应用程序的复杂指令。这种转变提供了惊人的速度,但也引入了一个根本性的问题:我们如何知道代码确实是正确的?一个计算机程序可能会通过一组特定的测试,但仍可能以那些测试从未预料到的方式失败。正如一座桥梁在轻载下能承受住,但在重型卡车下可能会坍塌一样,通过了基础检查的代码可能仍然包含隐藏的错误。工程师面临的挑战不仅是运行测试,而是要理解这些测试究竟证明了什么,从而区分一段真正安全的代码和一段仅仅尚未被发现错误的代码。

这个问题正是来自西南交通大学、布里斯托大学和四川农业大学研究人员的一项新研究的核心。他们致力于构建一个系统,该系统不仅仅是说“通过”或“失败”,而是能够创建一个详细的、可审计的记录,说明一段代码被接受、拒绝或送交进一步审查的原因。他们将这个系统称为智能测试基础设施(Intelligent Testing Infrastructure,简称 ITI)。研究人员并没有将代码生成视为一个神奇的黑盒,而是将重点放在了验证的复杂现实上:记录具体运行了哪些测试、这些测试覆盖了哪些内容,以及这些测试究竟能产生多少置信度。他们的工作表明,虽然我们可以使测试更加严格,但仅仅增加测试数量并不一定会自动提高我们最终筛选代码的安全性。事实上,他们的实验表明,更严格的规则在拦截坏代码的同时,也会同样频繁地拦截好代码,导致接受存在缺陷程序的整体风险保持不变。

研究人员通过设计一个充当谨慎守门人的工作流来解决这个问题。当一段代码到达时,它不仅仅接受快速检查;它还要在受控条件下接受一系列验证。系统会记录每一个细节:代码的具体版本、用于测试的工具,以及运行时的确切环境。至关重要的是,系统会对结果进行三种区分。如果测试发现了明确的错误,则拒绝该代码。如果测试未发现问题,但证据感觉不充分或测试强度不够,则将代码提升至进一步审查阶段。只有当证据既完整又积极时,代码才会被接受。这一过程创造了一个“决策冻结”(decision freeze),即在揭示关于代码是否真正正确的任何外部知识之前,先锁定证据。这确保了决策完全基于当时已知的信息,使得整个过程透明且可供日后审查。

为了验证这种方法是否奏效,团队进行了两种不同类型的实验。第一种是受严格控制的研究,研究人员自行构建了 80 段包含特定已知错误的程序代码。他们将这些代码与一组基础检查集以及第二组更彻底的检查集进行对比测试。结果是具有启发性的。第二组测试捕捉到了第一组遗漏的 16 段错误代码,证明了更强大的测试确实可以发现更多错误。然而,当研究人员应用其严格的“接受-升级-拒绝”规则时,结果却不那么乐观。严格的规则成功减少了被接受的坏代码数量,但也按比例拒绝了同样数量的好代码。结果是,最终被接受的代码中包含错误的比例与之前完全一致,仍为 50%。换句话说,通过变得更加谨慎,他们并没有让最终的代码批次变得更安全,只是让这批代码的数量变小了。

随后,研究人员在更大规模、更真实的场景下测试了该系统,使用了由 Qwen 和 DeepSeek 两个不同的 AI 模型生成的 200 段代码,涵盖 50 个不同的编程任务。在这里,该系统展现了另一种价值。通过使用一种智能升级策略,该系统能够达到与对所有 200 个候选对象都运行最昂贵、最强大测试时相同的最终决策,但它仅对其中的 132 个对象运行了这些重型测试。这节省了大量的计算时间和资源。然而,当研究人员观察被接受的代码质量时,该系统的表现并不比随机选择同等规模的代码更好。这个“智能”系统并没有比随机选择更好地挑选出优质代码;它只是通过避免对明显坏或明显好的代码进行不必要的检查,从而节省了成本。

该研究还检查了测试本身的结构,探讨了不同的测试是在发现不同类型的错误,还是仅仅在重复相同的检查。他们发现,在许多大型测试集中,很大一部分是冗余的,这意味着它们在寻找完全相同的错误。另一些则是“零检测”测试,即它们无法在原本应该捕捉到的已知坏代码中发现任何错误。此外,他们还发现许多错误仅能被单个测试捕捉到。如果那个唯一的测试失效或被移除,该错误就无法被察觉。这种脆弱性表明,如果测试缺乏多样性和鲁棒性,拥有大量的测试并不保证安全性。

最终,论文得出结论,虽然智能测试基础设施成功创建了一个清晰、可审计的决策过程记录,但它尚未解决如何挑选出最佳代码的问题。该系统在记录决策过程和通过跳过不必要的检查来节省资源方面表现良好,但尚未证明它能比随机选择更可靠地分辨好代码与坏代码。研究人员强调,他们的发现是基于特定的、受控的实验,并且代码的“正确性”通常是由其他人工智能模型而非独立的专家来判断的。他们认为,下一步应当是用真正的独立验证以及该系统从未见过的任务来测试该系统。在此之前,该系统所提供的最有价值的东西不是安全性的保证,而是一份关于在旅程中的每一步已知信息及决策过程的清晰、诚实的记录。

您所在领域的论文太多了?

获取与您研究关键词匹配的最新论文每日摘要——附技术摘要,使用您的语言。

试用 Digest →