DeCon: 通过大型语言模型生成的后置条件检测不正确的断言
软件工程
2025-01-07 v1 编程语言
摘要
最近,针对目标问题的文档字符串和目标函数签名,大型语言模型(LLM)不仅被用于生成源代码,还被用于生成测试用例,包括测试输入和断言(例如,以检查实际输出与预期输出的形式)。然而,正如我们对四个LLM为HumanEval基准生成的断言进行的实证研究所显示的,超过62%的生成断言是不正确的(即,在真实问题解决方案上失败)。为了检测不正确的断言(给定文档字符串、目标函数签名以及一组示例输入和输出),本文提出了一种名为DeCon的新方法,通过LLM为目标问题生成的后置条件(后置条件是在执行真实问题解决方案后必须始终为真的谓词)来有效检测不正确的断言。我们的方法需要目标问题的一小组I/O示例(例如,HumanEval中目标问题文档字符串中包含的I/O示例)。我们使用给定的I/O示例来过滤掉那些被至少一个给定I/O示例违反的LLM生成的后置条件。然后,我们使用剩余的后置条件来检测不正确的断言,即那些违反至少一个剩余后置条件的断言。实验结果表明,DeCon可以平均检测出四个最先进LLM生成的超过64%的不正确断言(GPT-3.5和GPT-4分别检测出63%和65.5%),并且DeCon还可以将这些LLM在代码生成方面的有效性(以Pass@1衡量)提高4%。此外,尽管DeCon可能过滤掉正确的断言,但剩余正确断言的故障发现能力仅略有下降。
引用
@article{arxiv.2501.02901,
title = {DeCon: Detecting Incorrect Assertions via Postconditions Generated by a Large Language Model},
author = {Hao Yu and Tianyu Chen and Jiaming Huang and Zongyang Li and Dezhi Ran and Xinyu Wang and Ying Li and Assaf Marron and David Harel and Yuan Xie and Tao Xie},
journal= {arXiv preprint arXiv:2501.02901},
year = {2025}
}