中文

What You See Is What You Get: 基于注意力的自指自动单元测试生成

软件工程 2024-12-03 v1

摘要

软件缺陷严重影响软件的功能并可能导致巨额损失。最近提出了许多基于 AI 的方法来检测缺陷,这些方法可分为两类:软件缺陷预测和自动单元测试生成。尽管这些方法在软件缺陷检测方面取得了很大进展,但仍存在实际应用中的一些局限性,包括预测模型的低置信度以及单元测试模型的低效。在针对这些局限性方面,我们提出了一种称为 WYSIWYG(即 What You See Is What You Get)的方法:Attention-based Self-guided Automatic Unit Test GenERation (AUGER),其中包含两个阶段:缺陷检测和错误触发。在前一个阶段,AUGER 首先检测缺陷的易发性。然后,在后一个阶段,它通过前一个阶段获取的关键信息来引导生成触发此类错误的单元测试。为评估 AUGER 的有效性,我们通过在广泛使用的数据集(即 Bears、Bugs.jar 和 Defects4J)上与最先进的 (SOTA) 方法进行大规模实验来进行比较。AUGER 在缺陷检测中以 4.7% 到 35.3% 和 17.7% 到 40.4% 的 F1 分数和精确率方面取得了显著的改进,并且在单元测试生成中可以比 SOTAs 触发 23 到 84 个更多的错误。此外,我们还进一步研究了通过收集来自实际项目的数据集来验证其在实际使用中的泛化性。

关键词

引用

@article{arxiv.2412.00828,
  title  = {What You See Is What You Get: Attention-based Self-guided Automatic Unit Test Generation},
  author = {Xin Yin and Chao Ni and Xiaodan Xu and Xiaohu Yang},
  journal= {arXiv preprint arXiv:2412.00828},
  year   = {2024}
}

备注

Accepted By ICSE'25