CN103970666B - 一种软件重复缺陷报告检测的方法 - Google Patents

一种软件重复缺陷报告检测的方法 Download PDF

Info

Publication number
CN103970666B
CN103970666B CN201410234198.XA CN201410234198A CN103970666B CN 103970666 B CN103970666 B CN 103970666B CN 201410234198 A CN201410234198 A CN 201410234198A CN 103970666 B CN103970666 B CN 103970666B
Authority
CN
China
Prior art keywords
test sample
similarity
execution step
make
gram
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201410234198.XA
Other languages
English (en)
Other versions
CN103970666A (zh
Inventor
徐玲
邹杰
葛永新
杨梦宁
洪明坚
张小洪
蒋欣志
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Chongqing Younikong Technology Co Ltd
Original Assignee
Chongqing University
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Chongqing University filed Critical Chongqing University
Priority to CN201410234198.XA priority Critical patent/CN103970666B/zh
Publication of CN103970666A publication Critical patent/CN103970666A/zh
Application granted granted Critical
Publication of CN103970666B publication Critical patent/CN103970666B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明涉及一种软件重复缺陷报告检测的方法,它包括如下步骤,首先从软件的缺陷报告数据库中提取训练样本集和测试样本集,建立训练样本集的主题模型,然后对测试样本应用主题模型得到文档‑主题矩阵,计算测试样本间的主题相似度,提取测试样本的分类信息计算分类信息相似度,将分类信息相似度和主题相似度相乘得到测试样本间的LDA相似度;其次提取测试样本N‑gram序列计算N‑gram相似度,将N‑gram相似度和LDA相似度加权求和得测试样本间的整体相似度,最后如果整体相似度大于等于预设的阀值则认为两个测试样本为重复缺陷报告。本方法极大地提高了检测结果的准确性,尽量避免将重复缺陷报告派给开发人员,节省了人力资源。

Description

一种软件重复缺陷报告检测的方法
技术领域
本发明属于软件维护技术领域,具体涉及一种重复缺陷报告检测的方法。
背景技术
随着软件项目规模的增长,软件变得越来越复杂。软件维护阶段的费用已占软件生命周期费用的2/3。软件缺陷报告是在软件维护工作中,软件测试人员或者用户对于软件可能存在的缺陷、错误的文档描述。开源软件如Eclipse、Firefox、Open Office等,随着规模的增大和版本的更新,每天都有不同用户提交缺陷报告到缺陷跟踪管理系统中,系统将产生大量重复的缺陷报告,如开源软件Firefox的软件缺陷数据库中重复缺陷的比例高达30%。2005年,Mozilla程序员报道“everyday,almost 300 bugs appear that needtriaging.This is far too much for only the Mozilla programmers to handle”。
如果不能及时检测标记重复缺陷报告,那么重复缺陷报告会被反复分派给开发者,这样势必造成人力资源的严重浪费,特别对于大型开源项目而言此类问题尤为明显。
为了减轻人工检测重复缺陷报告的负担,目前,已经有越多越多的专家学者投入到重复缺陷报告检测领域的研究。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等人的研究结果。现有的这些方法查全率和查准率还都有待提高,因此,如何提高软件重复缺陷报告的查全率和查准率是亟待解决的问题。
发明内容
针对现有技术存在的上述问题,本发明的目的是提供一种高效的软件重复缺陷报告检测的方法,提高对重复缺陷报告的查全率和查准率,进而将重复的缺陷报告对应的ID输出,避免重复的缺陷报告不断派发到开发人员手上,造成的效率低下和人力资源的大量浪费。
为实现上述目的,本发明采用如下技术方案:一种软件重复缺陷报告检测的方法,具体包括如下步骤:
S1:从软件的缺陷报告数据库中提取训练样本集M和测试样本集W,训练样本集M={m1,m2,...mi...,mQ},i=1,2,...,Q,mi表示训练样本集中第i个训练样本,Q表示训练样本集中训练样本的数量;测试样本集W={w1,w2,...wj...,wP},j=1,2,...,P,wj表示测试样本集中第j个测试样本,P表示测试样本集中测试样本的数量,Q>P;
S2:利用Mallet工具创建训练样本集M的主题模型;
S2a:将训练样本集M转化为特征向量集其中表示训练样本mi对应的训练样本特征向量;
S2b:预设Mallet工具对应的参数K,K表示训练样本集M的主题数目;
S2c:根据特征向量集对训练样本集M进行训练,得到训练样本集M的主题模型;
S3:计算测试样本集W中测试样本间的LDA相似度:
S3a:计算测试样本集W中测试样本wj和测试样本wx的主题相似度,具体如下:
S3a1:利用Mallet工具将测试样本集W转化为特征向量集 其中表示测试样本wj对应的测试样本特征向量;设测试样本wx也属于测试样本集W,wj,wx∈W,x=1,2,...,P;并且j≠x,表示测试样本wx对应的测试样本特征向量;
然后应用训练样本集M的主题模型建立测试样本的文档-主题矩阵D,所述测试样本特征向量对应在文档-主题矩阵D中第ξ维向量表示为所述向量的值表示为dj,ξ,所述测试样本特征向量对应在文档-主题矩阵D中第ξ维向量表示为所述向量的值表示为dx,ξ
S3a2:利用公式(1)计算测试样本wj与wx的主题相似度:
其中,Sjx表示wj与wx的主题相似度;
S3b:计算测试样本集W中测试样本wj和测试样本wx的分类信息相似度,具体如下:
S3b1:提取测试样本分类信息,并使测试样本的分类信息与相应的测试样本一一对应;
S3b2:所述测试样本wj对应的分类信息为fj,τ,测试样本wx对应的分类信息为fx,τ,其中τ表示分类信息fj,τ和fx,τ的层数,τ=1,2,...,N,其中N为分类信息fj,τ和fx,τ的最高层数;
S3b3:计算测试样本wj与测试样本wx之间的分类信息相似度ηjx,设ηjx,τ表示测试样本wj的分类信息fj,τ的第τ层与测试样本wx的分类信息fx,τ的第τ层的相似度,具体如下:
(一)令j=1;
(二)令x=j+1;
(三)令τ=1;
(四)判断fj,τ的第τ层与fx,τ的第τ层是否相同,如果相同执行步骤(五),如果不同执行步骤(七);
(五)将fj,τ与fx,τ之间的第τ层相似度ηjx,τ设为aτ
(六)如果τ=N,则令ηjx=ηjx,τ,并执行步骤(九),否则执行步骤(八);
(七)令ηjx=E,E为经验值,并执行步骤(九);
(八)令τ=τ+1,并执行步骤(四);
(九)令x=x+1,如果x=P则执行步骤(十),否则执行步骤(二);
(十)令j=j+1,如果j<P,则执行步骤(二),否则执行步骤(十一);
(十一)保存分类信息相似度ηjx
S3c:根据公式(2)计算所述测试样本集W中测试样本间的LDA相似度θjx
θjx=Sjxηjx (2);
S4:计算测试样本集W中测试样本间N-gram相似度:
S4a:提取测试样本集W中的测试样本wj的N-gram序列Yj和测试样本wx的N-gram序列Yx,其中Yj={y1,1,y2,2,...yj,δ...,yP,A},yj,δ表示测试样本wj的N-gram序列Yj中第δ个词,A表示测试样本wj的N-gram序列Yj的总词数,Yx={y1,1,y2,2,...yx,ε...,yP,B},yx,ε表示测试样本wx的N-gram序列Yx中第ε个词,B表示表示测试样本wx的N-gram序列Yx的总词数;
S4b:计算测试样本集W中测试样本wj和测试样本wx的N-gram相似度具体如下:
S4b1:设测试样本wj的N-gram序列Yj为匹配序列,测试样本wx的N-gram序列Yx为被匹配序列;
1)令j=1;
2)令x=j+1;
3)令ε=1,δ=1;
4)如果yj,δ与yx,ε相同,则令αδ,ε=1,并执行步骤5),并保存αδ,ε的值,否则执行步骤7);
5)令δ=δ+1;
6)如果δ≤A,则执行步骤4),否则执行步骤9);
7)令αδ,ε=0,并ε=ε+1;
8)如果ε≤B,则执行步骤4),否则执行步骤9);
9)保存αδ,ε的值:
S4b2:利用公式(3)统计yj,δ与yx,ε比较时αδ,ε值的集合:
S4b3:设测试样本wx的N-gram序列Yx为匹配序列,测试样本wj的N-gram序列Yj为被匹配序列:
i)令x=1;
ii)令j=x+1;
iii)令ε=1,δ=1;
iv)如果yx,ε与yj,δ相同,则令αε,δ=1,并执行步骤v),并保存αε,δ的值,否则执行步骤ⅶ);
v)令ε=ε+1;
vi)如果ε≤B,则执行步骤ⅳ),否则执行步骤ⅸ);
vii)令αε,δ=0,并δ=δ+1;
viii)如果δ≤A,则执行步骤ⅳ),否则执行步骤ⅸ);
ix)保存αε,δ的值;
S4b4:利用公式(4)统计yx,ε与yj,δ比较时αε,δ值的集合:
S4b5:然后根据公式(5)计算测试样本wj与测试样本wx的N-gram相似度
S5:通过公式(6)计算测试样本集W中测试样本wj和测试样本wx之间整体相似度:
其中v,r分别表示加权求和时引入的参数,为经验值;
S6:将测试样本wj和测试样本wx之间整体相似度Tjx与相似度阀值F相比,如果Tjx≥F,则认为测试样本wj和测试样本wx为重复的缺陷报告并对该一对测试样本分配一个ID,然后输出所述ID;否则为不同的缺陷报告。
相对于现有技术,本发明具有如下优点:
本发明在进行软件重复缺陷报告的检测过程中,引入了执行信息,这极大地提高了检测结果的准确性。这主要是因为,相较于自然语言,标准的执行信息更能真实可靠地描述缺陷产生时的实际情况,也更便于程序的理解,同是标准化、过程化、精细化也正是软件工程发展的必然方向。同时引入了分类信息的分层相似度计算方法,从而更准确的检测出重复缺陷报告。最后引入改进的N-gram模型方法,把基于语义的LDA模型和基于词处理的N-gram模型相结合,实现语义处理和词处理之间的互补,优化了检测结果,提高对重复缺陷报告的查全率和查准率;最后将将检测到的重复缺陷报告对应一个ID然后输出,此时工作人员只需根据不同的ID对由一对测试样本组成的重复的缺陷报告进行验证,如果是两个测试样本确实是重复的,则只将其中一个测试样本(一个测试样本对应一个缺陷报告)分派给开发人员进行修复。这样极大地减少了工作人员在庞大的软件缺陷报告数据库中查找重复缺陷报告的工作量,提高了工作效率,节省了大量的人工成本。
附图说明
图1为实施例的实验结果。图中每个柱体的上部表示检测结果错误的数量,下部表示检测结果正确的数量,从左及右,柱体下标的含义是:35个主题,阀值为0.95;35个主题,阀值为0.9;40个主题,阀值为0.95;40个主题,阀值为0.9;45个主题,阀值为0.95;45个主题,阀值为0.9;50个主题,阀值为0.95;50个主题,阀值为0.9;55个主题,阀值为0.95;55个主题,阀值为0.9。
图2为阀值为0.95时本检测方法与Wang X Y等人实验查全率、查准率比较图。其中,每对柱体中左侧的柱体表示查全率,右侧的柱体表示查准率;从左及右每对柱体的下标分别为,30个主题;35个主题;40个主题;45个主题;50个主题;55个主题;60个主题;65个主题;70个主题;75个主题;Wang X Y等人实验。
具体实施方式
下面结合附图对本发明作进一步详细说明。
一种软件重复缺陷报告检测的方法,具体包括如下步骤:
S1:从软件的缺陷报告数据库中提取训练样本集M和测试样本集W,训练样本集M={m1,m2,...mi...,mQ},i=1,2,...,Q,mi表示训练样本集中第i个训练样本,Q表示训练样本集中训练样本的数量;测试样本集W={w1,w2,...wj...,wP},j=1,2,...,P,wj表示测试样本集中第j个测试样本,P表示测试样本集中测试样本的数量,Q>P;
S2:利用Mallet工具创建训练样本集M的主题模型;
S2a:将训练样本集M转化为特征向量集其中表示训练样本mi对应的训练样本特征向量;将训练样本集M转化为特征向量集之前对训练样本M进行必要的数据预处理操作。(在后面的14页有提到数据预处理)
S2b:预设Mallet工具对应的参数K,K表示训练样本集M的主题数目;
S2c:根据特征向量集对训练样本集M进行训练,得到训练样本集M的主题模型;
S3:计算测试样本集W中测试样本间的LDA相似度:
S3a:算测试样本集W中测试样本wj和测试样本wx的主题相似度,具体如下:
S3a1:利用Mallet工具将测试样本集W转化为特征向量集 其中表示测试样本wj对应的测试样本特征向量;设测试样本wx也属于测试样本集W,wj,wx∈W,x=1,2,...,P;并且j≠x,表示测试样本wx对应的测试样本特征向量;
然后应用训练样本集M的主题模型建立测试样本的文档-主题矩阵D,所述测试样本特征向量对应在文档-主题矩阵D中第ξ维向量表示为所述向量的值表示为dj,ξ,所述测试样本特征向量对应在文档-主题矩阵D中第ξ维向量表示为所述向量的值表示为dx,ξ
S3a2:利用公式(1)计算测试样本wj与wx的主题相似度:
其中,Sjx表示wj与wx的主题相似度;
S3b:计算测试样本集W中测试样本wj和测试样本wx的分类信息相似度,具体如下:
S3b1:提取测试样本分类信息,并使测试样本的分类信息与相应的测试样本一一对应;
S3b2:所述测试样本wj对应的分类信息为fj,τ,测试样本wx对应的分类信息为fx,τ,其中τ表示分类信息fj,τ和fx,τ的层数,τ=1,2,...,N,其中N为分类信息fj,τ和fx,τ的最高层数;
S3b3:计算测试样本wj与测试样本wx之间的分类信息相似度ηjx,设ηjx,τ表示测试样本wj的分类信息fj,τ的第τ层与测试样本wx的分类信息fx,τ的第τ层的相似度,具体如下:
(一)令j=1;
(二)令x=j+1;
(三)令τ=1;
(四)判断fj,τ的第τ层与fx,τ的第τ层是否相同,如果相同执行步骤(五),如果不同执行步骤(七);
(五)将fj,τ与fx,τ之间的第τ层相似度ηjx,τ设为aτ
(六)如果τ=N,则令ηjx=ηjx,τ,并执行步骤(九),否则执行步骤(八);
(七)令ηjx=E,E为经验值,并执行步骤(九);
(八)令τ=τ+1,并执行步骤(四);
(九)令x=x+1,如果x=P则执行步骤(十),否则执行步骤(二);
(十)令j=j+1,如果j<P,则执行步骤(二),否则执行步骤(十一);
(十一)保存分类信息相似度ηjx
S3c:根据公式(2)计算所述测试样本集W中测试样本间的LDA相似度θjx
θjx=Sjxηjx (2);
S4:计算测试样本集W中测试样本间N-gram相似度:
S4a:提取测试样本集W中的测试样本wj的N-gram序列Yj和测试样本wx的N-gram序列Yx,其中Yj={y1,1,y2,2,...yj,δ...,yP,A},yj,δ表示测试样本wj的N-gram序列Yj中第δ个词,A表示测试样本wj的N-gram序列Yj的总词数,Yx={y1,1,y2,2,...yx,ε...,yP,B},yx,ε表示测试样本wx的N-gram序列Yx中第ε个词,B表示表示测试样本wx的N-gram序列Yx的总词数;
S4b:计算测试样本集W中测试样本wj和测试样本wx的N-gram相似度具体如下:
S4a1:设测试样本wj的N-gram序列Yj为匹配序列,测试样本wx的N-gram序列Yx为被匹配序列;
1)令j=1;
2)令x=j+1;
3)令ε=1,δ=1;
4)如果yj,δ与yx,ε相同,则令αδ,ε=1,并执行步骤5),并保存αδ,ε的值,否则执行步骤7);
5)令δ=δ+1;
6)如果δ≤A,则执行步骤4),否则执行步骤9);
7)令αδ,ε=0,并ε=ε+1;
8)如果ε≤B,则执行步骤4),否则执行步骤9);
9)保存αδ,ε的值;
S4b2:利用公式(3)统计yj,δ与yx,ε比较时αδ,ε值的集合:
S4b3:设测试样本wx的N-gram序列Yx为匹配序列,测试样本wj的N-gram序列Yj为被匹配序列:
i)令x=1;
ii)令j=x+1;
iii)令ε=1,δ=1;
iv)如果yx,ε与yj,δ相同,则令αε,δ=1,并执行步骤v),并保存αε,δ的值,否则执行步骤ⅶ);
v)令ε=ε+1;
vi)如果ε≤B,则执行步骤ⅳ),否则执行步骤ⅸ);
vii)令αε,δ=0,并δ=δ+1;
viii)如果δ≤A,则执行步骤ⅳ),否则执行步骤ⅸ);
保存αε,δ的值;
S4b4:利用公式(4)统计yx,ε与yj,δ比较时αε,δ值的集合:
S4b5:然后根据公式(5)计算测试样本wj与测试样本wx的N-gram相似度
S5:通过公式(6)计算测试样本集W中测试样本wj和测试样本wx之间整体相似度:
其中v,r分别表示加权求和时引入的参数,为经验值;
S6:将测试样本wj和测试样本wx之间整体相似度Tjx与相似度阀值F相比,如果Tjx≥F,则认为测试样本wj和测试样本wx为重复的缺陷报告,并对该一对测试样本分配一个ID,然后输出所述ID(即对两个重复的测试样本构成的重复的缺陷报告只分配一个ID);否则为不同的缺陷报告。实施例:
为了评估上述检测方法的结果,我们采用查全率和查准率作为评估标准。
其中Ndetected是指对于测试样本而言实验检测的重复报告中正确的数量,Ntotal是指测试样本实际拥有的重复报告的总数,Ndetectedall是指对于测试样本而言实验检测的重复报告总数(包括正确的和错误的)。
数据预处理
数据预处理前首先要正确选择实验数据集,在具体选择数据时,考虑了2个因素:
1.在一个软件的主要版本发布后通常会有一个频繁的缺陷修正期间(一般为一个半月)。
2.检索重复目标缺陷报告时,往往最有效的期间是该目标缺陷报告对应的源缺陷报告提交的前50天以内。
根据上述原则,本实施例基于著名开源项目Eclipse缺陷报告数据,针对Eclipse在2006年6月26日至2006年9月26日连续3个月内新提交的缺陷报告作为训练样本空间进行实验(原因在于Eclipse于2006年6月26日发布了代号为Callisto的3.2版本更新),实验后期的测试样本来自于该训练样本集之中。
在对训练样本集进行主题建模之前,需要对原始数据进行格式化操作。由于原始的报告文件是用XML的形式组织的,并且也包含了很多多余信息,在此仅提取缺陷标题和内容作为主要实验数据,如果原始缺陷中标题和内容都为null,代表该缺陷报告为不存在报告,此类报告需要去除掉;
根据原始xml文件中“resolution”域值判断该缺陷报告是否为重复报告,并且通过classification\product\component\version4相域值获得其分类信息并分别将此分类信息标记到每个缺陷报告中。对于我们的训练样本集,最初有缺陷报告10400个,在去除无效缺陷报告之后,剩余9600个缺陷报告,其中标记为duplicate的有1115个占总报告数量的11.6%。
在初步处理后,还可对抽取之后的数据进行基本的预处理,包括:数据清洗、分词、提取词干、删除停用词、统一大小写。
然后对训练样本集进行主题建模就可以得到训练样本的主题模型。本文使用的是开源的自然语言处理工具包Mallet(Machine Learning for language toolkit)实现LDA主题建模,借助Mallet工具首先将训练样本集转化为特征向量集;然后根据训练样本集的大小设置主体模型的主题数量,最后根据特征向量集对训练样本集进行训练,得到训练样本集的主题模型。
在训练样本集中标记为duplicate的1115个报告中随机选取22个带执行信息的重复报告,在非duplicate的报告中随机选取178个非重复报告,构造一个基础数据库,并且根据eclipse官网上的统计结果,获得这22个缺陷报告中所之对应的实际的重复报告并将之加入到我们的基础数据库中。经统计,从外部加入的重复报告有47个,最后我们得到了一个含有247个缺陷报告的小型测试样本空间。在测试样本集中应用上述主题模型,得到测试样本集的文档—主题矩阵。
计算出试样本集中测试样本之间LDA相似度,其中包括分类信息相似度和主题相似度。
对于N-gram,也需要先对测试样本集进行必要的数据预处理过程,其中包括数据清洗、分词、提取词干、同义词置换、删除停用词、统一大小写。
预处理过后,再提取出测试样本集中每个测试样本的N-gram序列,N可取不同的值,本次实验N取值为3。例如“Let us go for a walk”的3-gram序列为{Let,Let us,Letus go,us gofor,go for a,for a walk,a walk,walk}。提取出N-gram词序列之后再计算测试样本之间的N-gram相似度。
最后对测试样本之间LDA相似度和N-gram相似度加权求和(求和时,必须是针对相同的两个测试样本之间的LDA相似度和N-gram相似度),得到测试样本之间的整体相似度,如果整体的相似度大于或等于预设的阀值,则认为该两个测试样本为重复的缺陷报告,否则为不同的缺陷报告。
得到的记过如图1,通过计算查全率、查准率并与Wang X Y等人实验比较,如图2。从图2中可以看到,相较于传统采用SVM方法针对带有执行信息的缺陷报告进行重复检测时,查全率大致相同普遍在95%左右,但是查准率大大提高,当对于本次实验取40个主题时查准率最高可达90%,相较于传统方法的67%而言提高明显。
最后说明的是,以上实施例仅用以说明本发明的技术方案而非限制,尽管参照较佳实施例对本发明进行了详细说明,本领域的普通技术人员应当理解,可以对本发明的技术方案进行修改或者等同替换,而不脱离本发明技术方案的宗旨和范围,其均应涵盖在本发明的权利要求范围当中。

