一种软件重复缺陷报告检测的方法
【专利摘要】本发明涉及一种软件重复缺陷报告检测的方法,它包括如下步骤,首先从软件的缺陷报告数据库中提取训练样本集和测试样本集,建立训练样本集的主题模型,然后对测试样本应用主题模型得到文档-主题矩阵,计算测试样本间的主题相似度,提取测试样本的分类信息计算分类信息相似度,将分类信息相似度和主题相似度相乘得到测试样本间的LDA相似度;其次提取测试样本N-gram序列计算N-gram相似度,将N-gram相似度和LDA相似度加权求和得测试样本间的整体相似度,最后如果整体相似度大于等于预设的阀值则认为两个测试样本为重复缺陷报告。本方法极大地提高了检测结果的准确性,尽量避免将重复缺陷报告派给开发人员,节省了人力资源。
【专利说明】一种软件重复缺陷报告检测的方法
【技术领域】
[0001]本发明属于软件维护【技术领域】,具体涉及一种重复缺陷报告检测的方法。
【背景技术】
[0002]随着软件项目规模的增长,软件变得越来越复杂。软件维护阶段的费用已占软件生命周期费用的2/3。软件缺陷报告是在软件维护工作中,软件测试人员或者用户对于软件可能存在的缺陷、错误的文档描述。开源软件如Eclipse、Firefox、Open Office等,随着规模的增大和版本的更新,每天都有不同用户提交缺陷报告到缺陷跟踪管理系统中,系统将产生大量重复的缺陷报告,如开源软件Firefox的软件缺陷数据库中重复缺陷的比例高达 30%。2005 年,Mozilla 程序员报道“everyday, almost300bugs appear that needtriaging.This is far too much for only the Mozilla programmers to handle,,。
[0003]如果不能及时检测标记重复缺陷报告,那么重复缺陷报告会被反复分派给开发者,这样势必造成人力资源的严重浪费,特别对于大型开源项目而言此类问题尤为明显。
[0004]为了减轻人工检测重复缺陷报告的负担,目前,已经有越多越多的专家学者投入到重复缺陷报告检测领域的研究。Runeson P等人以Sony Ericsson MobileCommunications的缺陷报告库作为数据集,将每个缺陷报告的文本向量化和归一化后检测缺陷报告之间的相似度,获得了 30%左右的正确率。Wang X Y等人在Runeson P的研究基础上加入了软件的执行信息,定义了缺陷报告之间的两种相似度:自然语言相似度和执行信息相似度。如果仅以执行信息作为参考标准,查全率达93%左右,查准率达到了 67%左右。Sun等人基于Runeson P的基础上,将向量化且已标识类别的缺陷报告映射到判别模型(discriminative model),再根据映射结果训练SVM分类器以检测重复的缺陷报告。相较于Runeson P的方法,正确率提高了约20%,但是低于Wang X Y等人的研究结果。现有的这些方法查全率和查准率还都有待提高,因此,如何提高软件重复缺陷报告的查全率和查准率是亟待解决的问题。
【发明内容】
[0005]针对现有技术存在的上述问题,本发明的目的是提供一种高效的软件重复缺陷报告检测的方法,提高对重复缺陷报告的查全率和查准率,进而将重复的缺陷报告对应的ID输出,避免重复的缺陷报告不断派发到开发人员手上,造成的效率低下和人力资源的大量浪费。
[0006]为实现上述目的,本发明采用如下技术方案:一种软件重复缺陷报告检测的方法,具体包括如下步骤:
[0007]步骤一:从软件的缺陷报告数据库中提取训练样本集M和测试样本集W,训练样本集M = Im1, m2,...Hi1..., mQ}, i = I, 2,..., Q, Hii表示训练样本集中第i个训练样本,Q表示测试样本集中训练样本的数量;测试样本集W = (W1, W2,...Wj...,wP},j = 1,2,...,P,Wj表示测试样本集中第j个测试样本,P表示测试样本集中测试样本的数量,Q > P ;[0008]步骤二:利用Mallet工具创建训练样本集M的主题模型;
[0009](一)将训练样本集M转化为特征向量集.,M =, i =
1,2,..., Q,其中表示训练样本Hli对应的训练样本特征向量;
[0010]( 二 )预设Mallet工具对应的参数K, K表示训练样本集M的主题数目;
[0011](三)根据特征向量集Jt对训练样本集M进行训练,得到训练样本集M的主题模型;
[0012]步骤三:计算测试样本集W中测试样本间的LDA相似度:
[0013](一 )计算测试样本集W中测试样本Wj和测试样本Wx的主题相似度,具体如下:
[0014]i)利用Mallet工具将测试样本集W转化为特征向量集# ,
W =Vl\ },j = 1,2,...,P,其中表示测试样本Wj对应的测试样本特
征向量;设测试样本Wx也属于测试样本集W, Wj, wx e W,X = 1,2,...,P ;并且j Φ x, M\.表示测试样本Wx对应的测试样本特征向量;
[0015]然后应用训练样本集M的主题模型建立测试样本的文档-主题矩阵D,所述测试样本特征向量应在文档-主题矩阵D中第ξ维向量表示为,所述向量的值表
示为d“,所述测试样本特征向量^对应在文档-主题矩阵D中第ξ维向量表示为
所述向量^〃的值表示为dx,ξ ;
[0016]ii)利用公式⑴计算测试样本Wj与Wx的主题相似度:
【权利要求】
1.一种软件重复缺陷报告检测的方法,其特征在于具体包括如下步骤: 步骤一:从软件的缺陷报告数据库中提取训练样本集M和测试样本集W,训练样本集M=Im1, m2,...Hi1..., mQ}, i = I, 2,..., Q, Hii表示训练样本集中第i个训练样本,Q表示测试样本集中训练样本的数量;测试样本集W = (W1, W2,...Wj..., Wp}, j = I, 2,..., P, Wj表示测试样本集中第j个测试样本,P表示测试样本集中测试样本的数量,Q > P ; 步骤二:利用Mallet工具创建训练样本集M的主题模型; (一)将训练样本集M转化为特征向量集
【文档编号】G06F11/36GK103970666SQ201410234198
【公开日】2014年8月6日 申请日期:2014年5月29日 优先权日:2014年5月29日
【发明者】徐玲, 邹杰, 葛永新, 杨梦宁, 洪明坚, 张小洪, 蒋欣志 申请人:重庆大学