The invention discloses a method for locating defects defects report text based on topic analysis, in order to solve the defects of the report will bring serious burden to the developer, the text analysis of the defect report has to solve the defect tracking management system, obtain the relationship between the defect report and fix the code, and the analysis of defect report did not solve this. Provide defect report new possible to repair the source code file list for developers, so as to improve the maintenance efficiency of software project. We in the supervised text topic model Labeled LDA (LLDA) is proposed on the basis of substring label generation improved model Label to SubStrings (L2SS). Experiments on Eclipse data sets of open source projects show that the defect localization method based on L2SS model has higher prediction effect than traditional text topic model.
【技术实现步骤摘要】
一种基于缺陷报告文本主题分析的缺陷定位方法
本专利技术涉及一种基于缺陷报告文本主题分析的缺陷定位方法,利用已解决缺陷报告中的文本内容,实现未解决缺陷报告缺陷源代码文件的定位。在主题分析技术的基础上,利用标签词语子串频繁出现在相应缺陷报告的特性,添加了词语生成的途径,有效提高了基于缺陷报告缺陷源代码文件定位的准确度。
技术介绍
在大型开源软件开发过程中,广泛使用Bugzilla,Jira,GNATS,trac等缺陷跟踪管理系统来跟踪管理项目的缺陷。以Eclipse项目中的缺陷跟踪管理系统Bugzilla为例,在对整个项目进行开发、测试和维护的过程中,当软件开发参与者发现了项目中的Bug时,可以登陆BugZilla系统提交一份缺陷报告。在BugZilla中,每个缺陷报告都有Status、Resolution这两个关键属性表示其状态。其中,Status表示bug的一般状态,下面是其取值和各个取值的说明以及转换的可能性。Unconfirmed(未证实)表明bug是最近加入到数据库,没有人正式这个bug的存在。拥有“确定/取消Bug"的用户可以对转变bug的状态为:1.确认这个bug,改变他的状态为新(NEW)2.解决这个bug,标志为已解决(RESOLVED)New(新提交的)这个bug已经分发给某位开发人员处理。这个状态的bug可以转变为以下状态:1.接受该bug,状态转变为指派(ASSIGNED)2.指派给别的开发人员,状态维持为新(NEW)被解决,状态转变为被解决(RESOLVED)Assigned(已经指派)这个bug尚未解决,但已经被指派给正确的人进行解 ...
【技术保护点】
一种基于缺陷报告文本主题分析的缺陷定位方法,其特征在于:在Labeled‑LDA的基础上提出了标签生成子串的文本主题模型L2SS,同时基于CVB0方法给出了L2SS模型的参数估计,最终根据模型参数来得出新的缺陷文本对需要修复文件的疑似度排序,此方法的主要内容包括:1)基于标签生成子串的文本主题模型‑L2SS;2)基于CVB0的L2SS模型求解及缺陷代码预测方法;基于标签生成子串的文本主题模型‑L2SS:将缺陷源代码文件对应的模块名作为Labeled‑LDA的标签,直接对应LDA模型中的主题;缺陷报告d可以表示成一个词袋
【技术特征摘要】
1.一种基于缺陷报告文本主题分析的缺陷定位方法,其特征在于:在Labeled-LDA的基础上提出了标签生成子串的文本主题模型L2SS,同时基于CVB0方法给出了L2SS模型的参数估计,最终根据模型参数来得出新的缺陷文本对需要修复文件的疑似度排序,此方法的主要内容包括:1)基于标签生成子串的文本主题模型-L2SS;2)基于CVB0的L2SS模型求解及缺陷代码预测方法;基于标签生成子串的文本主题模型-L2SS:将缺陷源代码文件对应的模块名作为Labeled-LDA的标签,直接对应LDA模型中的主题;缺陷报告d可以表示成一个词袋其中wi表示为文档中第i个单词;所有缺陷报告的所有词语构成词汇集V;所有缺陷报告文本主题用对应的标签l表示;每个主题l都存在一个先验分布为贝塔分布的二项分布βl~Beta(·|δ),每个主题都有两种途径生成词语,由二项分布βl抽样选取出来分开关变量κ决定最终选取的生成途径;第一种途径是从词汇集V中根据分布从V中抽取词语,是先验分布为狄利克雷分布的多项分布;第二种途径是从主题l对应标签名的子串集合Sl中根据分布从Sl中抽取词语,是先验分布为狄利克雷分布的多项分布;κ有两种值:1和2,当κ=1时,表示主题l从词汇集V中抽取词语,当κ=2时,表示主题l从标签子串集合Sl中抽取词语;每篇缺陷报告d对于所有主题l还有一个先验分布为贝塔分布的二项分布是从抽样出开关变量,当时表示文档d不选取此主题,当时表示文档d选取此主题。缺陷报告d在所有的主题中得到先验分布为狄利克雷分布的多项分布θd。L2SS模型的缺陷报告生成过程如下:对于每一个主题l1)取样生成主题l上的开关分布βl=(βl1,βl2)T~Beta(·|δ)2)取样生成主题l上对于所有词语的分布3)根据主题l选择对应标签子串集合Sl得到l对应的子串词语的先验分布ηl4)取样生成模块标签l上对于l子串词语的分布对于每篇缺陷报告d对于每个主题l1)取样生成文档d对应的模块标签选择分布2)根据标签选择得到文档d对应的主题分布的先验分布αd=Ld×α3)取样生成文档d对应的主题分布对于缺陷报告中每个位置i1)取样生成主题zi∈Ld~Mult(·|θd)2)取样生成主题zi的开关变量κ∈{1,2}~Bernoulli(·|βl)ifκ=1do取样生成单词ifκ=2do取样生成单词其中Beta表示贝塔分布,Mult表示多项分布,Bernouli表示二项分布,Dir表示狄利克雷分布;依据此上过程,可以得到L2SS的概率图模型,同时得到词和主题生成的联合概率:2.如权利要求1所述的基于缺陷报告文本主题分析的缺陷定位方法,其特征在于,基于CVB0的L2SS模型求解及缺陷报告主题推断方法:LDA模型参数推断常采用吉布斯采样的方法,即用p(zi=l|z-i,w;α,η,δ)来对各个词语的主题进行采样,不断迭代直至收敛;而吉布斯采样收敛速度较慢,采用CVB0方法进行参数推断;在LLDA模型中,CVB0方法为文档中的每个位置的词语赋予一个势函数向量l代表标签l,d代表文档的编号,i代表词在文档中的位置;γl|d,i的值就等于p(zi=l|z-i,w;α,η,δ),对于文档d中没有出现的标签l,就将γl|d,i的值定为0在L2SS模型中,因为词可能有两种生成方式,因此L2SS模型中,可由标签子串生成的词语的分成两个势...
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。