发明名称 一种基于Stack Overflow和commit库的bug定位方法
摘要 本发明涉及一种基于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模型拓展应用。
申请公布号 CN106407113A 申请公布日期 2017.02.15
申请号 CN201610824966.6 申请日期 2016.09.09
申请人 扬州大学 发明人 孙小兵;赵书鹏;李斌;杨辉
分类号 G06F11/36(2006.01)I 主分类号 G06F11/36(2006.01)I
代理机构 南京中新达专利代理有限公司 32226 代理人 孙鸥;朱杰
主权项 一种基于stackoverflow和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%×结构相似度的结果,按计算结果大小进行结果推荐。
地址 225009 江苏省扬州市大学南路88号