- 简介软件测试是软件开发中至关重要但耗时的环节,最近,大型语言模型(LLMs)因其自动生成测试用例的能力而受到欢迎。然而,由于这些模型是在大量开源代码上进行训练的,因此它们生成的测试用例往往不符合最佳实践,甚至可能包含测试异味(反模式)。为了解决这一问题,我们提出了基于静态质量指标的强化学习(RLSQM),通过使用强化学习根据基于静态分析的质量指标生成高质量的单元测试。首先,我们分析了由LLMs生成的测试用例,结果显示这些模型确实经常生成不理想的测试异味——最高可达37%的比例。然后,我们实现了一个轻量级的基于静态分析的奖励模型,并使用该模型对LLMs进行了训练,以优化五个代码质量指标。实验结果表明,经过RL优化的Codex模型始终能生成比基础LLM更高质的测试用例,质量指标最多提高了23%,并且几乎100%生成了语法正确的代码。尽管训练的Codex模型成本较低,RLSQM在所有代码质量指标上仍优于GPT-4。我们提供了如何可靠地利用强化学习来提高测试生成质量的见解,并展示了RLSQM是朝着提升自动化软件测试的整体效率和可靠性迈出的重要一步。我们的数据可在https://doi.org/10.6084/m9.figshare.25983166获取。
- 解决问题论文试图解决的问题是大型语言模型(LLMs)在生成自动化测试用例时,常常产生不符合最佳实践的代码,甚至包含测试异味(test smells),即反模式。这是一个需要解决的实际问题,因为高质量的测试用例对于软件开发至关重要。
- 关键思路关键思路是提出了一种名为基于静态质量度量的强化学习(RLSQM)的方法,利用强化学习优化LLMs生成的测试用例,使其符合五项代码质量度量标准。通过静态分析来构建奖励模型,训练后的Codex模型能够在生成测试用例时显著提高代码质量,减少测试异味的出现。相比现有研究,该方法不仅提高了测试用例的质量,还确保了几乎100%的语法正确性。
- 其它亮点论文的亮点包括:1) 实验结果显示RL-优化的Codex模型在所有代码质量度量上都优于基础LLM,并且比GPT-4表现更好;2) 提供了详细的实验设计,包括对LLM生成的测试用例进行分析,发现高达37%的测试用例存在测试异味;3) 数据集和实验结果已公开,便于后续研究者验证和扩展;4) 提出了进一步研究的方向,如如何更有效地结合动态分析和静态分析来改进测试生成。
- 最近在这个领域中,相关研究还包括:1) 使用深度学习模型自动生成测试用例的研究;2) 利用静态分析工具检测和修复代码中的缺陷;3) 强化学习在程序修复中的应用。一些相关的研究论文标题包括《Automated Test Case Generation Using Deep Learning》、《Static Analysis for Code Smell Detection》、《Reinforcement Learning for Program Repair》。
沙发等你来抢
去评论
评论
沙发等你来抢