Claims (1)

1.一种软件重复缺陷报告检测的方法,其特征在于具体包括如下步骤:
S1:从软件的缺陷报告数据库中提取训练样本集M和测试样本集W,训练样本集M={m1,m2,...mi...,mQ},i=1,2,...,Q,mi表示训练样本集中第i个训练样本,Q表示训练样本集中训练样本的数量;测试样本集W={w1,w2,...wj...,wP},j=1,2,...,P,wj表示测试样本集中第j个测试样本,P表示测试样本集中测试样本的数量,Q>P;
S2:利用Mallet工具创建训练样本集M的主题模型;
S2a:将训练样本集M转化为特征向量集 其中表示训练样本mi对应的训练样本特征向量;
S2b:预设Mallet工具对应的参数K,K表示训练样本集M的主题数目;
S2c:根据特征向量集对训练样本集M进行训练,得到训练样本集M的主题模型;
S3:计算测试样本集W中测试样本间的LDA相似度:
S3a:计算测试样本集W中测试样本wj和测试样本wx的主题相似度,具体如下:
S3a1:利用Mallet工具将测试样本集W转化为特征向量集 其中表示测试样本wj对应的测试样本特征向量;设测试样本wx也属于测试样本集W,wj,wx∈W,x=1,2,...,P;并且j≠x,表示测试样本wx对应的测试样本特征向量;
然后应用训练样本集M的主题模型建立测试样本的文档-主题矩阵D,所述测试样本特征向量对应在文档-主题矩阵D中第ξ维向量表示为所述向量的值表示为dj,ξ,所述测试样本特征向量对应在文档-主题矩阵D中第ξ维向量表示为所述向量的值表示为dx,ξ
S3a2:利用公式(1)计算测试样本wj与wx的主题相似度:
S i m ( w j , w x ) = S j x = Σ ξ ( d j , ξ * d x , ξ ) Σ ξ d j , ξ 2 * d x , ξ 2 - - - ( 1 ) ;
其中,Sjx表示wj与wx的主题相似度;
S3b:计算测试样本集W中测试样本wj和测试样本wx的分类信息相似度,具体如下:
S3b1:提取测试样本分类信息,并使测试样本的分类信息与相应的测试样本一一对应;
S3b2:所述测试样本wj对应的分类信息为fj,τ,测试样本wx对应的分类信息为fx,τ,其中τ表示分类信息fj,τ和fx,τ的层数,τ=1,2,...,N,其中N为分类信息fj,τ和fx,τ的最高层数;
S3b3:计算测试样本wj与测试样本wx之间的分类信息相似度ηjx,设ηjx,τ表示测试样本wj的分类信息fj,τ的第τ层与测试样本wx的分类信息fx,τ的第τ层的相似度,具体如下:
(一)令j=1;
(二)令x=j+1;
(三)令τ=1;
(四)判断fj,τ的第τ层与fx,τ的第τ层是否相同,如果相同执行步骤(五),如果不同执行步骤(七);
(五)将fj,τ与fx,τ之间的第τ层相似度ηjx,τ设为aτ
(六)如果τ=N,则令ηjx=ηjx,τ,并执行步骤(九),否则执行步骤(八);
(七)令ηjx=E,E为经验值,并执行步骤(九);
(八)令τ=τ+1,并执行步骤(四);
(九)令x=x+1,如果x=P则执行步骤(十),否则执行步骤(二);
(十)令j=j+1,如果j<P,则执行步骤(二),否则执行步骤(十一);
(十一)保存分类信息相似度ηjx
S3c:根据公式(2)计算所述测试样本集W中测试样本间的LDA相似度θjx
θjx=Sjxηjx (2);
S4:计算测试样本集W中测试样本间N-gram相似度:
S4a:提取测试样本集W中的测试样本wj的N-gram序列Yj和测试样本wx的N-gram序列Yx,其中Yj={y1,1,y2,2,...yj,δ...,yP,A},yj,δ表示测试样本wj的N-gram序列Yj中第δ个词,A表示测试样本wj的N-gram序列Yj的总词数,Yx={y1,1,y2,2,...yx,ε...,yP,B},yx,ε表示测试样本wx的N-gram序列Yx中第ε个词,B表示表示测试样本wx的N-gram序列Yx的总词数;
S4b:计算测试样本集W中测试样本wj和测试样本wx的N-gram相似度具体如下:
S4b1:设测试样本wj的N-gram序列Yj为匹配序列,测试样本wx的N-gram序列Yx为被匹配序列;
1)令j=1;
2)令x=j+1;
3)令ε=1,δ=1;
4)如果yj,δ与yx,ε相同,则令αδ,ε=1,并执行步骤5),并保存αδ,ε的值,否则执行步骤7);
5)令δ=δ+1;
6)如果δ≤A,则执行步骤4),否则执行步骤9);
7)令αδ,ε=0,并ε=ε+1;
8)如果ε≤B,则执行步骤4),否则执行步骤9);
9)保存αδ,ε的值;
S4b2:利用公式(3)统计yj,δ与yx,ε比较时αδ,ε值的集合:
α = Σ δ = 1 , ϵ = 1 δ = A , ϵ = B α δ , ϵ - - - ( 3 ) ;
S4b3:设测试样本wx的N-gram序列Yx为匹配序列,测试样本wj的N-gram序列Yj为被匹配序列:
i)令x=1;
ii)令j=x+1;
iii)令ε=1,δ=1;
iv)如果yx,ε与yj,δ相同,则令αε,δ=1,并执行步骤v),并保存αε,δ的值,否则执行步骤ⅶ);
v)令ε=ε+1;
vi)如果ε≤B,则执行步骤ⅳ),否则执行步骤ⅸ);
vii)令αε,δ=0,并δ=δ+1;
viii)如果δ≤A,则执行步骤ⅳ),否则执行步骤ⅸ);
ix)保存αε,δ的值;
S4b4:利用公式(4)统计yx,ε与yj,δ比较时αε,δ值的集合:
β = Σ δ = 1 , ϵ = 1 δ = A , ϵ = B α ϵ , δ - - - ( 4 ) ;
S4b5:然后根据公式(5)计算测试样本wj与测试样本wx的N-gram相似度
S5:通过公式(6)计算测试样本集W中测试样本wj和测试样本wx之间整体相似度:
其中v,r分别表示加权求和时引入的参数,为经验值;
S6:将测试样本wj和测试样本wx之间整体相似度Tjx与相似度阀值F相比,如果Tjx≥F,则认为测试样本wj和测试样本wx为重复的缺陷报告并对该一对测试样本分配一个ID,然后输出所述ID;否则为不同的缺陷报告。
CN201410234198.XA 2014-05-29 2014-05-29 一种软件重复缺陷报告检测的方法 Active CN103970666B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201410234198.XA CN103970666B (zh) 2014-05-29 2014-05-29 一种软件重复缺陷报告检测的方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201410234198.XA CN103970666B (zh) 2014-05-29 2014-05-29 一种软件重复缺陷报告检测的方法

