CN104021180A - 一种组合式软件缺陷报告分类方法 - Google Patents
一种组合式软件缺陷报告分类方法 Download PDFInfo
- Publication number
- CN104021180A CN104021180A CN201410250512.3A CN201410250512A CN104021180A CN 104021180 A CN104021180 A CN 104021180A CN 201410250512 A CN201410250512 A CN 201410250512A CN 104021180 A CN104021180 A CN 104021180A
- Authority
- CN
- China
- Prior art keywords
- report
- defect
- software
- defect report
- sorting technique
- 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.)
- Granted
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/30—Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/70—Software maintenance or management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Stored Programmes (AREA)
Abstract
本发明公开了一种组合式软件缺陷报告分类方法,包括以下步骤:提取软件缺陷报告的非结构型特征属性,并进行预处理而得到特征词集合;利用监督式的文本挖掘技术预测所述特征词集合所描述内容倾向于修正性缺陷的程度等级;将所述等级的预测结果与该软件缺陷报告的编号ID与有用的结构型特征属性相结合,从而生成一新的软件缺陷报告;利用数据挖掘的方法预测新的缺陷报告是否为修正性缺陷。本发明通过滤除非修正性的缺陷,降低缺陷数据库的噪声,从而提高基于缺陷报告数据库的缺陷预测研究的精确度。
Description
技术领域
本发明涉及一种软件缺陷报告分类方法,属于计算机软件开发领域。
背景技术
软件缺陷是衡量软件质量的重要指标,缺陷的及时修复对提高用户满意度相当重要。为了有效的管理软件缺陷,通常使用缺陷跟踪系统(BTS)来管理软件缺陷以及需求。当一个软件发布以后,相应的BTS就负责收集程序测试人员或者终端用户提交的对软件缺陷的描述报告,软件的开发人员可以通过这些报告对软件进行适当的维护和完善。
软件开发人员最需要维护的是修正性缺陷(bug),这些缺陷涉及到代码的修改,对系统的运行至关重要。相对而言,那些对系统功能的期望,即提高型或者完善型的缺陷(non-bug)可缓一步进行或者可不需维护。然而,提交缺陷报告人员的软件知识水平参差不齐,大多数非软件行业的终端用户对于任何使用过程中出现的不尽如人意的地方都会认为是修正性缺陷,这就向BTS里添加了很多维护的噪声,同时也为基于软件缺陷报告的科学研究引入了偏差。
过去的缺陷预测重点在于模型的建立,通过改良模型不断的提高预测的精确度,却忽视了数据源本身的优良。缺陷预测所使用的大多数的数据库都是由BTS等提供源数据。由上述可知,数据库里存在可观的噪声。众所周知,软件缺陷预测的关键就是训练集和测试集,数据库里的噪声必然引入误差。为了减少误差,数据源的降噪处理变得尤为重要。
近年,缺陷预测开始涉及到对数据的处理上。目前通过人工标记和监督式学习,已经可以高效的预测缺陷报告是否为修正型缺陷。一般地,软件缺陷报告的特征属性分为结构型属性,如编号ID、优先级(priority)、严重性(severity)等和非结构型或者是半结构型属性,如小结(summary)、描述(description)、讨论(discussion)。一般对于它的预测要么是基于结构型的属性,利用机器学习的方法进行预测;要么是基于非结构型属性,利用文本挖掘的技术进行预测;或者是将结构性的属性与非结构型的属性处理成文本信息,在进行文本挖掘。
发明内容
本发明的目的在于提供一个组合式缺陷报告分类方法,通过滤除非修正性缺陷报告,达到降低缺陷数据库的噪声、提高缺陷预测研究精确度的目的。
为了达到上述目的,本发明组合式软件缺陷报告分类方法包括以下步骤:
1)提取该软件缺陷报告的非结构型特征属性,并进行预处理而得到特征词集合;
2)利用监督式的文本挖掘技术预测所述特征词集合所描述的内容倾向于所述期望类型的程度等级;
3)将所述程度等级的预测结果与该软件缺陷报告的编号与有用的结构型特征属性相结合,生成一新的软件缺陷报告;
4)利用数据挖掘的方法预测新的软件缺陷报告是否为所述期望类型。
进一步的,步骤1)中仅提取非结构型特征属性的小结。
进一步的,对所述小结进行分词、去停用词和提取词干的处理,且停用词根据文本特性自由添加。
进一步的,利用贝叶斯多项式预测非结构型属性偏向于修正性缺陷的程度等级,并使用十倍交叉验证。而且,在所述十倍交叉验证中,每次迭代都有九份数据是人工标引的实例,且所述人工标引的实例由相应特征词集合和对应的程度等级标引组成。
进一步的,所述非结构型属性的十倍交叉验证的十份数据由编写的代码完成分割,从而便于对应的软件缺陷报告编号ID进行追踪。
进一步的,在步骤4)中利用贝叶斯网络对缺陷报告进行预测,并使用十倍交叉验证,且所述十倍交叉由机器学习工具完成。且在该十倍交叉验证中,每次迭代都有九份数据是人工标引的实例,且所述人工标引的实例是由相应新的软件缺陷报告的有用的结构型特征属性以及缺陷报告是否为修正性缺陷的分类组成。
由上可知,本发明通过分析软件缺陷报告来判断缺陷的类型是否为修正性缺陷,通过滤除非修正性的缺陷,降低缺陷数据库的噪声,从而提高基于缺陷报告数据库的缺陷预测研究的精确度。
附图说明
图1是本发明组合式软件缺陷报告分类方法的流程图;
图2是图1实施例的数据嫁接算法的伪代码实现;
图3是图1实施例中合成新软件缺陷报告的示意图。
具体实施方式
下面结合附图对本发明作更进一步的说明。
以下将结合附图1,对本发明的技术方案进行详细说明。
1、第一阶段
从软件缺陷报告追踪器中提取历史缺陷报告数据。提取软件缺陷报告里非结构型特征属性,并对非结构型特征属性进行预处理。预处理包括分词、去停用词和提取词干,停用词可根据文本特性自由添加。经预处理后得到特征词集合。
正如前述内容所提及的,软件缺陷报告中的非结构型特征属性通常包括小结(summary)、描述(description)、讨论(discussion)等内容,本实施例优选小结进行预处理。“小结”通常用于概要性地描述软件缺陷内容或者发生问题时的现象,“描述”则用来描述缺陷的详细信息,通常描述缺陷的重现步骤,供修改缺陷时查看。
得到特征词集合之后,再通过文本分类器,采用监督式的文本挖掘技术,如贝叶斯多项式预测该非结构型特征属性倾向于修正性缺陷的程度等级分类,分类结果被分成不同等级(high、middle或low),并采用十倍交叉验证(10-fold cross-validation)。
在此,十倍交叉验证的十份数据由编写的代码完成分割,而不是依靠挖掘工具,这样可以对小结对应的软件缺陷报告编号ID进行追踪。
在本阶段的十倍交叉验证中,每次迭代都有九份数据是被人工标记的实例。已标记实例是由相应小结summary所得到的特征词集合以及程度等级标记组成,目的是为了实现监督式文本分类。
2、数据嫁接
将第一阶段的等级预测结果依据软件缺陷报告的编号ID与原始有用的结构型特征属性相结合生成新的软件缺陷报告。图2是数据嫁接算法实现的伪代码,数据嫁接依据软件缺陷报告编号ID来实现第一阶段预测结果和原始的有用结构型特征属性一一对应的嫁接。
图3所示第一阶段数据集为小结的特征词集合和分类预测结果。第二阶段将小结的分类预测结果possibility一一对应与原软件缺陷报告有用的结构型特性属性相结合生成新的软件缺陷报告。
3、第二阶段
根据新生成的软件缺陷报告的描述,利用数据挖掘的方法,如贝叶斯网络和十倍交叉验证预测该缺陷报告是否为修正性缺陷,并将整个新的软件缺陷报告人工标记为bug或non-bug,从而达到预测原软件缺陷报告分类的目的。在此,十倍交叉可有机器学习工具完成。
在本阶段的十倍交叉验证中,每次迭代都有九份数据是被人工标记的实例。已标记实例是由相应新缺陷报告的所有有用的结构型特征属性以及该缺陷报告是否为修正性缺陷的分类组成,目的是为了实现监督式分类。
以下结合试验数据说明本发明的方法相对于单一的内部分类器而言,提高分类的准确度。本试验所采用的三组验证数据集如下表所示:
在验证数据的基础上,下表列出了单一的内部分类器预测缺陷报告是否为修正性缺陷的准确率(Precision)、召回率(Recall)和综合评价指标(F-Measure),其中MNB是贝叶斯多项式文本分类器,依靠缺陷报告的非结构特征属性进行缺陷报告分类预测,BN是贝叶斯网络分类器,依靠缺陷报告的结构型特征属性进行缺陷报告分类预测,预测结果如下表。
下表列出了根据本发明分类方法进行测试的试验结果:
对比上述试验数据可以看出,相对于单一的内部分类器,本发明所提供的方法的综合评价指标在Mozilla试验中由单一分类器最好结果73.8%上升到81.7%,在Eclipse试验中由76.6%上升到80.2%,在JBoss的试验中由85.8%上升到93.7%,平均上升3.6%到7.9%。这就进一步证明本发明可以提高缺陷预测的精确度。
综上所述,本发明通过两个阶段,既在第一阶段利用文本挖掘技术将非结构型数据转化为与其他结构型属性息息相关的结构型属性,且在第二阶段充分利用机器学习的方法达到更好的预测。随着两阶段精确的提高,整个系统也具有很好的提升空间。
以上所述仅是本发明的优选实施方式,应当指出:对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。
Claims (8)
1.一种组合式软件缺陷报告分类方法,用于判断一软件缺陷报告是否属于期望的类型,其特征是,该方法包括以下步骤:
1)提取该软件缺陷报告的非结构型特征属性,并进行预处理而得到特征词集合;
2)利用监督式的文本挖掘技术预测所述特征词集合所描述的内容倾向于所述期望类型的程度等级;
3)将所述程度等级的预测结果与该软件缺陷报告的编号与有用的结构型特征属性相结合,生成一新的软件缺陷报告;
4)利用数据挖掘的方法预测新的软件缺陷报告是否为所述期望类型。
2.根据权利要求1所述的组合式软件缺陷报告分类方法,其中,步骤1)中仅提取非结构型特征属性中的小结。
3.根据权利要求2所述的组合式软件缺陷报告分类方法,其中,所述预处理包括分词、去停用词和提取词干,且停用词根据文本特性自由添加。
4.根据权利要求1所述的组合式软件缺陷报告分类方法,其中,利用贝叶斯多项式预测所述程度等级,并使用十倍交叉验证。
5.根据权利要求4所述的组合式软件缺陷报告分类方法,其中,在所述十倍交叉验证中,每次迭代都有九份数据是人工标引的实例,且所述人工标引的实例由相应特征词集合和对应的程度等级标引组成。
6.根据权利要求4组合式软件缺陷报告分类方法,其中,所述非结构型属性的十倍交叉验证的十份数据由编写的代码完成分割,从而便于对应的软件缺陷报告编号进行追踪。
7.根据权利要求1所述的组合式软件缺陷报告分类方法,其中,步骤4)中利用贝叶斯网络对缺陷报告进行预测,并使用十倍交叉验证,且所述十倍交叉由机器学习工具完成。
8.根据权利要求7所述的组合式软件缺陷报告分类方法,其中,在所述十倍交叉验证中,每次迭代都有九份数据是人工标引的实例,且所述人工标引的实例是由相应新的软件缺陷报告的有用的结构型特征属性以及缺陷报告是否为修正性缺陷的分类组成。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410250512.3A CN104021180B (zh) | 2014-06-09 | 2014-06-09 | 一种组合式软件缺陷报告分类方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410250512.3A CN104021180B (zh) | 2014-06-09 | 2014-06-09 | 一种组合式软件缺陷报告分类方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104021180A true CN104021180A (zh) | 2014-09-03 |
CN104021180B CN104021180B (zh) | 2017-10-24 |
Family
ID=51437934
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410250512.3A Active CN104021180B (zh) | 2014-06-09 | 2014-06-09 | 一种组合式软件缺陷报告分类方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104021180B (zh) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104281525A (zh) * | 2014-10-28 | 2015-01-14 | 中国人民解放军装甲兵工程学院 | 一种缺陷数据分析方法及利用其缩减软件测试项目的方法 |
CN105677833A (zh) * | 2016-01-06 | 2016-06-15 | 云南电网有限责任公司电力科学研究院 | 一种基于文本挖掘技术提取断路器故障特征信息的方法 |
CN106250311A (zh) * | 2016-07-27 | 2016-12-21 | 成都启力慧源科技有限公司 | 基于lda模型的重复缺陷报告检测方法 |
CN107273295A (zh) * | 2017-06-23 | 2017-10-20 | 中国人民解放军国防科学技术大学 | 一种基于文本混乱度的软件问题报告分类方法 |
CN108804558A (zh) * | 2018-05-22 | 2018-11-13 | 北京航空航天大学 | 一种基于语义模型的缺陷报告自动分类方法 |
CN116521742A (zh) * | 2023-06-25 | 2023-08-01 | 北京大学 | 源代码分析结果聚合方法、装置、电子设备及存储介质 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101140625A (zh) * | 2006-09-06 | 2008-03-12 | 中国科学院自动化研究所 | 一种多分辨率退化字符自适应识别系统及方法 |
CN101556553A (zh) * | 2009-03-27 | 2009-10-14 | 中国科学院软件研究所 | 基于需求变更的缺陷预测方法和系统 |
CN101847208A (zh) * | 2010-06-11 | 2010-09-29 | 哈尔滨工程大学 | 指纹与指静脉双模态识别的二级分类融合识别方法 |
CN103309862A (zh) * | 2012-03-07 | 2013-09-18 | 腾讯科技(深圳)有限公司 | 一种网页类型识别方法和系统 |
-
2014
- 2014-06-09 CN CN201410250512.3A patent/CN104021180B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101140625A (zh) * | 2006-09-06 | 2008-03-12 | 中国科学院自动化研究所 | 一种多分辨率退化字符自适应识别系统及方法 |
CN101556553A (zh) * | 2009-03-27 | 2009-10-14 | 中国科学院软件研究所 | 基于需求变更的缺陷预测方法和系统 |
CN101847208A (zh) * | 2010-06-11 | 2010-09-29 | 哈尔滨工程大学 | 指纹与指静脉双模态识别的二级分类融合识别方法 |
CN103309862A (zh) * | 2012-03-07 | 2013-09-18 | 腾讯科技(深圳)有限公司 | 一种网页类型识别方法和系统 |
Non-Patent Citations (8)
Title |
---|
"Classifying Bug Reports to Bugs and Other Requests Using Topic Modeling";Natthakul Pingclasai et al.;《2013 20th Asia-Pacific Software Engineering Conference》;20131231;第2013年卷;第13-18页 * |
"Drone: Predicting priority of reported bugs by multi-factor analysis";Yuan Tian et al.;《2013 29th IEEE International Conference on Software Maintenance》;20131231;第2013年卷;第200-209页 * |
"Extracting Structural Information from Bug Reports";Nicolas Bettenburg et al.;《2008 international working conference on Mining software repositories》;20121231;第2008年卷;第27-30页 * |
"Towards More Accurate Retrieval of Duplicate Bug Reports";Chengnian Sun et al.;《2011 26th IEEE/ACM International Conference on Automated Software Engineering》;20111231;第2011年卷;第253-262页 * |
CHENGNIAN SUN ET AL.: ""Towards More Accurate Retrieval of Duplicate Bug Reports"", 《2011 26TH IEEE/ACM INTERNATIONAL CONFERENCE ON AUTOMATED SOFTWARE ENGINEERING》 * |
NATTHAKUL PINGCLASAI ET AL.: ""Classifying Bug Reports to Bugs and Other Requests Using Topic Modeling"", 《2013 20TH ASIA-PACIFIC SOFTWARE ENGINEERING CONFERENCE》 * |
NICOLAS BETTENBURG ET AL.: ""Extracting Structural Information from Bug Reports"", 《2008 INTERNATIONAL WORKING CONFERENCE ON MINING SOFTWARE REPOSITORIES》 * |
YUAN TIAN ET AL.: ""Drone: Predicting priority of reported bugs by multi-factor analysis"", 《2013 29TH IEEE INTERNATIONAL CONFERENCE ON SOFTWARE MAINTENANCE》 * |
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104281525A (zh) * | 2014-10-28 | 2015-01-14 | 中国人民解放军装甲兵工程学院 | 一种缺陷数据分析方法及利用其缩减软件测试项目的方法 |
CN104281525B (zh) * | 2014-10-28 | 2016-12-07 | 中国人民解放军装甲兵工程学院 | 一种缺陷数据分析方法及利用其缩减软件测试项目的方法 |
CN105677833A (zh) * | 2016-01-06 | 2016-06-15 | 云南电网有限责任公司电力科学研究院 | 一种基于文本挖掘技术提取断路器故障特征信息的方法 |
CN105677833B (zh) * | 2016-01-06 | 2019-03-12 | 云南电网有限责任公司电力科学研究院 | 一种基于文本挖掘技术提取断路器故障特征信息的方法 |
CN106250311A (zh) * | 2016-07-27 | 2016-12-21 | 成都启力慧源科技有限公司 | 基于lda模型的重复缺陷报告检测方法 |
CN107273295A (zh) * | 2017-06-23 | 2017-10-20 | 中国人民解放军国防科学技术大学 | 一种基于文本混乱度的软件问题报告分类方法 |
CN107273295B (zh) * | 2017-06-23 | 2020-03-20 | 中国人民解放军国防科学技术大学 | 一种基于文本混乱度的软件问题报告分类方法 |
CN108804558A (zh) * | 2018-05-22 | 2018-11-13 | 北京航空航天大学 | 一种基于语义模型的缺陷报告自动分类方法 |
CN116521742A (zh) * | 2023-06-25 | 2023-08-01 | 北京大学 | 源代码分析结果聚合方法、装置、电子设备及存储介质 |
CN116521742B (zh) * | 2023-06-25 | 2023-09-22 | 北京大学 | 源代码分析结果聚合方法、装置、电子设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN104021180B (zh) | 2017-10-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108256074B (zh) | 校验处理的方法、装置、电子设备和存储介质 | |
CN105930277B (zh) | 一种基于缺陷报告分析的缺陷源代码定位方法 | |
CN104021180A (zh) | 一种组合式软件缺陷报告分类方法 | |
CN104391860B (zh) | 内容类别检测方法及装置 | |
CN110162478B (zh) | 一种基于缺陷报告的缺陷代码路径定位方法 | |
CN104153981B (zh) | 一种用于电站循环水泵启停时背压数据的预估方法 | |
CN104518905A (zh) | 一种故障定位方法及装置 | |
CN104965787A (zh) | 一种基于三支决策的两阶段软件缺陷预测方法 | |
CN111709244B (zh) | 一种用于矛盾纠纷事件因果关系识别的深度学习方法 | |
CN101826090A (zh) | 基于最优模型的web舆情趋势预测方法 | |
CN110990529B (zh) | 企业的行业明细划分方法及系统 | |
CN107004141A (zh) | 对大样本组的高效标注 | |
CN112231431B (zh) | 一种异常地址识别方法、设备和计算机可读存储介质 | |
CN111460164B (zh) | 一种基于预训练语言模型的电信工单智能判障方法 | |
CN113221960B (zh) | 一种高质量漏洞数据收集模型的构建方法及收集方法 | |
CN107133176A (zh) | 一种基于半监督聚类数据筛选的跨项目缺陷预测方法 | |
CN114519524A (zh) | 基于知识图谱的企业风险预警方法、装置及存储介质 | |
CN104331502A (zh) | 针对快递员周边人群营销中快递员数据的识别方法 | |
CN116089873A (zh) | 模型训练方法、数据分类分级方法、装置、设备及介质 | |
CN107402859A (zh) | 软件功能验证系统及其验证方法 | |
CN110310012B (zh) | 数据分析方法、装置、设备及计算机可读存储介质 | |
CN115358481A (zh) | 一种企业外迁预警识别的方法、系统及装置 | |
Rasiman et al. | How effective is automated trace link recovery in model-driven development? | |
CN113891342B (zh) | 基站巡检方法、装置、电子设备及存储介质 | |
CN110609936A (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |