中文

基于自动反馈的强化学习用于高质量单元测试生成

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

摘要

软件测试是软件开发的关键环节,而创建遵循最佳实践的高质量测试对于有效维护至关重要。近来,大语言模型(LLM)在代码生成(包括测试用例的自动化创建)方面广受欢迎。然而,这些 LLM 常在大量公开可用代码上训练,其中可能包含不遵循最佳实践的测试用例,甚至含有测试异味(反模式)。为解决此问题,我们提出一种称为静态质量度量强化学习(RLSQM)的新技术。首先,我们分析 LLM 生成的抗模式并表明 LLM 会生成不良的测试异味。因此,我们针对每个静态质量度量训练特定的奖励模型,然后利用近端策略优化(PPO)训练模型以一次优化单一质量度量。此外,我们将这些奖励合并为一个统一奖励模型,旨在捕捉测试的不同最佳实践与质量方面。通过比较 RL 训练模型与监督学习训练的模型,我们深入探讨了如何可靠地利用 RL 提升测试生成质量,以及不同训练策略的影响。实验结果表明,与基础 LLM 相比,RL 优化模型持续生成高质量测试用例,将模型性能提升高达 21%,并成功生成近乎 100% 语法正确的代码。RLSQM 在七项度量中的四项上也优于 GPT-4。这代表了通过强化学习与静态质量度量提升软件测试整体效率与可靠性的一项重要进展。我们的数据可在 https://figshare.com/s/ded476c8d4c221222849 获取。

关键词

引用

@article{arxiv.2310.02368,
  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:2310.02368},
  year   = {2025}
}

备注

Accepted to DeepTest 2025 (ICSE Workshop). Previously this version appeared as arXiv:2412.14308 which was submitted as a new work by accident