首页> 中国专利> 基于历史项目伪标签生成的缺陷报告严重程度预测方法

基于历史项目伪标签生成的缺陷报告严重程度预测方法

摘要

本发明提供了基于历史项目伪标签生成的缺陷报告严重程度预测方法,解决的技术问题是使用伪标签技术从历史项目中选出与目标项目中缺陷报告最为相似的缺陷报告,从而可以有效扩充构建模型时所需的训练数据量。本发明的有益效果为:借助伪标签技术,通过有效利用历史项目的缺陷报告来提升缺陷报告严重程度预测模型的预测性能。

著录项

  • 公开/公告号CN112306730A

    专利类型发明专利

  • 公开/公告日2021-02-02

    原文格式PDF

  • 申请/专利权人 南通大学;

    申请/专利号CN202011260163.5

  • 申请日2020-11-12

  • 分类号G06F11/07(20060101);G06F16/906(20190101);G06F40/279(20200101);G06N3/04(20060101);G06N3/08(20060101);

  • 代理机构32200 南京经纬专利商标代理有限公司;

  • 代理人王毅

  • 地址 226019 江苏省南通市崇川区啬园路9号

  • 入库时间 2023-06-19 09:47:53

说明书

技术领域

本发明涉及软件质量保障技术领域,尤其涉及基于历史项目伪标签生成的缺陷报告严重程度预测方法。

背景技术

软件缺陷与软件开发如同双生子一般形影不离,会在或大或小的程度上影响软件质量,需要得到技术人员的及时修复,对软件缺陷进行修复的过程贯穿了整个软件开发的生命周期。因此,为了保证软件质量,如何提高软件缺陷修复效率是一个非常关键的问题。目前,为了解决这个问题,即为了快速定位、修复软件开发过程中出现的缺陷,很多大型项目都使用软件缺陷报告跟踪系统来收集和存放软件在开发、运行、维护的过程中所产生的缺陷报告。

软件缺陷报告的严重程度主要包括Blocker、Critical、Major、Normal、Minor、Trivial、Enhancement七个级别,其中Normal级别由于是默认归类缺陷标签,在研究过程中往往会被归类为不可信缺陷;另外,通常将Blocker、Critical和Major级别的缺陷归类为严重缺陷,将其他级别的缺陷归类为非严重缺陷。在进一步分类缺陷报告时,以开发人员手动操作定性分类为代表的传统分类方式具有受个人主观因素影响大、耗时长、效率低、时间和精力成本高的缺点,因此寻找自动化替代方案不仅是大势所趋,更是当务之急。同时,由于Normal级别的数据往往在软件缺陷报告跟踪系统中占据了大多数甚至绝大多数,在排除了Normal级别的数据后,在同一个项目范围内能够被用来训练模型的数据量非常有限,而不同项目之间的数据分布往往存在或大或小的区别,直接合并用于训练容易对预测模型的预测准确性造成不可预期的负面影响。历史项目往往是经历了完整开发、运行、维护周期后已经成熟的项目,其中所包含的缺陷报告通常种类较全,较为可靠,具有较大参考价值。因此,引进伪标签技术对不同历史项目中的缺陷报告进行自动化标签生成,进而筛选加入目标项目预测模型所用的训练数据集,对改善预测模型的预测性能进而极大减轻开发人员与研究人员的负担、提高软件的质量,有极大的应用价值与现实意义。

同时,近年来在软件缺陷报告严重程度预测领域,大多数研究工作者采用分类或回归的方法一次性实现对软件缺陷报告严重程度的预测,该方法只用训练集一次即构建了相应的严重程度预测模型,存在包括对数据的利用率不高、预测模型性能不理想在内的诸多不足。

如何解决上述技术问题为本发明面临的课题。

发明内容

本发明提供了基于历史项目伪标签生成的缺陷报告严重程度预测方法,解决的技术问题是使用伪标签技术从历史项目中选出与目标项目中缺陷报告最为相似的缺陷报告,从而可以有效扩充构建模型时所需的训练数据量。借助伪标签技术,通过有效利用历史项目的缺陷报告来提升缺陷报告严重程度预测模型的预测性能。本发明的思想是:本发明首先从历史与目标项目所在软件缺陷报告跟踪系统中搜集缺陷报告,并分别抽取相应属性进行数据及文本预处理,利用卷积神经网络训练生成缺陷报告对应向量,最终构成历史项目数据集D

