CN112306730B - 基于历史项目伪标签生成的缺陷报告严重程度预测方法 - Google Patents
基于历史项目伪标签生成的缺陷报告严重程度预测方法 Download PDFInfo
- Publication number
- CN112306730B CN112306730B CN202011260163.5A CN202011260163A CN112306730B CN 112306730 B CN112306730 B CN 112306730B CN 202011260163 A CN202011260163 A CN 202011260163A CN 112306730 B CN112306730 B CN 112306730B
- Authority
- CN
- China
- Prior art keywords
- data set
- defect report
- defect
- severity
- prediction model
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/0703—Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
- G06F11/0766—Error or fault reporting or storing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/0703—Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
- G06F11/079—Root cause analysis, i.e. error or fault diagnosis
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/906—Clustering; Classification
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/20—Natural language analysis
- G06F40/279—Recognition of textual entities
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/045—Combinations of networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Health & Medical Sciences (AREA)
- General Health & Medical Sciences (AREA)
- Biomedical Technology (AREA)
- Data Mining & Analysis (AREA)
- Artificial Intelligence (AREA)
- Computational Linguistics (AREA)
- Biophysics (AREA)
- Computing Systems (AREA)
- Molecular Biology (AREA)
- Evolutionary Computation (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Life Sciences & Earth Sciences (AREA)
- Quality & Reliability (AREA)
- Databases & Information Systems (AREA)
- Audiology, Speech & Language Pathology (AREA)
- Stored Programmes (AREA)
Abstract
本发明提供了基于历史项目伪标签生成的缺陷报告严重程度预测方法,解决的技术问题是使用伪标签技术从历史项目中选出与目标项目中缺陷报告最为相似的缺陷报告,从而可以有效扩充构建模型时所需的训练数据量。本发明的有益效果为:借助伪标签技术,通过有效利用历史项目的缺陷报告来提升缺陷报告严重程度预测模型的预测性能。
Description
技术领域
本发明涉及软件质量保障技术领域,尤其涉及基于历史项目伪标签生成的缺陷报告严重程度预测方法。
背景技术
软件缺陷与软件开发如同双生子一般形影不离,会在或大或小的程度上影响软件质量,需要得到技术人员的及时修复,对软件缺陷进行修复的过程贯穿了整个软件开发的生命周期。因此,为了保证软件质量,如何提高软件缺陷修复效率是一个非常关键的问题。目前,为了解决这个问题,即为了快速定位、修复软件开发过程中出现的缺陷,很多大型项目都使用软件缺陷报告跟踪系统来收集和存放软件在开发、运行、维护的过程中所产生的缺陷报告。
软件缺陷报告的严重程度主要包括Blocker、Critical、Major、Normal、Minor、Trivial、Enhancement七个级别,其中Normal级别由于是默认归类缺陷标签,在研究过程中往往会被归类为不可信缺陷;另外,通常将Blocker、Critical和Major级别的缺陷归类为严重缺陷,将其他级别的缺陷归类为非严重缺陷。在进一步分类缺陷报告时,以开发人员手动操作定性分类为代表的传统分类方式具有受个人主观因素影响大、耗时长、效率低、时间和精力成本高的缺点,因此寻找自动化替代方案不仅是大势所趋,更是当务之急。同时,由于Normal级别的数据往往在软件缺陷报告跟踪系统中占据了大多数甚至绝大多数,在排除了Normal级别的数据后,在同一个项目范围内能够被用来训练模型的数据量非常有限,而不同项目之间的数据分布往往存在或大或小的区别,直接合并用于训练容易对预测模型的预测准确性造成不可预期的负面影响。历史项目往往是经历了完整开发、运行、维护周期后已经成熟的项目,其中所包含的缺陷报告通常种类较全,较为可靠,具有较大参考价值。因此,引进伪标签技术对不同历史项目中的缺陷报告进行自动化标签生成,进而筛选加入目标项目预测模型所用的训练数据集,对改善预测模型的预测性能进而极大减轻开发人员与研究人员的负担、提高软件的质量,有极大的应用价值与现实意义。
同时,近年来在软件缺陷报告严重程度预测领域,大多数研究工作者采用分类或回归的方法一次性实现对软件缺陷报告严重程度的预测,该方法只用训练集一次即构建了相应的严重程度预测模型,存在包括对数据的利用率不高、预测模型性能不理想在内的诸多不足。
如何解决上述技术问题为本发明面临的课题。
发明内容
本发明提供了基于历史项目伪标签生成的缺陷报告严重程度预测方法,解决的技术问题是使用伪标签技术从历史项目中选出与目标项目中缺陷报告最为相似的缺陷报告,从而可以有效扩充构建模型时所需的训练数据量。借助伪标签技术,通过有效利用历史项目的缺陷报告来提升缺陷报告严重程度预测模型的预测性能。本发明的思想是:本发明首先从历史与目标项目所在软件缺陷报告跟踪系统中搜集缺陷报告,并分别抽取相应属性进行数据及文本预处理,利用卷积神经网络训练生成缺陷报告对应向量,最终构成历史项目数据集Dh与目标项目数据集Dt,使用后者训练伪标签预测模型Mpl给前者贴伪标签并筛选,最终得到合并数据集Dc,使用变粒度方法构建缺陷报告严重程度预测模型M,在伪标签生成与预测过程分别采用Logistic回归与线性判别算法,易实现、效果好;该发明通过使用伪标签技术,拓展了历史数据与跨项目数据的应用价值和利用率,进而提升了模型的预测性能。
本发明是通过如下措施实现的:基于历史项目伪标签生成的缺陷报告严重程度预测方法,其中,所述预测方法包括以下步骤:
(1)、从一个已完成的历史项目和一个待进行缺陷报告严重程度预测的目标项目所在的软件缺陷报告跟踪系统中,搜集这两个项目的历史缺陷报告,并分别在所述的两个项目内,针对每一份缺陷报告抽取对应的描述信息属性和严重程度属性内容,分别构成历史项目数据集Dh与目标项目数据集Dt;
(2)、对所述历史项目数据集Dh与目标项目数据集Dt进行数据预处理,首先删除所述历史项目数据集Dh与目标项目数据集Dt中严重程度属性为Normal或为空的缺陷报告,然后将严重程度属性为Blocker、Critical、Major这三种类别的大类类别设为1,小类类别依次设为1、2、3,将严重程度属性为Minor、Trivial、Enhancement这三种类别的大类类别设为0,小类类别依次设为1、2、3;
(3)、对所述历史项目数据集Dh与目标项目数据集Dt中对应的描述信息属性内容进行文本预处理,包括对所述描述信息属性内容进行分词、借助停用词表进一步过滤掉停用词、最终对剩余分词进行词根还原;
(4)、基于OntoNotes 5和GloVe Common Crawl的大规模文本语料库,使用卷积神经网络模型训练生成维度为300的词向量模型,随后基于上述词向量模型,将步骤(3)所得的分词词根依次表示为对应的词向量,接着对历史项目数据集Dh与目标项目数据集Dt中每一份缺陷报告所对应的所有词向量进行求平均操作,分别生成所述两个项目中所有缺陷报告所各自对应的向量;
(5)、将历史项目数据集Dh与目标项目数据集Dt在步骤(4)中得到的所属缺陷报告对应向量,分别与所述两个项目经过步骤(2)处理的所属严重程度属性合并,构成新的历史项目数据集Dh与目标项目数据集Dt;
(6)、基于目标项目数据集Dt中缺陷报告所对应的向量与严重程度小类类别,使用Logistic回归方法,训练并得到伪标签预测模型Mpl,将历史项目数据集Dh所含缺陷报告的对应向量输入伪标签预测模型Mpl,得到历史项目数据集Dh中各份缺陷报告对应的伪标签;
(7)、通过将缺陷报告对应的伪标签与真实的严重程度小类类别进行对比,从历史项目数据集Dh中筛选出相匹配的缺陷报告,并有选择地与目标项目数据集Dt内的缺陷报告进行合并,得到合并数据集Dc;
(8)、基于上述合并数据集Dc,使用变粒度方法,构建缺陷报告严重程度预测模型M;
(9)、针对目标项目内新的缺陷报告,执行步骤(1)-(4),得到该缺陷报告所对应的向量,然后输入步骤(8)所构建的缺陷报告严重程度预测模型M,得到新缺陷报告所对应的严重程度。
作为本发明提供的基于历史项目伪标签生成的缺陷报告严重程度预测方法进一步优化方案,所述步骤(7)中,通过将缺陷报告对应的伪标签与真实的严重程度小类类别进行对比,从历史项目数据集Dh中筛选出相匹配的缺陷报告,有选择地与目标项目数据集Dt内的缺陷报告进行合并,得到合并数据集Dc,具体包括如下步骤:
7-1)从目标项目数据集Dt中依次取出其所含各缺陷报告,随后基于余弦相似度,计算出该缺陷报告与历史项目数据集Dh中所有缺陷报告间的向量相似度,并从历史项目数据集Dh中选出余弦相似度大于0.5的缺陷报告,当选出的缺陷报告所对应的预测伪标签与真实标签相等时,将其添加到合并数据集Dc中;如果被选出的缺陷报告已经存在于合并数据集Dc中,则该缺陷报告不需要被重复添加到合并数据集Dc中;
7-2)当目标项目数据集Dt中还有缺陷报告需要分析时,则执行步骤7-1),否则直接返回合并数据集Dc。
3、根据权利要求1所述的基于历史项目伪标签生成的缺陷报告严重程度预测方法,其特征在于,所述步骤(8)具体包括以下步骤:
8-1)根据所述合并数据集Dc中缺陷报告对应的向量和大类类别,采用线性判别分类算法,构建二分类预测模型Mb;
8-2)将所述合并数据集Dc根据大类类别,细分为两个数据集:仅含有大类类别为1数据的训练数据集D1和仅含有大类类别为0数据的训练数据集D2。基于训练数据集D1中缺陷报告对应的向量和小类类别,采用线性判别分类算法,构建多分类预测模型M1,基于训练数据集D2中缺陷报告对应的向量和小类类别,采用线性判别分类算法,构建多分类预测模型M2;
8-3)将所述步骤8-1)中所述的二分类预测模型Mb和所述步骤8-2)中所述的两个多分类预测模型M1和M2进行组合,进而构成缺陷报告严重程度预测模型M。
作为本发明提供的基于历史项目伪标签生成的缺陷报告严重程度预测方法进一步优化方案,所述步骤(9)具体包括以下步骤:
9-1)针对目标项目内新的缺陷报告,执行步骤(1)-(4)得到该缺陷报告所对应的向量;
9-2)首先使用二分类预测模型Mb,预测出该缺陷报告对应的大类类别。如果大类类别取值为1,则继续使用多分类预测模型M1预测出对应的小类类别。如果大类类别取值为0,则继续使用多分类预测模型M2预测出对应的小类类别。
与现有技术相比,本发明的有益效果为:本发明首先进行数据、文本预处理,剔除数据集中的噪音数据,之后进一步利用大规模文本语料库训练并生成缺陷报告对应向量,可显著提升严重程度预测模型的表现;其次利用Logistic回归方法对数据的严重程度类别进行标注,进一步使用变粒度方法构建缺陷报告严重程度预测模型;分类算法选用线性判别算法,该算法易实现且效果较好,该模型对相同的数据进行两次运用,一方面实现对同一批数据的二次利用,有利于提升严重程度预测模型的表现;另一方面实现变粒度方法可在大类分类正确的情况下减轻多分类线性判别预测模型的压力,进一步提高严重程度预测模型的准确率。
附图说明
附图用来提供对本发明的进一步理解,并且构成说明书的一部分,与本发明的实施例一起用于解释本发明,并不构成对本发明的限制。
图1为本发明基于历史项目伪标签生成的缺陷报告严重程度预测方法的流程图。
图2为本发明基于历史项目伪标签生成的缺陷报告严重程度预测方法中数据预处理阶段的流程图。
图3为本发明基于历史项目伪标签生成的缺陷报告严重程度预测方法中筛选阶段的流程图。
图4为本发明基于历史项目伪标签生成的缺陷报告严重程度预测方法中构建阶段的流程图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。当然,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。
实施例1
参见图1至图4,本发明提供其技术方案为,基于历史项目伪标签生成的缺陷报告严重程度预测方法,其中,所述预测方法包括以下步骤:
(1)、从一个已完成的历史项目和一个待进行缺陷报告严重程度预测的目标项目所在的软件缺陷报告跟踪系统中,搜集这两个项目的历史缺陷报告,并分别在所述的两个项目内,针对每一份缺陷报告抽取对应的描述信息属性和严重程度属性内容,分别构成历史项目数据集Dh与目标项目数据集Dt;
(2)、对所述历史项目数据集Dh与目标项目数据集Dt进行数据预处理,首先删除所述历史项目数据集Dh与目标项目数据集Dt中严重程度属性为Normal或为空的缺陷报告,然后将严重程度属性为Blocker、Critical、Major这三种类别的大类类别设为1,小类类别依次设为1、2、3,将严重程度属性为Minor、Trivial、Enhancement这三种类别的大类类别设为0,小类类别依次设为1、2、3;
(3)、对所述历史项目数据集Dh与目标项目数据集Dt中对应的描述信息属性内容进行文本预处理,包括对所述描述信息属性内容进行分词、借助停用词表进一步过滤掉停用词、最终对剩余分词进行词根还原;
(4)、基于OntoNotes 5和GloVe Common Crawl的大规模文本语料库,使用卷积神经网络模型训练生成维度为300的词向量模型,随后基于上述词向量模型,将步骤(3)所得的分词词根依次表示为对应的词向量,接着对历史项目数据集Dh与目标项目数据集Dt中每一份缺陷报告所对应的所有词向量进行求平均操作,分别生成所述两个项目中所有缺陷报告所各自对应的向量;
(5)、将历史项目数据集Dh与目标项目数据集Dt在步骤(4)中得到的所属缺陷报告对应向量,分别与所述两个项目经过步骤(2)处理的所属严重程度属性合并,构成新的历史项目数据集Dh与目标项目数据集Dt;
(6)、基于目标项目数据集Dt中缺陷报告所对应的向量与严重程度小类类别,使用Logistic回归方法,训练并得到伪标签预测模型Mpl,将历史项目数据集Dh所含缺陷报告的对应向量输入伪标签预测模型Mpl,得到历史项目数据集Dh中各份缺陷报告对应的伪标签;
(7)、通过将缺陷报告对应的伪标签与真实的严重程度小类类别进行对比,从历史项目数据集Dh中筛选出相匹配的缺陷报告,并有选择地与目标项目数据集Dt内的缺陷报告进行合并,得到合并数据集Dc;
(8)、基于上述合并数据集Dc,使用变粒度方法,构建缺陷报告严重程度预测模型M;
(9)、针对目标项目内新的缺陷报告,执行步骤(1)-(4),得到该缺陷报告所对应的向量,然后输入步骤(8)所构建的缺陷报告严重程度预测模型M,得到新缺陷报告所对应的严重程度。
作为本发明提供的基于历史项目伪标签生成的缺陷报告严重程度预测方法进一步优化方案,所述步骤(7)中,通过将缺陷报告对应的伪标签与真实的严重程度小类类别进行对比,从历史项目数据集Dh中筛选出相匹配的缺陷报告,有选择地与目标项目数据集Dt内的缺陷报告进行合并,得到合并数据集Dc,具体包括如下步骤:
7-1)从目标项目数据集Dt中依次取出其所含各缺陷报告,随后基于余弦相似度,计算出该缺陷报告与历史项目数据集Dh中所有缺陷报告间的向量相似度,并从历史项目数据集Dh中选出余弦相似度大于0.5的缺陷报告,当选出的缺陷报告所对应的预测伪标签与真实标签相等时,将其添加到合并数据集Dc中。注意,如果被选出的缺陷报告已经存在于合并数据集Dc中,则该缺陷报告不需要被重复添加到合并数据集Dc中;
7-2)当目标项目数据集Dt中还有缺陷报告需要分析时,则执行步骤7-1),否则直接返回合并数据集Dc。
具体地,所述步骤(8)具体包括以下步骤:
8-1)根据所述合并数据集Dc中缺陷报告对应的向量和大类类别,采用线性判别分类算法,构建二分类预测模型Mb;
8-2)将所述合并数据集Dc根据大类类别,细分为两个数据集:仅含有大类类别为1数据的训练数据集D1和仅含有大类类别为0数据的训练数据集D2。基于训练数据集D1中缺陷报告对应的向量和小类类别,采用线性判别分类算法,构建多分类预测模型M1,基于训练数据集D2中缺陷报告对应的向量和小类类别,采用线性判别分类算法,构建多分类预测模型M2;
8-3)将所述步骤8-1)中所述的二分类预测模型Mb和所述步骤8-2)中所述的两个多分类预测模型M1和M2进行组合,进而构成缺陷报告严重程度预测模型M。
具体地,所述步骤(9)具体包括以下步骤:
9-1)针对目标项目内新的缺陷报告,执行步骤(1)-(4)得到该缺陷报告所对应的向量;
9-2)首先使用二分类预测模型Mb,预测出该缺陷报告对应的大类类别。如果大类类别取值为1,则继续使用多分类预测模型M1预测出对应的小类类别。如果大类类别取值为0,则继续使用多分类预测模型M2预测出对应的小类类别。
为了更好地实现本发明目的,本发明还提供基于历史项目伪标签生成的缺陷报告严重程度预测方法的具体实例,具体包括以下步骤:
步骤(1)从一个已完成的历史项目Platform和一个待进行缺陷报告严重程度预测的目标项目CDT所在的软件缺陷报告跟踪系统Eclipse中,搜集这两个项目的历史缺陷报告,并分别在所述的两个项目内,针对每一份缺陷报告抽取对应的描述信息属性和严重程度属性内容,分别构成历史项目数据集Dh与目标项目数据集Dt,因总数据量较大,分别选择前5条构成数据集,如表1和表2所示:
表1历史项目数据集Dh部分数据(前5条)
表2目标项目数据集Dt部分数据(前5条)
步骤(2)对所述历史项目数据集Dh与目标项目数据集Dt进行数据预处理,首先删除所述历史项目数据集Dh与目标项目数据集Dt中严重程度属性为Normal或为空的缺陷报告,然后将严重程度属性为Blocker、Critical、Major这三种类别的大类类别设为1,小类类别依次设为1、2、3,将严重程度属性为Minor、Trivial、Enhancement这三种类别的大类类别设为0,小类类别依次设为1、2、3。其中,删除严重程度属性为Normal的缺陷报告是因为大多数的研究者认为Normal是缺陷报告的默认属性标注,大部分提交者会不进行更改,由此此类数据的质量参差不齐。数据预处理后的历史项目数据集Dh和目标项目数据集Dt如表3与表4所示。
表3数据预处理后的历史项目数据集Dh
表4数据预处理后的目标项目数据集Dt
步骤(3)对所述历史项目数据集Dh与目标项目数据集Dt中对应的描述信息属性内容进行文本预处理,包括对所述描述信息属性内容进行分词、借助停用词表进一步过滤掉停用词、最终对剩余分词进行词根还原。历史项目数据集Dh与目标项目数据集Dt经过文本预处理的描述信息属性内容如下:
经过文本预处理的历史项目数据集Dh描述信息属性内容:[['implementation','PatternRule','unread','character','endSequenceDetected'],['performance','loss','Composite','WM_paint'],['resource','datum','loss','disk','full','1gix0jl'],['CommonNavigator','Common','Navigator','Framework','Filter','Content','Extension','Dialog','extendable']]
经过文本预处理的目标项目数据集Dt描述信息属性内容:[['terminate','hang'],['the','operation','complete','attempt','install','new','software'],['Build','configuration','pop','menu','visible','simple','manage','c','project'],['include','include','rename'],['override','highlight','keyword']]
步骤(4)基于OntoNotes 5和GloVe Common Crawl的大规模文本语料库,使用卷积神经网络模型训练生成维度为300的词向量模型,随后基于上述词向量模型,将步骤(3)所得的分词词根依次表示为对应的词向量,接着对历史项目数据集Dh与目标项目数据集Dt中每一份缺陷报告所对应的所有词向量进行求平均操作,分别生成所述两个项目中所有缺陷报告所各自对应的向量。生成的词向量列表如表5、表6所示,表中对向量进行了省略表示:
表5历史项目数据集Dh缺陷报告各自对应向量表
错误报告编号 | 300维向量 |
221989 | [0.17330329,…,-0.013342199] |
550453 | [-0.25462252,…,-0.062210742] |
3328 | [-0.035327997,…,-0.26459333] |
150675 | [0.07765111,…,0.063704446] |
表6目标项目数据集Dt缺陷报告各自对应向量表
错误报告编号 | 300维向量 |
76555 | [0.40493998,…,-0.1280255] |
564627 | [0.07327886,…,0.10994234] |
291494 | [0.11286557,…,0.096159995] |
10283 | [0.15322934,…,-0.064013] |
438382 | [0.080506675,…,0.3192633] |
步骤(5)将历史项目数据集Dh与目标项目数据集Dt在步骤(4)中得到的所属缺陷报告对应向量,分别与所述两个项目经过步骤(2)处理的所属严重程度属性合并,构成新的历史项目数据集Dh与目标项目数据集Dt,新的历史项目数据集Dh与目标项目数据集Dt具体内容如表7、表8所示:
表7新的历史项目数据集Dh
表8新的目标项目数据集Dt
步骤(6)基于目标项目数据集Dt中缺陷报告所对应的向量与严重程度小类类别,使用Logistic回归方法,训练并得到伪标签预测模型Mpl,将历史项目数据集Dh所含缺陷报告的对应向量输入伪标签预测模型Mpl,得到历史项目数据集Dh中各份缺陷报告对应的伪标签。生成的对应伪标签如表9所示:
表9生成的对应伪标签
步骤(7)通过将缺陷报告对应的伪标签与真实的严重程度小类类别进行对比,从历史项目数据集Dh中筛选出相匹配的缺陷报告,并有选择地与目标项目数据集Dt内的缺陷报告进行合并,得到合并数据集Dc。
7.1、从目标项目数据集Dt中依次取出其所含各缺陷报告,随后基于余弦相似度,计算出该缺陷报告与历史项目数据集Dh中所有缺陷报告间的向量相似度,并从历史项目数据集Dh中选出余弦相似度大于0.5的缺陷报告,当选出的缺陷报告所对应的预测伪标签与真实标签相等时,将其添加到合并数据集Dc中。注意,如果被选出的缺陷报告已经存在于合并数据集Dc中,则该缺陷报告不需要被重复添加到合并数据集Dc中。
7.2、当目标项目数据集Dt中还有缺陷报告需要分析时,则执行步骤7-1),否则直接返回合并数据集Dc。
合并数据集DC如表10所示:
表10合并数据集DC
步骤(8)基于上述合并数据集Dc,使用变粒度方法,构建缺陷报告严重程度预测模型M;
8.1、根据所述合并数据集Dc中缺陷报告对应的向量和大类类别,采用线性判别分类算法,构建二分类预测模型Mb。
8.2、将所述合并数据集Dc根据大类类别,细分为两个数据集:仅含有大类类别为1数据的训练数据集D1和仅含有大类类别为0数据的训练数据集D2。基于训练数据集D1中缺陷报告对应的向量和小类类别,采用线性判别分类算法,构建多分类预测模型M1,基于训练数据集D2中缺陷报告对应的向量和小类类别,采用线性判别分类算法,构建多分类预测模型M2。
8.3、根据所述步骤8.1中所述的二分类预测模型Mb和所述步骤8.2中所述的两个多分类预测模型M1和M2进行组合,构成缺陷报告严重程度预测模型M。
步骤(9)针对目标项目内新的缺陷报告,执行步骤(1)-(4),得到该缺陷报告所对应的向量,然后输入步骤(8)所构建的缺陷报告严重程度预测模型M,得到新缺陷报告所对应的严重程度。
9.1、针对目标项目内新的缺陷报告,执行步骤(1)-(4)得到该缺陷报告所对应的向量。
9.2、首先使用二分类预测模型Mb,预测出该缺陷报告对应的大类类别。如果大类类别取值为1,则继续使用多分类预测模型M1预测出对应的小类类别。如果大类类别取值为0,则继续使用多分类预测模型M2预测出对应的小类类别。
在本实施样例中,新输入的缺陷报告信息如下表11所示:
表11新输入的缺陷报告信息
最终预测结果如表12所示。
表12严重程度预测结果与实际预测结果对照表
为了评估严重程度预测模型的表现,采用研究工作中常用的Macro-F1值作为评估指标。
为说明本发明的实验效果,采用逻辑回归、线性判别、决策树、K近邻、线性核函数支持向量机、随机森林等常用的分类方法作为基准进行比较。为了使得结果尽可能客观化、标准化,使用了同样的向量生成模型生成对应向量,并采用了目前被广泛使用的sklearn库中封装好的各个分类预测方法的已有函数。在相同的实验框架下,使用一致的随机种子,将缺陷报告训练数据集按照训练集:测试集取3:7的比例,采用留出法划分为训练集、测试集,确保了条件一致。
该专利与所用各种基准对照方法的预测准确率如表13所示。
表13该专利方法与各基准方法预测Macro-F1值对照表
方法名称 | 预测Macro-F1值 |
基于历史项目伪标签生成的缺陷报告严重程度预测方法 | 0.335 |
逻辑回归 | 0.266 |
线性判别 | 0.245 |
决策树 | 0.230 |
K近邻 | 0.203 |
线性核函数支持向量机 | 0.188 |
随机森林 | 0.185 |
以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (1)
1.基于历史项目伪标签生成的缺陷报告严重程度预测方法,其特征在于,所述预测方法包括以下步骤:
(1)、从一个已完成的历史项目和一个待进行缺陷报告严重程度预测的目标项目所在的软件缺陷报告跟踪系统中,搜集这两个项目的历史缺陷报告,并分别在所述的两个项目内,针对每一份缺陷报告抽取对应的描述信息属性和严重程度属性内容,分别构成历史项目数据集Dh与目标项目数据集Dt;
(2)、对所述历史项目数据集Dh与目标项目数据集Dt进行数据预处理,首先删除所述历史项目数据集Dh与目标项目数据集Dt中严重程度属性为Normal或为空的缺陷报告,然后将严重程度属性为Blocker、Critical、Major这三种类别的大类类别设为1,小类类别依次设为1、2、3,将严重程度属性为Minor、Trivial、Enhancement这三种类别的大类类别设为0,小类类别依次设为1、2、3;
(3)、对所述历史项目数据集Dh与目标项目数据集Dt中对应的描述信息属性内容进行文本预处理,包括对所述描述信息属性内容进行分词、借助停用词表进一步过滤掉停用词、最终对剩余分词进行词根还原;
(4)、基于OntoNotes 5和GloVe Common Crawl的大规模文本语料库,使用卷积神经网络模型训练生成维度为300的词向量模型,随后基于上述词向量模型,将步骤(3)所得的分词词根依次表示为对应的词向量,接着对历史项目数据集Dh与目标项目数据集Dt中每一份缺陷报告所对应的所有词向量进行求平均操作,分别生成所述两个项目中所有缺陷报告所各自对应的向量;
(5)、将历史项目数据集Dh与目标项目数据集Dt在步骤(4)中得到的所属缺陷报告对应向量,分别与所述两个项目经过步骤(2)处理的所属严重程度属性合并,构成新的历史项目数据集Dh与目标项目数据集Dt;
(6)、基于目标项目数据集Dt中缺陷报告所对应的向量与严重程度小类类别,使用Logistic回归方法,训练并得到伪标签预测模型Mpl,将历史项目数据集Dh所含缺陷报告的对应向量输入伪标签预测模型Mpl,得到历史项目数据集Dh中各份缺陷报告对应的伪标签;
(7)、通过将缺陷报告对应的伪标签与真实的严重程度小类类别进行对比,从历史项目数据集Dh中筛选出相匹配的缺陷报告,并有选择地与目标项目数据集Dt内的缺陷报告进行合并,得到合并数据集Dc;
步骤(7)中,通过将缺陷报告对应的伪标签与真实的严重程度小类类别进行对比,从历史项目数据集Dh中筛选出相匹配的缺陷报告,有选择地与目标项目数据集Dt内的缺陷报告进行合并,得到合并数据集Dc,具体包括如下步骤:
7-1)从目标项目数据集Dt中依次取出其所含各缺陷报告,随后基于余弦相似度,计算出该缺陷报告与历史项目数据集Dh中所有缺陷报告间的向量相似度,并从历史项目数据集Dh中选出余弦相似度大于0.5的缺陷报告,当选出的缺陷报告所对应的预测伪标签与真实标签相等时,将其添加到合并数据集Dc中;如果被选出的缺陷报告已经存在于合并数据集Dc中,则该缺陷报告不需要被重复添加到合并数据集Dc中;
7-2)当目标项目数据集Dt中还有缺陷报告需要分析时,则执行步骤7-1),否则直接返回合并数据集Dc;
(8)、基于上述合并数据集Dc,使用变粒度方法,构建缺陷报告严重程度预测模型M;
步骤(8)具体包括以下步骤:
8-1)根据所述合并数据集Dc中缺陷报告对应的向量和大类类别,采用线性判别分类算法,构建二分类预测模型Mb;
8-2)将所述合并数据集Dc根据大类类别,细分为两个数据集:仅含有大类类别为1数据的训练数据集D1和仅含有大类类别为0数据的训练数据集D2,基于训练数据集D1中缺陷报告对应的向量和小类类别,采用线性判别分类算法,构建多分类预测模型M1,基于训练数据集D2中缺陷报告对应的向量和小类类别,采用线性判别分类算法,构建多分类预测模型M2;
8-3)将步骤8-1)中所述的二分类预测模型Mb和步骤8-2)中两个多分类预测模型M1和M2进行组合,进而构成缺陷报告严重程度预测模型M;
(9)、针对目标项目内新的缺陷报告,执行步骤(1)-(4),得到该缺陷报告所对应的向量,然后输入步骤(8)所构建的缺陷报告严重程度预测模型M,得到新缺陷报告所对应的严重程度;
所述步骤(9)具体包括以下步骤:
9-1)针对目标项目内新的缺陷报告,执行步骤(1)-(4)得到该缺陷报告所对应的向量;
9-2)首先使用二分类预测模型Mb,预测出该缺陷报告对应的大类类别,如果大类类别取值为1,则继续使用多分类预测模型M1预测出对应的小类类别,如果大类类别取值为0,则继续使用多分类预测模型M2预测出对应的小类类别。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011260163.5A CN112306730B (zh) | 2020-11-12 | 2020-11-12 | 基于历史项目伪标签生成的缺陷报告严重程度预测方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011260163.5A CN112306730B (zh) | 2020-11-12 | 2020-11-12 | 基于历史项目伪标签生成的缺陷报告严重程度预测方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112306730A CN112306730A (zh) | 2021-02-02 |
CN112306730B true CN112306730B (zh) | 2021-11-30 |
Family
ID=74324960
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011260163.5A Active CN112306730B (zh) | 2020-11-12 | 2020-11-12 | 基于历史项目伪标签生成的缺陷报告严重程度预测方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112306730B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114676298B (zh) * | 2022-04-12 | 2024-04-19 | 南通大学 | 一种基于质量过滤器的缺陷报告标题自动生成方法 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106991049A (zh) * | 2017-04-01 | 2017-07-28 | 南京邮电大学 | 一种软件缺陷预测方法及预测系统 |
CN107862327A (zh) * | 2017-10-26 | 2018-03-30 | 华中科技大学 | 一种基于多特征的安全缺陷识别系统和方法 |
CN109857653A (zh) * | 2019-01-17 | 2019-06-07 | 南通大学 | 一种基于主动学习的无监督缺陷程序模块识别方法 |
CN110363083A (zh) * | 2019-06-06 | 2019-10-22 | 广智微芯(扬州)有限公司 | 一种人脸图像性别识别方法及装置 |
CN110825644A (zh) * | 2019-11-11 | 2020-02-21 | 南京邮电大学 | 一种跨项目软件缺陷预测方法及其系统 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7856616B2 (en) * | 2007-04-17 | 2010-12-21 | National Defense University | Action-based in-process software defect prediction software defect prediction techniques based on software development activities |
US9268674B1 (en) * | 2013-05-08 | 2016-02-23 | Amdocs Software Systems Limited | System, method, and computer program for monitoring testing progress of a software testing project utilizing a data warehouse architecture |
-
2020
- 2020-11-12 CN CN202011260163.5A patent/CN112306730B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106991049A (zh) * | 2017-04-01 | 2017-07-28 | 南京邮电大学 | 一种软件缺陷预测方法及预测系统 |
CN107862327A (zh) * | 2017-10-26 | 2018-03-30 | 华中科技大学 | 一种基于多特征的安全缺陷识别系统和方法 |
CN109857653A (zh) * | 2019-01-17 | 2019-06-07 | 南通大学 | 一种基于主动学习的无监督缺陷程序模块识别方法 |
CN110363083A (zh) * | 2019-06-06 | 2019-10-22 | 广智微芯(扬州)有限公司 | 一种人脸图像性别识别方法及装置 |
CN110825644A (zh) * | 2019-11-11 | 2020-02-21 | 南京邮电大学 | 一种跨项目软件缺陷预测方法及其系统 |
Non-Patent Citations (2)
Title |
---|
基于深度学习的安全缺陷报告识别和缺陷定位;路鹏程;《中国优秀博硕士学位论文全文数据库(硕士)信息科技辑》;20200215(第02期);第二章,图2-1 * |
静态软件缺陷预测方法研究;陈翔等;《软件学报》;20151103;全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN112306730A (zh) | 2021-02-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Ni et al. | A cluster based feature selection method for cross-project software defect prediction | |
CN109389143A (zh) | 一种数据分析处理系统及自动建模方法 | |
CN112612902A (zh) | 一种电网主设备的知识图谱构建方法及设备 | |
CN110750524A (zh) | 一种有源配电网故障特征的确定方法及系统 | |
CN108345544A (zh) | 一种基于复杂网络的软件缺陷分布影响因素分析方法 | |
CN109492106B (zh) | 一种文本代码相结合的缺陷原因自动分类方法 | |
Hussain et al. | A novel approach for software architecture recovery using particle swarm optimization. | |
CN115794803B (zh) | 一种基于大数据ai技术的工程审计问题监测方法与系统 | |
CN112306730B (zh) | 基于历史项目伪标签生成的缺陷报告严重程度预测方法 | |
CN112306731B (zh) | 基于Spacy词向量的两阶段判别缺陷报告严重程度预测方法 | |
CN108427753A (zh) | 一种新的数据挖掘方法 | |
CN112199287B (zh) | 基于强化混合专家模型的跨项目软件缺陷预测方法 | |
Malik et al. | A comprehensive approach towards data preprocessing techniques & association rules | |
CN111950652A (zh) | 一种基于相似度的半监督学习数据分类算法 | |
CN111666748A (zh) | 一种自动化分类器的构造方法以及从软件开发文本类制品中识别决策的方法 | |
CN106775694A (zh) | 一种软件配置代码制品的层次分类方法 | |
CN115239153A (zh) | 一种用于化工园区事故的应急指挥决策方法、系统及介质 | |
Liu et al. | Study on Chinese text clustering algorithm based on K-mean and evaluation method on effect of clustering for software-intensive system | |
CN112148605B (zh) | 一种基于谱聚类的半监督学习的软件缺陷预测方法 | |
CN115204179A (zh) | 基于电网公共数据模型的实体关系预测的方法及装置 | |
CN112348048A (zh) | 一种多结构多任务深度神经网络及其训练、分类方法 | |
CN112579667B (zh) | 数据驱动的发动机多学科知识机器学习方法及装置 | |
CN109977021A (zh) | 一种基于关联规则分析的软件质量管理方法及系统 | |
CN118377854B (zh) | 一种创新全链条科技情报服务集成方法及平台 | |
CN112836926B (zh) | 基于电力大数据的企业经营状况评估方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |