收藏本站
收藏 | 投稿 | 手机打开
二维码
手机客户端打开本文

基于软件历史仓库和抽象语法树的相似缺陷识别方法

龚丹  王甜甜  苏小红  董美含  
【摘要】:软件开发过程中,软件开发人员常常通过搜索软件历史仓库(historical software repository,HSR),再经复制/粘贴以实现软件复用。HSR中会保存被复用的代码的缺陷及修复信息,辅助处理相似缺陷。基于此,提出一种基于HSR挖掘的相似缺陷识别方法。首先,基于变更日志的分析,从HSR中提取出已知缺陷的模块,建立bug模块库。然后,采用基于抽象语法树(abstract syntax tree,AST)的相似代码检测方法,识别待测试软件与bug模块库中相似的代码,并借助HSR中保存的相应缺陷及修复信息,完成待测试软件中可能包含潜在缺陷的模块的识别。同时,为提高相似代码的识别精度,优化基于AST的代码特征度量。在18个C程序、164对克隆代码上进行实验,结果表明所提方法能够识别出全部相似代码且性能优于已有工具。在人工构建的bug模块库上验证了代码相似性对相似缺陷识别的作用。最后,在8个真实的大型C项目上进行验证,平均缺陷召回率达到94%,表明挖掘HSR可以有效地为跨项目传播的相似代码提供缺陷理解支持。

知网文化
【相似文献】
中国期刊全文数据库 前18条
1 李郑;李姝;王俊;刘士进;;基于抽象语法树分析的版本控制分支合并算法[J];计算机系统应用;2015年03期
2 李军超,尹俊文,徐振阳;基于抽象语法树的代码味道识别工具的分析与设计[J];株洲工学院学报;2005年06期
3 刘楠;韩丽芳;夏坤峰;曲通;;一种改进的基于抽象语法树的软件源代码比对算法[J];信息网络安全;2014年01期
4 张幸儿;规范抽象语法与抽象语法树的直接生成[J];计算机学报;1990年12期
5 牛家浩,黄志球,张静,刘佳;基于抽象语法树的软件度量工具的设计与实现[J];计算机应用;2003年10期
6 张玉州;王一宾;江克勤;;抽象语法树在属性计算中的应用[J];安庆师范学院学报(自然科学版);2008年04期
7 刘宏韬;刘伟;胡志刚;;基于抽象语法树的数据泥团自动检测研究[J];计算机应用与软件;2017年01期
8 高灿;侯秀萍;孙士明;;基于抽象语法树的修改影响分析方法[J];长春工业大学学报(自然科学版);2012年04期
9 侯雅梅;;克隆代码自动重构的抽象语法树及静态分析[J];数字技术与应用;2016年02期
10 辛艳艳;吴海涛;;基于抽象语法树的C克隆代码重构应用与研究[J];上海师范大学学报(自然科学版);2018年04期
11 于冬琦;彭鑫;赵文耘;;使用抽象语法树和静态分析的克隆代码自动重构方法[J];小型微型计算机系统;2009年09期
12 周必水;张延红;赵敬;;基于语法树的程序正确性验证模型及算法设计[J];杭州电子科技大学学报;2006年01期
13 张毅刚;建筑结构缺陷识别与计算机应用[J];工程设计CAD与智能建筑;1999年12期
14 韩宏峰;罗羿隆;相克磊;徐毅蒙;;基于机器学习的软件缺陷识别的必要性[J];电脑知识与技术;2017年25期
15 张德银;陈从翰;黄选红;徐志强;;基于新型深度神经网络的民机表面缺陷识别[J];计算技术与自动化;2020年01期
16 崔舒宁;吴宁;叶丹;;建立抽象语法树模型评测C++代码[J];计算机应用;2015年S1期
17 董召杰;林志达;;基于边缘计算的机巡图像缺陷识别算法研究[J];自动化与仪器仪表;2020年07期
18 李刚;;平板玻璃缺陷识别系统设计[J];重庆科技学院学报(自然科学版);2017年02期
中国重要会议论文全文数据库 前4条
1 贺笛;徐科;孙金胜;;深度学习在中厚板表面缺陷识别中的应用[A];第十一届中国钢铁年会论文集——S18.冶金自动化与智能管控[C];2017年
2 徐成龙;于虹;杜必强;刘泽坤;何运华;;基于局部放电图谱和X射线图像的GIS缺陷识别技术[A];物联网与电力新技术——2014年云南电力技术论坛论文集[C];2014年
3 夏玉辉;张威;万琳;王洪艳;;一种基于控制流图的静态测试方法[A];第三届全国软件测试会议与移动计算、栅格、智能化高级论坛论文集[C];2009年
4 陈子聪;汤庸;刘海;汤娜;;时态数据库中间件的设计与实现[A];第二十三届中国数据库学术会议论文集(研究报告篇)[C];2006年
中国博士学位论文全文数据库 前2条
1 梁浩;基于目标定位与光谱技术的实木板材表面缺陷识别研究[D];东北林业大学;2017年
2 茅俊杰;面向操作系统内核的结构化语义差异分析方法的研究[D];清华大学;2017年
中国硕士学位论文全文数据库 前10条
1 吴冲;基于抽象语法树的重复代码检测[D];上海师范大学;2015年
2 王丽;C++静态代码检测语法树构建方法研究[D];大连理工大学;2011年
3 覃凌峰;基于机器学习的程序语义理解[D];西安电子科技大学;2019年
4 杨飞;COStream编译器的抽象语法树重构与优化[D];华中科技大学;2019年
5 王荣真;基于抽象语法树的短文本相似度研究[D];北京林业大学;2018年
6 傅得强;基于抽象语法树的源代码抄袭检测研究[D];北京林业大学;2017年
7 孙璐;基于深度学习的bug自动定位方法研究与实现[D];北京邮电大学;2019年
8 焦秀秀;基于抽象语法树的C编程题自动评分方法研究及应用[D];西安理工大学;2019年
9 许家欢;基于示例演化的Java学生程序错误自动修正[D];哈尔滨工业大学;2018年
10 董美含;基于缺陷报告和源代码的相似缺陷识别方法[D];哈尔滨工业大学;2018年
中国重要报纸全文数据库 前1条
1 记者 马爱平;输电线路图像分析系统上线 缺陷识别率达94%以上[N];科技日报;2020年
 快捷付款方式  订购知网充值卡  订购热线  帮助中心
  • 400-819-9993
  • 010-62982499
  • 010-62783978