[发明专利]一种基于Stack Overflow和commit库的bug定位方法有效
申请号: | 201610824966.6 | 申请日: | 2016-09-09 |
公开(公告)号: | CN106407113B | 公开(公告)日: | 2018-12-11 |
发明(设计)人: | 孙小兵;赵书鹏;李斌;杨辉 | 申请(专利权)人: | 扬州大学 |
主分类号: | G06F11/36 | 分类号: | G06F11/36 |
代理公司: | 南京中新达专利代理有限公司 32226 | 代理人: | 孙鸥;朱杰 |
地址: | 225009 *** | 国省代码: | 江苏;32 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | 本发明涉及一种基于Stack Overflow和commit库的bug定位方法。本发明将用户提交的问题分解成问题段、代码段、stack trace段,使用RAKE算法提取出关键字匹配,计算所占比重,导出问题答案对,提取代码段,整合为问题代码段+答案代码段形式,使用RAKE提取关键字,设定为标签tag,再使用tag‑LDA对commit库处理,建立主题模型,匹配,筛选出匹配度大于等于0.3的commit相应代码段,进行文本相似度匹配和利用由节点组成的程序依赖图对堆栈追踪stack trace进行结构相似度匹配,计算30%×文本相似度+70%×结构相似度的结果并推荐。本发明克服了无视多人参与其中的众包知识库,bug定位的准确率不高的缺陷。本发明结合了Stack Overflow问题库和软件Commit库中的信息,来对bug做出更好更精确的定位,对Latent Dirichlet Allocation模型拓展应用。 | ||
搜索关键词: | 一种 基于 stackoverflow commit bug 定位 方法 | ||
【主权项】:
1.一种基于stack overflow和commit库的bug定位方法,其特征在于包括如下步骤:(1)将用户提交的问题分解成问题段、代码段、stack trace段三个子段;(2)根据步骤(1)所得到的问题段,先进行预处理,然后使用RAKE算法提取出关键字,将关键字对Stack Overflow问题库中的问题标签进行匹配,将每个问题答案对的标签与问题段的关键字进行比较,计算相同标签所占比重,导出比重最高的问题答案对;(3)根据步骤(2)得出的答案,提取出其中的代码段,若步骤(1)分解后也有代码段,则整合为问题代码段+答案代码段形式;(4)对步骤(3)整合的结果,使用RAKE提取出关键字,设定为标签tag,再使用tag‑LDA对commit库进行处理,建立主题模型,并结合标签进行匹配,筛选出匹配度大于等于0.3的commit相应代码段;(5)对步骤(3)得出的结果的代码部分与步骤(4)得到的commit代码进行文本相似度匹配和利用由节点即类、class,有向线段即方法、method组成的程序依赖图对由步骤(1)分解得到的堆栈追踪stack trace进行结构相似度匹配;(6)根据前面计算得到的文本相似度和结构相似度进行综合计算,计算30%×文本相似度+70%×结构相似度的结果,按计算结果大小进行结果推荐。
下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于扬州大学,未经扬州大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/patent/201610824966.6/,转载请声明来源钻瓜专利网。