重访并改进检索增强的深度断言生成
软件工程
2023-09-20 v1
摘要
单元测试验证被测单元的正确性,已成为软件开发过程中不可或缺的活动。一个单元测试由将被测单元驱动到特定状态的测试前缀,以及指定该状态下行为的测试预言(如断言)组成。为减少单元测试中的人工投入,Yu 等人提出了一种集成方法(简称 integration),将信息检索(IR)与基于深度学习的方法结合,为单元测试生成断言。尽管前景可期,但对于 integration 为何或何处有效或无效,仍存在知识空白。本文对 integration 的有效性进行了深入分析。我们的分析表明:1)integration 的整体性能主要归因于其在检索断言上的成功;2)integration 难以理解检索到的焦点测试(焦点测试包含测试前缀与被测单元)与输入焦点测试之间的语义差异;3)integration 局限于特定类型的编辑操作,无法处理词元添加或删除。为提升断言生成的有效性,本文提出一种名为 EditAS 的新型检索-编辑方法。具体地,EditAS 首先从预定义语料库中检索相似的焦点测试,并将其断言视为原型。然后,EditAS 复用原型中的信息并自动编辑该原型。EditAS 比 integration 具有更好的泛化性。我们在两个大规模数据集上进行了实验,结果表明 EditAS 优于最先进的方法,在准确率和 BLEU 分数上分别平均提升 10.00%-87.48% 和 3.30%-42.65%。
引用
@article{arxiv.2309.10264,
title = {Revisiting and Improving Retrieval-Augmented Deep Assertion Generation},
author = {Weifeng Sun and Hongyan Li and Meng Yan and Yan Lei and Hongyu Zhang},
journal= {arXiv preprint arXiv:2309.10264},
year = {2023}
}