国内刊号:11-2560/TP
国际刊号:1000-9825
发布日期:
作者:岳雷,崔展齐,陈翔,王荣存,李莉
单位:岳雷,北京信息科技大学 计算机学院, 北京 10010111,崔展齐,北京信息科技大学 计算机学院, 北京 10010102,陈翔,南通大学 信息科学技术学院, 江苏 南通 22601903,王荣存,中国矿业大学 计算机科学与技术学院, 江苏 徐州 22111604,李莉,北京信息科技大学 计算机学院, 北京 10010105
关键词:软件调试;缺陷定位;信息检索;缺陷报告
基金:江苏省前沿引领技术基础研究专项(BK202002001); 国家自然科学基金(61702041); 北京信息科技大学“勤信人才”培育计划(QXTCP C201906)
软件在开发和维护过程中会产生大量缺陷报告, 可为开发人员定位缺陷提供帮助. 基于信息检索的缺陷定位方法通过分析缺陷报告内容和源码文件的相似度来定位缺陷所在位置, 已在文件、函数等粗粒度级别上取得了较为精确的定位效果, 但由于其定位粒度较粗, 仍需要耗费大量人力和时间成本检查可疑文件和函数片段. 为此, 提出一种基于历史缺陷信息检索的语句级软件缺陷定位方法STMTLocator, 首先检索出与被测程序缺陷报告相似度较高的历史缺陷报告, 并提取其中的历史缺陷语句; 然后根据被测程序源码文件与缺陷报告的文本相似度检索可疑文件, 并提取其中的可疑语句; 最后计算可疑语句与历史缺陷语句的相似度, 并进行降序排列, 以定位缺陷语句. 为评估STMTLocator的缺陷定位性能, 使用Top@N、MRR等评价指标在基于Defects4J和JIRA构建的数据集上进行对比实验. 实验结果表明, 相比静态缺陷定位方法BugLocator, STMTLocator在MRR指标上提升近4倍, 在Top@1指标上多定位到7条缺陷语句; 相比动态缺陷定位方法Metallaxis和DStar, STMTLocator完成一个版本缺陷定位平均消耗的时间减少98.37%和63.41%, 且具有不需要设计和执行测试用例的显著优势.
来源:2024年第10期
《软件学报》期刊编辑部