Page 263 - 《软件学报》2024年第4期
P. 263
软件学报 ISSN 1000-9825, CODEN RUXUEW E-mail: jos@iscas.ac.cn
Journal of Software,2024,35(4):1841−1860 [doi: 10.13328/j.cnki.jos.006924] http://www.jos.org.cn
©中国科学院软件研究所版权所有. Tel: +86-10-62562563
*
基于指针神经网络的细粒度缺陷定位
4
4
王尚文 1 , 刘 逵 2 , 林 博 1 , 黎 立 3 , Jacques KLEIN , Tegawendé François BISSYANDÉ , 毛晓光 1
1
(国防科技大学 计算机学院, 湖南 长沙 410073)
2
(南京航空航天大学 计算机科学与技术学院, 江苏 南京 210016)
3
(Monash University, Clayton VIC 3800, Australia)
4
(University of Luxembourg, Luxembourg L-1359, Luxembourg)
通信作者: 刘逵, E-mail: kui.liu@nuaa.edu.cn
摘 要: 软件缺陷定位是指找出与软件失效相关的程序元素. 当前的缺陷定位技术仅能产生函数级或语句级的定
位结果. 这种粗粒度的定位结果会影响人工调试程序和软件缺陷自动修复的效率和效果. 专注于细粒度地识别导
致软件缺陷的具体代码令牌, 为代码令牌建立抽象语法树路径, 提出基于指针神经网络的细粒度缺陷定位模型来
预测出具体的缺陷代码令牌和修复该令牌的具体操作行为. 开源项目中的大量缺陷补丁数据集包含大量可供训练
的数据, 且基于抽象语法树构建的路径可以有效捕获程序结构信息. 实验结果表明所训练出的模型能够准确预测
缺陷代码令牌并显著优于基于统计的与基于机器学习的基线方法. 另外, 为了验证细粒度的缺陷定位结果可以贡
献于缺陷自动修复, 基于细粒度的缺陷定位结果设计两种程序修复流程, 即代码补全工具去预测正确令牌的方法
和启发式规则寻找合适代码修复元素的方法, 结果表明两种方法都能有效解决软件缺陷自动修复中的过拟合问题.
关键词: 缺陷定位; 缺陷自动修复; 神经网络
中图法分类号: TP311
中文引用格式: 王尚文, 刘逵, 林博, 黎立, Klein J, Bissyandé TF, 毛晓光. 基于指针神经网络的细粒度缺陷定位. 软件学报, 2024,
35(4): 1841–1860. http://www.jos.org.cn/1000-9825/6924.htm
英文引用格式: Wang SW, Liu K, Lin B, Li L, Klein J, Bissyandé TF, Mao XG. Fine-grained Defect Localization Based on Pointer
Neural Network. Ruan Jian Xue Bao/Journal of Software, 2024, 35(4): 1841–1860 (in Chinese). http://www.jos.org.cn/1000-9825/6924.
htm
Fine-grained Defect Localization Based on Pointer Neural Network
1
3
1
4
4
2
WANG Shang-Wen , LIU Kui , LIN Bo , LI Li , Jacques KLEIN , Tegawendé François BISSYANDÉ ,
MAO Xiao-Guang 1
1
(College of Computer Science and Technology, National University of Defense Technology, Changsha 410073, China)
2
(College of Computer Science and Technology, Nanjing University of Aeronautics and Astronautics, Nanjing 211106, China)
3
(Monash University, Clayton VIC 3800, Australia)
4
(University of Luxembourg, Luxembourg L-1359, Luxembourg)
Abstract: Software defect localization refers to the activity of finding program elements that are related to software failure. The existing
defect localization techniques, however, can only produce localization results at the function or statement level. These coarse-grained
localization results can affect the efficiency and effectiveness of manual debugging and automatic software defect repair. This study
focuses on the fine-grained identification of specific code tokens that lead to software defects. The study establishes abstract syntax tree
paths for code tokens and proposes a fine-grained defect localization model based on a pointer neural network to predict specific code
* 基金项目: 国家自然科学基金 (62172214); 江苏省自然科学基金 (BK20210279)
收稿时间: 2021-11-16; 修改时间: 2022-06-05, 2022-11-03, 2023-02-15; 采用时间: 2023-03-05; jos 在线出版时间: 2023-08-23
CNKI 网络首发时间: 2023-08-28