A System for Automated Unit Test Generation Using Large Language Models and Assessment of Generated Test Suites

2024年08月14日
  • 简介
    单元测试是软件测试生命周期中最基础的测试级别,对确保软件正确性至关重要。设计和创建单元测试是一项昂贵而劳动密集的过程,值得自动化。最近,大型语言模型(LLMs)已被应用于软件开发的各个方面,包括单元测试生成。虽然存在几个评估LLMs在测试代码生成方面能力的经验研究,但它们主要集中于简单的场景,例如为单个方法直接生成单元测试。这些评估通常涉及独立和小规模的测试单元,提供了LLMs在实际软件开发场景中性能的有限视图。此外,以前的研究没有以适合实际应用的规模来解决问题。生成的单元测试通常通过手动集成到原始项目中进行评估,这个过程限制了执行的测试数量并降低了整体效率。为了解决这些差距,我们开发了一种方法来生成和评估更真实的复杂测试套件。我们的方法专注于类级别的测试代码生成,并自动化了从测试生成到测试评估的整个过程。在这项工作中,我们提出了\textsc{AgoneTest}:一种用于生成Java项目测试套件的自动化系统和一种全面而有原则的评估生成测试套件的方法。从最先进的数据集(即\textsc{Methods2Test})开始,我们构建了一个新的数据集,用于比较人工编写的测试与LLMs生成的测试。我们的主要贡献包括可扩展的自动化软件系统、一个新的数据集和详细的测试质量评估方法。
  • 作者讲解
  • 图表
  • 解决问题
    解决问题的规模和效率问题:如何使用大语言模型自动生成Java项目的类级别测试套件并进行评估?
  • 关键思路
    使用大语言模型自动生成Java项目的类级别测试套件,并自动化整个过程,包括测试生成和评估。
  • 其它亮点
    论文提出了一个名为 extsc{AgoneTest}的自动化系统,用于生成Java项目的类级别测试套件,并提出了一种详细的评估方法。论文使用了一个新的数据集来比较人工编写的测试与由大语言模型生成的测试。
  • 相关研究
    最近的相关研究主要集中在使用大语言模型生成单个方法的单元测试。一些研究还探讨了使用神经网络生成测试用例的方法。
许愿开讲
PDF
原文
点赞 收藏
向作者提问
NEW
分享到Link

提问交流

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

向作者提问