中文

使用语言模型进行自动化测试用例修复

软件工程 2025-02-17 v4

摘要

通过测试确保软件系统的质量至关重要,然而维护测试用例带来了巨大的挑战和成本。为适应不断演进的被测系统而频繁更新的需求,往往导致维护这些测试用例的高复杂性和高成本。此外,未修复的损坏测试用例会降低测试套件质量,扰乱软件开发流程,浪费开发人员时间。为应对这一挑战,我们提出了 TaRGET(测试修复生成器),一种利用预训练代码语言模型进行自动化测试用例修复的新方法。TaRGET 将测试修复视为一种语言翻译任务,采用两步过程,基于表征测试损坏的关键上下文数据对语言模型进行微调。为评估我们的方法,我们引入了 TaRBench,这是我们开发的一个综合基准,涵盖 59 个开源项目中的 45,373 个损坏测试修复。我们的结果证明了 TaRGET 的有效性,达到了 66.1% 的精确匹配准确率。此外,我们的研究考察了 TaRGET 在不同测试修复场景下的有效性。我们提供了一个实用指南,用于预测生成的测试修复可能不太可靠的情况。我们还探讨了项目特定数据对于微调是否总是必要,以及我们的方法在新项目上是否有效。

关键词

引用

@article{arxiv.2401.06765,
  title  = {Automated Test Case Repair Using Language Models},
  author = {Ahmadreza Saboor Yaraghi and Darren Holden and Nafiseh Kahani and Lionel Briand},
  journal= {arXiv preprint arXiv:2401.06765},
  year   = {2025}
}

备注

45 pages, 23 figures, accepted at IEEE Transactions on Software Engineering, for associated code and data please visit https://github.com/Ahmadreza-SY/TaRGet