摘要
arXiv:2406.12952v3 宣布类型: 替换交叉
摘要:严谨的软件测试对于开发和维护高质量代码至关重要,因此自动测试生成是提高软件质量和增强代码生成方法有效性的有前途的途径。然而,尽管使用大型语言模型(LLMs)进行代码生成是一个异常活跃的研究领域,但测试生成依然相对未被广泛探索。我们解决这一不足并研究基于代码代理的LLM的能力,将其用户问题转化为测试案例。为此,我们提出一个基于流行的GitHub仓库的新基准,包含真实世界的问题、真实错误修复和基准测试。我们发现,LLM们普遍在生成相关测试案例方面表现令人惊讶地好,设计用于代码修复的代码代理超过专门设计用于测试生成的系统的表现。此外,由于测试生成是与代码生成类似但更结构化的任务,它允许使用问题再现率和覆盖率变化进行更细致的分析,提供了一个双度量标准来分析用于代码修复的系统。最后,我们发现生成的测试案例是提出代码修复的有效筛选器,将SWE-Agent的精确度提高了一倍。我们在 https://github.com/logic-star-ai/SWT-Bench 释放所有数据和代码。