Two-Stage Reinforcement Learning for Sound and Adversarial Test Generation in Code LLMs
作者: Jiacheng Xu, Wentao Zhang, Zhiyi Lyu, Fuxiang Zhang, Chaojie Wang, Yang Liu, Bo An
分类: cs.CL, cs.LG
发布日期: 2026-09-03
备注: 21 pages, 7 figures. Accepted to Findings of the Association for Computational Linguistics: EMNLP 2026
💡 一句话要点
提出两阶段强化学习框架以生成有效的代码测试用例
🎯 匹配领域: 支柱二:RL算法与架构 (RL & Architecture) 支柱九:具身大模型 (Embodied Foundation Models)
关键词: 强化学习 代码生成 测试用例生成 对抗性学习 大型语言模型 自动化测试 软件验证
📋 核心要点
- 现有方法在生成高质量测试用例时面临挑战,尤其是缺乏既有效又具区分性的测试用例。
- 本文提出了测试用例扩展(TCS),一个两阶段的强化学习框架,旨在自动生成有效的测试用例。
- 在TACO和LiveCodeBench数据集上,TCS显著提高了测试通过率和推理时间的答案选择效果。
📝 摘要(中文)
强化学习(RL)在大型语言模型(LLMs)代码生成中取得了显著进展,主要依赖于可执行反馈。然而,高质量的测试用例稀缺,且需具备有效性和区分性。本文研究了利用学习模型自动生成测试用例的问题,发现这是一个自然的对抗性RL问题。我们提出了测试用例扩展(TCS),一个两阶段的RL框架用于有效的测试生成。第一阶段生成与参考解决方案一致的测试,第二阶段则限制缓冲区到当前失败模式并学习反例测试。实验结果表明,TCS在TACO和LiveCodeBench上均提升了通过率和推理时间的答案选择。
🔬 方法详解
问题定义:本文旨在解决代码生成中高质量测试用例稀缺的问题。现有方法往往无法生成既有效又具区分性的测试用例,导致代码验证效果不佳。
核心思路:提出的两阶段强化学习框架(TCS)通过生成与参考解决方案一致的测试用例,并在第二阶段聚焦于当前失败模式生成反例测试,从而提高测试用例的有效性。
技术框架:TCS框架分为两个主要阶段:第一阶段生成与参考解决方案一致的测试用例,第二阶段则限制生成的测试用例到当前失败模式,学习生成反例测试。整个过程依赖于一个滚动策略对齐的缓冲区。
关键创新:TCS的创新在于将测试生成视为对抗性强化学习问题,通过两阶段的策略优化,显著提升了测试用例的质量和有效性。这一方法与传统的单一生成策略有本质区别。
关键设计:在设计中,采用了特定的损失函数来优化生成的测试用例质量,并通过动态调整缓冲区内容来适应当前的失败模式,确保生成的测试用例具有针对性和有效性。
🖼️ 关键图片
📊 实验亮点
实验结果显示,TCS在TACO和LiveCodeBench数据集上,测试通过率和推理时间的答案选择均有显著提升,具体表现为通过率提升了XX%(具体数据未知),展示了该方法的有效性和优越性。
🎯 应用场景
该研究的潜在应用领域包括软件测试、自动化代码验证和安全性分析等。通过生成高质量的测试用例,能够有效提升代码的可靠性和安全性,减少人工测试的成本和时间,具有重要的实际价值和广泛的应用前景。
📄 摘要(原文)
Reinforcement learning (RL) has substantially advanced code generation with large language models (LLMs) through executable feedback. The feedback for coding problems mainly comes from specific test cases, where high-quality test cases are often scarce since they should be both sound and discriminative. We thus turn to study the auto-generation of test cases using the learned model. We find this is naturally an adversarial RL problem: the model is expected to generate effective test cases as counterexamples, depending on the solver's current failure modes. We propose Test Cases Scaling (TCS), a two-stage RL framework for effective test generation. Both stages train a test generator from a rolling policy-aligned buffer: Stage 1 generates tests consistent with the reference solution, and Stage 2 restricts the buffer to current failure modes and learns counterexample tests. Across TACO and LiveCodeBench, TCS improves both pass@1 and inference-time answer selection according to generated tests. We find the learned test generator also enables effective selection among other LLM outputs.