论文

MineValiCoder:通过测试用例质量挖掘和基于二分图的相互验证来生成可靠的代码

MineValiCoder: Reliable Code Generation with Test Case Quality Mining and Bipartite Graph-Based Mutual Validation

摘要

基于 大语言模型 (LLM) 的测试驱动开发 (TDD) 具有先进的自动代码生成功能。然而,现有的方法严重依赖于人工制作的测试用例,并且在仅满足自然语言要求时无法有效运行。尽管最近的工作实现了自动测试生成,但它经常忽视 LLM 固有的随机性,从而导致两个关键缺陷:错误的测试会产生误导性的反馈,从而扭曲代码优化,而混合质量的测试用例会产生相互冲突的评估信号,从而阻碍可靠的代码选择。为了应对这些挑战,我们提出了 MineValiCoder,这是一个基于测试用例质量和代码质量相互增强的协作闭环 TDD 框架。 MineValiCoder 包含三个模块。测试用例质量挖掘(TCQM)模块通过自我验证过滤错误测试用例,提供可靠的优化监督。并行 TDD 细化模块使用经过验证的测试用例反馈迭代优化代码并生成各种高质量的候选代码。基于二分图的代码测试相互验证 (BiCoTeV) 模块动态建模代码测试交互并执行相互验证评分,以实现稳定可靠的最佳代码选择。对四个 LLM 和主流基准的广泛评估表明,MineValiCoder 的性能显着优于最先进的方法。具体来说,它在 HumanEval 上的 Pass@1 分数为 96.34%,在 MBPP 上为 87.40%,在 APPS 上为 64.00%,在 LiveCodeBench 上为 51.33%。这些结果证明了 MineValiCoder 在减轻 LLM 随机性和提高自动代码生成的可靠性方面的有效性。