中文

基于静态质量指标的强化学习用于高质量单元测试生成

软件工程 2025-01-07 v2 机器学习

摘要

软件测试是软件开发中至关重要但耗时的环节,最近的大型语言模型(LLM)因自动化测试用例生成而受到关注。然而,由于 LLM 在大规模开源代码上进行训练,生成的测试用例常不符合最佳实践,甚至可能包含测试异味(反模式)。为此,我们提出了强化学习从静态质量指标(RLSQM)的方法,利用强化学习基于静态分析质量指标生成高质量单元测试。首先,我们分析了 LLM 生成的测试用例,发现 LLM 常常生成不希望的测试异味——最高可达 37%。随后,我们实现了轻量级静态分析基于奖励模型的模型,并训练 LLM 以优化五个代码质量指标。我们的实验结果表明,RL 优化后的 Codex 模型始终生成更高质量的测试用例,质量指标提升最高可达 23%,且几乎 100% 的代码语法正确。RLSQM 也在所有代码质量指标上超越了 GPT-4,尽管训练的 Codex 模型成本显著低于 GPT-4。我们提供了如何可靠地利用 RL 提升测试生成质量的见解,表明 RLSQM 是提升自动化软件测试整体效率和可靠性的重要一步。我们的数据已公开于 https://doi.org/10.6084/m9.figshare.25983166。

关键词

引用

@article{arxiv.2412.14308,
  title  = {Reinforcement Learning from Automatic Feedback for High-Quality Unit Test Generation},
  author = {Benjamin Steenhoek and Michele Tufano and Neel Sundaresan and Alexey Svyatkovskiy},
  journal= {arXiv preprint arXiv:2412.14308},
  year   = {2025}
}

备注

This work was intended as a replacement of arXiv:2310.02368 and any subsequent updates will appear there