基于指针神经网络的细粒度缺陷定位
Fine-grained Defect Localization Based on Pointer Neural Network作者机构:国防科技大学计算机学院湖南长沙410073 南京航空航天大学计算机科学与技术学院江苏南京210016 Monash UniversityClayton VIC 3800Australia University of LuxembourgLuxembourg L-1359Luxembourg
出 版 物:《软件学报》 (Journal of Software)
年 卷 期:2024年第35卷第4期
页 面:1841-1860页
核心收录:
学科分类:08[工学] 0805[工学-材料科学与工程(可授工学、理学学位)] 0835[工学-软件工程] 0701[理学-数学] 0812[工学-计算机科学与技术(可授工学、理学学位)] 081202[工学-计算机软件与理论]
基 金:国家自然科学基金(62172214) 江苏省自然科学基金(BK20210279)
摘 要:软件缺陷定位是指找出与软件失效相关的程序元素.当前的缺陷定位技术仅能产生函数级或语句级的定位结果.这种粗粒度的定位结果会影响人工调试程序和软件缺陷自动修复的效率和效果.专注于细粒度地识别导致软件缺陷的具体代码令牌,为代码令牌建立抽象语法树路径,提出基于指针神经网络的细粒度缺陷定位模型来预测出具体的缺陷代码令牌和修复该令牌的具体操作行为.开源项目中的大量缺陷补丁数据集包含大量可供训练的数据,且基于抽象语法树构建的路径可以有效捕获程序结构信息.实验结果表明所训练出的模型能够准确预测缺陷代码令牌并显著优于基于统计的与基于机器学习的基线方法.另外,为了验证细粒度的缺陷定位结果可以贡献于缺陷自动修复,基于细粒度的缺陷定位结果设计两种程序修复流程,即代码补全工具去预测正确令牌的方法和启发式规则寻找合适代码修复元素的方法,结果表明两种方法都能有效解决软件缺陷自动修复中的过拟合问题.