Publications (2)

Publication Number Publication Date
CN103970666A CN103970666A (zh) 2014-08-06
CN103970666B true CN103970666B (zh) 2017-02-22

Family

ID=51240196

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201410234198.XA Active CN103970666B (zh) 2014-05-29 2014-05-29 一种软件重复缺陷报告检测的方法

Country Status (1)

Country Link
CN (1) CN103970666B (zh)

Families Citing this family (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105469104B (zh) * 2015-11-03 2019-09-10 小米科技有限责任公司 文本信息相似度的计算方法、装置及服务器
US10379999B2 (en) 2016-01-11 2019-08-13 Oracle International Corporation Duplicate bug report detection using machine learning algorithms and automated feedback incorporation
CN106250311A (zh) * 2016-07-27 2016-12-21 成都启力慧源科技有限公司 基于lda模型的重复缺陷报告检测方法
CN106445828B (zh) * 2016-10-21 2019-10-29 福建中金在线信息科技有限公司 一种产品测试方法及装置
CN108073498A (zh) * 2016-11-07 2018-05-25 富士通株式会社 软件测试中获取反馈的插件和检测重复反馈的方法及装置
CN109165382B (zh) * 2018-08-03 2022-08-23 南京工业大学 一种加权词向量和潜在语义分析结合的相似缺陷报告推荐方法
CN110442324B (zh) * 2019-06-18 2021-09-14 湖南大学 一种软件需求文本表述缺陷检测方法、系统以及存储介质
CN110188047B (zh) * 2019-06-20 2023-04-18 重庆大学 一种基于双通道卷积神经网络的重复缺陷报告检测方法
CN110515838A (zh) * 2019-07-31 2019-11-29 华东计算技术研究所(中国电子科技集团公司第三十二研究所) 基于主题模型软件缺陷检测的方法和系统
CN111178037A (zh) * 2019-12-24 2020-05-19 中信银行股份有限公司 重复缺陷报告识别方法、装置及电子设备
CN111737107B (zh) * 2020-05-15 2021-10-26 南京航空航天大学 一种基于异质信息网络的重复缺陷报告检测方法
CN113743096A (zh) * 2020-05-27 2021-12-03 南京大学 一种基于自然语言处理的众包测试报告相似度检测的方法
CN114090462B (zh) * 2021-12-07 2023-04-18 上海复深蓝软件股份有限公司 软件重复缺陷识别方法、装置、计算机设备及存储介质

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101556553A (zh) * 2009-03-27 2009-10-14 中国科学院软件研究所 基于需求变更的缺陷预测方法和系统

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007316734A (ja) * 2006-05-23 2007-12-06 Mitsubishi Electric Corp 情報処理装置

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101556553A (zh) * 2009-03-27 2009-10-14 中国科学院软件研究所 基于需求变更的缺陷预测方法和系统

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
Annotation and verification of sense pools in OntoNotes;Liang-Chih Yu等;《Information Processing and Management》;20100731;第46卷(第4期);第436-447页 *
一种新的基于N-gram模型的重复软件缺陷报告检测方法;李宁等;《西北工业大学学报》;20100430;第28卷(第2期);第298-303页 *

Also Published As

Publication number Publication date
CN103970666A (zh) 2014-08-06

Similar Documents

Publication Publication Date Title
CN103970666B (zh) 一种软件重复缺陷报告检测的方法
CN112214610B (zh) 一种基于跨度和知识增强的实体关系联合抽取方法
CN106156003B (zh) 一种问答系统中的问句理解方法
CN102662930B (zh) 一种语料标注方法及装置
CN106951499B (zh) 一种基于翻译模型的知识图谱表示方法
CN106919793A (zh) 一种医疗大数据的数据标准化处理方法及装置
CN107506389B (zh) 一种提取职位技能需求的方法和装置
CN106557462A (zh) 命名实体识别方法和系统
CN107220237A (zh) 一种基于卷积神经网络的企业实体关系抽取的方法
WO2020010834A1 (zh) 一种faq问答库泛化方法、装置及设备
CN104484380A (zh) 个性化搜索方法及装置
CN110781681B (zh) 一种基于翻译模型的初等数学应用题自动求解方法及系统
CN107247739B (zh) 一种基于因子图的金融公报文本知识提取方法
CN103617203B (zh) 基于查询驱动的蛋白质-配体绑定位点预测方法
CN113962219A (zh) 面向电力变压器知识检索和问答的语义匹配方法及系统
CN109710930A (zh) 一种基于深度神经网络的中文简历解析方法
CN114816497B (zh) 基于bert预训练模型的链接生成方法
CN109033094A (zh) 一种基于序列到序列神经网络模型的文言文白话文互译方法及系统
CN106933802B (zh) 一种面向多数据源的社保类实体识别方法及装置
CN105740233A (zh) 一种基于条件随机场和转换学习越南语组块方法
CN112528011B (zh) 多数据源驱动的开放式数学作业批改方法、系统及设备
CN113360643A (zh) 一种基于短文本分类的电子病历数据质量评价方法
CN116611447A (zh) 一种基于深度学习方法的信息抽取和语义匹配系统及方法
CN113377962B (zh) 一种基于图像识别和自然语言处理的智能过程模拟方法
CN110414819B (zh) 一种工单评分方法

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
TR01 Transfer of patent right
TR01 Transfer of patent right

Effective date of registration: 20190903

Address after: 400 000 Shapingba District, Chongqing City, No. 218, 218-1, No. 8 Zhengjie, Shapingba, No. 8, No. 6, Third Floor of Natural Layer

Patentee after: Chongqing Younikong Technology Co., Ltd.

Address before: 400044 Shapingba District Sha Street, No. 174, Chongqing

Patentee before: Chongqing University