通过联合训练改进检索增强的深度断言生成
软件工程
2025-02-25 v2
摘要
单元测试试图验证被测软件系统基本单元的正确性,在软件开发和测试中发挥着至关重要的作用。最近的工作提出了一种检索-编辑方法来生成单元测试预言,即断言。尽管前景广阔,但由于一些局限性,它仍远未达到完美,例如将断言检索和生成分离为两个独立的组件,未能相互受益。在本文中,我们提出了 AG-RAG,一种检索增强的自动断言生成方法,它利用外部代码库和联合训练来解决先前工作的各种技术局限性。受“整形手术”假设的启发,AG-RAG 试图将相关单元测试与先进的预训练语言模型(PLM)结合,进行检索增强微调。AG-RAG 构建了一个密集检索器,通过语义匹配搜索相关的测试-断言对,并构建了一个检索增强生成器,以焦点测试和检索到的 TAP 作为输入来合成准确的断言。此外,AG-RAG 利用代码感知语言模型 CodeT5 作为基石,以促进断言检索和生成任务。进一步地,检索器与生成器作为一个整体流水线通过联合训练策略进行联合优化。这种统一设计使两个组件充分适应于检索更有用的 TAP,从而生成准确的断言。我们在两个基准和三个指标上对 AG-RAG 与六种最先进的 AG 方法进行了广泛评估。实验结果表明,AG-RAG 在所有基准和指标上均显著优于以往的 AG 方法,例如,在准确率上分别比最新基线 EditAS 提高了 20.82\% 和 26.98\%。AG-RAG 还正确生成了 1739 和 2866 个所有基线均无法生成的独特断言,比 EditAS 分别多 3.45 倍和 9.20 倍。
引用
@article{arxiv.2502.10696,
title = {Improving Retrieval-Augmented Deep Assertion Generation via Joint Training},
author = {Quanjun Zhang and Chunrong Fang and Yi Zheng and Ruixiang Qian and Shengcheng Yu and Yuan Zhao and Jianyi Zhou and Yun Yang and Tao Zheng and Zhenyu Chen},
journal= {arXiv preprint arXiv:2502.10696},
year = {2025}
}
备注
Accepted to IEEE Transactions on Software Engineering (TSE 2025)