An Empirical Study of Unit Test Generation with Large Language Models

2024年06月26日
  • 简介
    单元测试是软件开发中验证软件组件正确性的重要活动。然而,手动编写单元测试是具有挑战性和耗时的。大语言模型(LLM)的出现为自动化单元测试生成提供了一种新的方向。现有研究主要关注闭源LLM(例如ChatGPT和CodeX),具有固定提示策略,而对于具有各种提示设置的先进开源LLM的能力尚未被探索。特别是,开源LLM在数据隐私保护方面具有优势,并在某些任务中表现出卓越的性能。此外,有效的提示对于最大化LLM的能力至关重要。在本文中,我们基于17个Java项目、五个具有不同结构和参数大小的广泛使用的开源LLM以及全面的评估指标,进行了第一次实证研究以填补这一空白。我们的研究结果强调了各种提示因素的重要影响,展示了开源LLM与商业GPT-4和传统Evosuite相比的性能,并确定了基于LLM的单元测试生成的局限性。然后,我们从我们的研究中得出了一系列启示,以指导未来LLM-based单元测试生成的研究和实际应用。
  • 图表
  • 解决问题
    本论文试图通过使用不同结构和参数大小的五个开源LLMs对17个Java项目进行实证研究,填补现有研究中对于开源LLMs的自动单元测试生成能力的空白。
  • 关键思路
    本论文的关键思路是通过研究LLMs的不同提示因素对于单元测试生成的影响,评估开源LLMs与商业GPT-4和传统Evosuite的性能,并识别LLMs单元测试生成的局限性。
  • 其它亮点
    本论文的亮点包括使用开源LLMs进行单元测试生成,探究不同提示因素的影响,比较开源LLMs、商业GPT-4和传统Evosuite的性能,以及识别LLMs单元测试生成的局限性。实验使用了17个Java项目和全面的评估指标,对于未来研究和实际应用提供了指导。
  • 相关研究
    最近在这个领域中,还有一些相关研究,如《Code2Seq: Generating Sequences from Structured Representations of Code》、《DeepTest: Automated Testing of Deep-Neural-Network-driven Autonomous Cars》等。
PDF
原文
点赞 收藏 评论 分享到Link

沙发等你来抢

去评论