[发明专利]一种面向缺陷定位的代码搜索方法有效
申请号: | 201811412576.3 | 申请日: | 2018-11-26 |
公开(公告)号: | CN109558166B | 公开(公告)日: | 2021-06-29 |
发明(设计)人: | 孙小兵;常建明;张庆辉 | 申请(专利权)人: | 扬州大学 |
主分类号: | G06F8/75 | 分类号: | G06F8/75;G06F8/41 |
代理公司: | 南京理工大学专利中心 32203 | 代理人: | 马鲁晋 |
地址: | 226009 *** | 国省代码: | 江苏;32 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | 本发明公开了一种面向缺陷定位的代码搜索方法,包括以下步骤:首先构建软件历史库中bug报告对应的源代码文件抽象语法树;之后提取所有与bug相关的codediff文件,并将codediff文件中连续的代码修改行定义为一个chunk,建立每个codediff文件的chunk关系图;之后获取chunk关系图中每个节点的重要性分值degree;然后建立bug报告与chunk之间的关系;之后利用知识库建立工具建立bug‑chunk知识库;接着针对新的bug报告,获取新的bug报告与bug‑chunk知识库中bug报告的相似度sim;最后结合chunk的重要性分值degree和相似度sim生成chunk列表,实现缺陷的定位。本发明的处理对象以chunk为单位,面向的是一个连续代码块,不仅降低了处理数据量,且chunk本身为修改的代码行,在计算过程中更具有针对性,提高了bug定位的针对性、准确性。 | ||
搜索关键词: | 一种 面向 缺陷 定位 代码 搜索 方法 | ||
【主权项】:
1.一种面向缺陷定位的代码搜索方法,其特征在于,包括以下步骤:步骤1、对软件历史库中的bug报告进行自然语言预处理,并构建bug报告对应的源代码文件抽象语法树;步骤2、提取所有与bug相关的codediff文件,并将codediff文件中连续的代码修改行定义为一个chunk;在步骤1源代码文件抽象语法树的基础上建立每个codediff文件的chunk关系图;步骤3、遍历chunk关系图,获取chunk关系图中每个节点v的重要性分值degree,并对degree进行标准化处理;步骤4、根据bug报告与codediff文件之间的一对多关系以及每个codediff文件的chunk关系图,建立bug报告与chunk之间的关系;步骤5、结合步骤1的bug报告和步骤4建立的bug报告和chunk之间的关系,利用知识库建立工具建立bug‑chunk知识库;步骤6、针对新的bug报告,获取新的bug报告与bug‑chunk知识库中bug报告的相似度sim;步骤7、结合bug‑chunk知识库中各个chunk的重要性分值degree和相似度sim生成chunk列表,根据chunk列表即可获取与新的bug报告中bug相关的代码,实现缺陷的定位。
下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于扬州大学,未经扬州大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/patent/201811412576.3/,转载请声明来源钻瓜专利网。