DryRUN: On the Role of Public Tests in LLM-Driven Code Generation

📄 arXiv: 2604.21598v1 📥 PDF

作者: Kaushitha Silva, Srinath Perera

分类: cs.SE, cs.AI

发布日期: 2026-04-23

备注: 9 pages, 6 figures


💡 一句话要点

DryRUN:无需公共测试用例,LLM自主生成代码并纠错

🎯 匹配领域: 支柱九:具身大模型 (Embodied Foundation Models)

关键词: 代码生成 大型语言模型 自主调试 模拟执行 自我纠错

📋 核心要点

  1. 现有代码生成框架依赖人工提供的公共测试用例进行调试,这限制了其在实际软件工程中的应用,并导致过度拟合。
  2. DryRUN 框架允许大型语言模型自主生成输入并模拟执行跟踪,从而实现自我纠正,无需依赖公共测试用例。
  3. 实验表明,DryRUN 在没有公共测试用例的情况下,性能与依赖公共测试的先进框架相当,并减少了 token 消耗。

📝 摘要(中文)

多智能体框架被广泛应用于自主代码生成,并应用于复杂的算法问题求解。最近的研究通过结合模拟驱动的规划和调试来解决生成功能正确的代码的挑战,其中语言模型跟踪执行步骤以验证逻辑。然而,这些方法依赖于人工提供的公共测试用例来支持调试和模拟循环。手动编写全面的输入-输出示例是软件开发生命周期中劳动密集型的瓶颈。由于在实际软件工程中,在实现之前很少有真实的输入-输出示例可用,因此这种依赖性将方法限制在精心策划的竞争性编程基准上。此外,我们发现对这些公共测试的依赖会导致“过度自信差距”,导致框架过度拟合简单的示例,并在隐藏的评估中失败。相反,我们观察到外部样本输入对于代码生成并非绝对必要。我们证明,大型语言模型可以自主生成有效输入并模拟执行跟踪以进行自我纠正。因此,我们开发了 DryRUN,该框架通过允许 LLM 迭代地规划、自主生成自己的输入并模拟执行,从而消除了对真实样本的需求,从而减轻了算法的过度自信。在 LiveCodeBench v6 数据集(2025 年 3 月之后)上的评估表明,DryRUN 在完全没有公共测试用例或外部执行反馈的情况下,与最先进且依赖公共测试的框架 CodeSIM 的性能相匹配,同时减少了输出 token 的消耗。

🔬 方法详解

问题定义:现有基于LLM的代码生成框架,例如CodeSIM,严重依赖于人工提供的公共测试用例。这导致两个主要问题:一是人工编写测试用例耗时耗力,成为软件开发的瓶颈;二是模型容易过度拟合这些简单的公共测试,导致在更复杂的、未知的测试用例上表现不佳,即存在“过度自信差距”。

核心思路:DryRUN的核心思想是让LLM摆脱对外部公共测试用例的依赖,转而自主生成输入并模拟代码执行过程,从而进行自我调试和纠错。通过这种方式,模型可以探索更广泛的输入空间,避免过度拟合,并提高在实际场景中的泛化能力。

技术框架:DryRUN框架包含以下主要阶段:1. 规划(Planning):LLM首先对问题进行理解和规划,确定解决问题的步骤和策略。2. 自主输入生成(Autonomous Input Generation):LLM根据问题描述和规划,自主生成有效的输入数据。3. 模拟执行(Simulation Execution):LLM模拟代码的执行过程,跟踪变量的变化和程序的状态。4. 自我纠错(Self-Correction):LLM根据模拟执行的结果,识别代码中的错误,并进行自我纠正。这个过程是迭代进行的,直到代码能够通过LLM自主生成的测试用例。

关键创新:DryRUN最重要的创新点在于它完全消除了对人工提供的公共测试用例的依赖,实现了LLM的自主代码生成和调试。这使得该方法能够应用于更广泛的场景,特别是那些缺乏高质量公共测试用例的实际软件工程问题。

关键设计:DryRUN的关键设计在于如何有效地引导LLM进行自主输入生成和模拟执行。具体的技术细节包括:使用特定的prompt engineering技术,引导LLM生成多样化的输入数据;设计合适的模拟执行环境,使得LLM能够准确地跟踪代码的执行过程;以及使用强化学习等技术,优化LLM的自我纠错能力。论文中没有明确说明具体的参数设置、损失函数、网络结构等技术细节,这部分内容属于未知。

📊 实验亮点

DryRUN 在 LiveCodeBench v6 数据集(2025 年 3 月之后)上的评估结果表明,在完全没有公共测试用例或外部执行反馈的情况下,DryRUN 的性能与最先进且依赖公共测试的框架 CodeSIM 的性能相匹配,同时减少了输出 token 的消耗。这证明了 DryRUN 在自主代码生成和调试方面的有效性。

🎯 应用场景

DryRUN 的潜在应用领域包括:自动化软件开发、代码生成辅助工具、教育编程平台等。该研究的实际价值在于降低了代码生成的成本和门槛,提高了代码质量和可靠性。未来,DryRUN 可以应用于更复杂的软件系统开发,并与其他自动化技术相结合,实现更高效的软件开发流程。

📄 摘要(原文)

Multi-agent frameworks are widely used in autonomous code generation and have applications in complex algorithmic problem-solving. Recent work has addressed the challenge of generating functionally correct code by incorporating simulation-driven planning and debugging, where language models trace execution steps to verify logic. However, these approaches depend on human-provided public test cases to ground the debugging and simulation loop. Manually authoring comprehensive input-output examples is a labor-intensive bottleneck in the software development lifecycle. Because ground-truth input-output examples are rarely available prior to implementation in real-world software engineering, this dependency restricts methods to curated competitive programming benchmarks. Furthermore, we identify that reliance on these public tests induces an ``overconfidence gap,'' causing frameworks to overfit to simplistic examples and fail on hidden evaluations. In contrast, we observe that external sample inputs are not strictly necessary for code generation. We demonstrate that large language models can autonomously generate valid inputs and simulate execution traces to self-correct. Consequently, we develop DryRUN, a framework that eliminates the need for ground-truth samples by allowing the LLM to iteratively plan, autonomously generate its own inputs and simulate execution, mitigating algorithmic overconfidence. Evaluations on the LiveCodeBench v6 dataset (post-March 2025) demonstrate that DryRUN matches performance against CodeSIM, a state-of-the-art and public-test-dependent framework, while operating entirely without public test cases or external execution feedback while reducing output token consumption.