本发明是通过如下措施实现的:基于历史项目伪标签生成的缺陷报告严重程度预测方法,其中,所述预测方法包括以下步骤:

(1)、从一个已完成的历史项目和一个待进行缺陷报告严重程度预测的目标项目所在的软件缺陷报告跟踪系统中,搜集这两个项目的历史缺陷报告,并分别在所述的两个项目内,针对每一份缺陷报告抽取对应的描述信息属性和严重程度属性内容,分别构成历史项目数据集D

(2)、对所述历史项目数据集D

(3)、对所述历史项目数据集D

(4)、基于OntoNotes 5和GloVe Common Crawl的大规模文本语料库,使用卷积神经网络模型训练生成维度为300的词向量模型,随后基于上述词向量模型,将步骤(3)所得的分词词根依次表示为对应的词向量,接着对历史项目数据集D

(5)、将历史项目数据集D

(6)、基于目标项目数据集D

(7)、通过将缺陷报告对应的伪标签与真实的严重程度小类类别进行对比,从历史项目数据集D

(8)、基于上述合并数据集D

(9)、针对目标项目内新的缺陷报告,执行步骤(1)-(4),得到该缺陷报告所对应的向量,然后输入步骤(8)所构建的缺陷报告严重程度预测模型M,得到新缺陷报告所对应的严重程度。

作为本发明提供的基于历史项目伪标签生成的缺陷报告严重程度预测方法进一步优化方案,所述步骤(7)中,通过将缺陷报告对应的伪标签与真实的严重程度小类类别进行对比,从历史项目数据集D

7-1)从目标项目数据集D

7-2)当目标项目数据集D

3、根据权利要求1所述的基于历史项目伪标签生成的缺陷报告严重程度预测方法,其特征在于,所述步骤(8)具体包括以下步骤:

8-1)根据所述合并数据集D

8-2)将所述合并数据集D

8-3)将所述步骤8-1)中所述的二分类预测模型M

作为本发明提供的基于历史项目伪标签生成的缺陷报告严重程度预测方法进一步优化方案,所述步骤(9)具体包括以下步骤:

9-1)针对目标项目内新的缺陷报告,执行步骤(1)-(4)得到该缺陷报告所对应的向量;

9-2)首先使用二分类预测模型M

与现有技术相比,本发明的有益效果为:本发明首先进行数据、文本预处理,剔除数据集中的噪音数据,之后进一步利用大规模文本语料库训练并生成缺陷报告对应向量,可显著提升严重程度预测模型的表现;其次利用Logistic回归方法对数据的严重程度类别进行标注,进一步使用变粒度方法构建缺陷报告严重程度预测模型;分类算法选用线性判别算法,该算法易实现且效果较好,该模型对相同的数据进行两次运用,一方面实现对同一批数据的二次利用,有利于提升严重程度预测模型的表现;另一方面实现变粒度方法可在大类分类正确的情况下减轻多分类线性判别预测模型的压力,进一步提高严重程度预测模型的准确率。

附图说明

附图用来提供对本发明的进一步理解,并且构成说明书的一部分,与本发明的实施例一起用于解释本发明,并不构成对本发明的限制。

图1为本发明基于历史项目伪标签生成的缺陷报告严重程度预测方法的流程图。

图2为本发明基于历史项目伪标签生成的缺陷报告严重程度预测方法中数据预处理阶段的流程图。

图3为本发明基于历史项目伪标签生成的缺陷报告严重程度预测方法中筛选阶段的流程图。

图4为本发明基于历史项目伪标签生成的缺陷报告严重程度预测方法中构建阶段的流程图。

具体实施方式

为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。当然,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。

实施例1

参见图1至图4,本发明提供其技术方案为,基于历史项目伪标签生成的缺陷报告严重程度预测方法,其中,所述预测方法包括以下步骤:

(1)、从一个已完成的历史项目和一个待进行缺陷报告严重程度预测的目标项目所在的软件缺陷报告跟踪系统中,搜集这两个项目的历史缺陷报告,并分别在所述的两个项目内,针对每一份缺陷报告抽取对应的描述信息属性和严重程度属性内容,分别构成历史项目数据集D

(2)、对所述历史项目数据集D

(3)、对所述历史项目数据集D

(4)、基于OntoNotes 5和GloVe Common Crawl的大规模文本语料库,使用卷积神经网络模型训练生成维度为300的词向量模型,随后基于上述词向量模型,将步骤(3)所得的分词词根依次表示为对应的词向量,接着对历史项目数据集D

