CoverUp: Coverage-Guided LLM-Based Test Generation

2024年03月24日
  • 简介
    本文介绍了CoverUp,一种通过覆盖率分析和大型语言模型(LLMs)的组合驱动生成高覆盖率Python回归测试的新系统。CoverUp通过将覆盖率分析与与LLM的对话交错进行,迭代地改进覆盖率,将注意力集中在尚未覆盖的行和分支上。结果显示,与混合LLM /基于搜索的软件测试系统CodaMosa相比,CoverUp的测试套件显著提高了覆盖率。在每个模块的基础上,CoverUp实现了81%(相对于62%)的中位数行覆盖率,53%(相对于35%)的分支覆盖率和78%(相对于55%)的行+分支覆盖率。我们表明,CoverUp的迭代式、覆盖率引导方法对其有效性至关重要,对其成功贡献了近一半。
  • 作者讲解
  • 图表
  • 解决问题
    CoverUp试图通过结合覆盖分析和大型语言模型(LLMs)的方法,驱动生成高覆盖率的Python回归测试,从而提高软件测试的效率和质量。这是否是一个新问题?
  • 关键思路
    CoverUp采用迭代的方式,将覆盖分析与与LLM的对话相互交错,以关注尚未覆盖的代码行和分支,并生成更全面的测试用例。这种基于覆盖率引导的迭代方法是CoverUp有效性的关键所在。
  • 其它亮点
    CoverUp的测试套件明显优于当前最先进的混合LLM/基于搜索的软件测试系统CodaMosa。在模块级别上,CoverUp实现了81%的中位行覆盖率(对比CodaMosa的62%),53%的分支覆盖率(对比CodaMosa的35%)和78%的行+分支覆盖率(对比CodaMosa的55%)。CoverUp的实验设计充分,使用了多个数据集,并且开源了代码。值得进一步研究的工作包括如何结合其他技术提高测试效率和准确性。
  • 相关研究
    在这个领域中,最近的相关研究包括:CodaMosa: Hybridizing Search and Learning for Program Synthesis,DeepCT: Tomographic Computed Tomography via Deep Learning,以及Neural Program Synthesis with Priority Queue Training。
许愿开讲
PDF
原文
点赞 收藏
向作者提问
NEW
分享到Link

提问交流

提交问题,平台邀请作者,轻松获得权威解答~

向作者提问