(5)、将历史项目数据集D

(6)、基于目标项目数据集D

(7)、通过将缺陷报告对应的伪标签与真实的严重程度小类类别进行对比,从历史项目数据集D

(8)、基于上述合并数据集D

(9)、针对目标项目内新的缺陷报告,执行步骤(1)-(4),得到该缺陷报告所对应的向量,然后输入步骤(8)所构建的缺陷报告严重程度预测模型M,得到新缺陷报告所对应的严重程度。

作为本发明提供的基于历史项目伪标签生成的缺陷报告严重程度预测方法进一步优化方案,所述步骤(7)中,通过将缺陷报告对应的伪标签与真实的严重程度小类类别进行对比,从历史项目数据集D

7-1)从目标项目数据集D

7-2)当目标项目数据集D

具体地,所述步骤(8)具体包括以下步骤:

8-1)根据所述合并数据集D

8-2)将所述合并数据集D

8-3)将所述步骤8-1)中所述的二分类预测模型M

具体地,所述步骤(9)具体包括以下步骤:

9-1)针对目标项目内新的缺陷报告,执行步骤(1)-(4)得到该缺陷报告所对应的向量;

9-2)首先使用二分类预测模型M

为了更好地实现本发明目的,本发明还提供基于历史项目伪标签生成的缺陷报告严重程度预测方法的具体实例,具体包括以下步骤:

步骤(1)从一个已完成的历史项目Platform和一个待进行缺陷报告严重程度预测的目标项目CDT所在的软件缺陷报告跟踪系统Eclipse中,搜集这两个项目的历史缺陷报告,并分别在所述的两个项目内,针对每一份缺陷报告抽取对应的描述信息属性和严重程度属性内容,分别构成历史项目数据集D

表1历史项目数据集D

表2目标项目数据集D

步骤(2)对所述历史项目数据集D

表3数据预处理后的历史项目数据集D

表4数据预处理后的目标项目数据集D

步骤(3)对所述历史项目数据集D

经过文本预处理的历史项目数据集D

经过文本预处理的目标项目数据集D

步骤(4)基于OntoNotes 5和GloVe Common Crawl的大规模文本语料库,使用卷积神经网络模型训练生成维度为300的词向量模型,随后基于上述词向量模型,将步骤(3)所得的分词词根依次表示为对应的词向量,接着对历史项目数据集D

表5历史项目数据集D

表6目标项目数据集D

步骤(5)将历史项目数据集D

表7新的历史项目数据集D

表8新的目标项目数据集D

步骤(6)基于目标项目数据集D

表9生成的对应伪标签

步骤(7)通过将缺陷报告对应的伪标签与真实的严重程度小类类别进行对比,从历史项目数据集D

7.1、从目标项目数据集D

7.2、当目标项目数据集D

合并数据集D

表10合并数据集D

步骤(8)基于上述合并数据集D

8.1、根据所述合并数据集D

8.2、将所述合并数据集D

8.3、根据所述步骤8.1中所述的二分类预测模型M

步骤(9)针对目标项目内新的缺陷报告,执行步骤(1)-(4),得到该缺陷报告所对应的向量,然后输入步骤(8)所构建的缺陷报告严重程度预测模型M,得到新缺陷报告所对应的严重程度。

9.1、针对目标项目内新的缺陷报告,执行步骤(1)-(4)得到该缺陷报告所对应的向量。

9.2、首先使用二分类预测模型M

在本实施样例中,新输入的缺陷报告信息如下表11所示:

表11新输入的缺陷报告信息

最终预测结果如表12所示。

表12严重程度预测结果与实际预测结果对照表

为了评估严重程度预测模型的表现,采用研究工作中常用的Macro-F1值作为评估指标。

为说明本发明的实验效果,采用逻辑回归、线性判别、决策树、K近邻、线性核函数支持向量机、随机森林等常用的分类方法作为基准进行比较。为了使得结果尽可能客观化、标准化,使用了同样的向量生成模型生成对应向量,并采用了目前被广泛使用的sklearn库中封装好的各个分类预测方法的已有函数。在相同的实验框架下,使用一致的随机种子,将缺陷报告训练数据集按照训练集:测试集取3:7的比例,采用留出法划分为训练集、测试集,确保了条件一致。

该专利与所用各种基准对照方法的预测准确率如表13所示。

表13该专利方法与各基准方法预测Macro-F1值对照表

以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号