基于不平衡噪声集的多特征软件缺陷综合预测方法技术

技术编号:25947911 阅读:13 留言:0更新日期:2020-10-17 03:39
本发明专利技术公开了基于不平衡噪声集的多特征软件缺陷综合预测方法,包括以下步骤:构建包含代码特征、开发过程特征和网络结构特征的初始数据集。对数据集进行初步欠采样处理,减少多数类中的重复数据。通过倾向性得分匹配的方法为数据集中的度量元寻找k最近邻样本集。通过k最近邻样本阈值判断,实现数据集的降噪处理。对数据集中的少数类与其k最近邻样本集中的少数类进行样本合成,消除数据集的类不平衡问题。自适应地构建多种机器学习模型并选择其中最合适的机器学习模型对新版本软件进行缺陷预测。本发明专利技术解决了软件缺陷预测中普遍存在的类不平衡问题。基于倾向性得分匹配的噪声判别处理,去除了噪声样本。

【技术实现步骤摘要】
基于不平衡噪声集的多特征软件缺陷综合预测方法
本专利技术涉及软件缺陷预测及软件可靠性
,特别涉及基于不平衡噪声集的多特征软件缺陷综合预测方法。
技术介绍
21世纪以来,软件在社会生活中的地位日益提升,无处不在,已经不仅仅局限于工程、科研、经济等专业领域,更是走进了千家万户,成为了人们生活中举足轻重的工具。随着软件系统规模日益增加,复杂程度呈几何式提升,软件的缺陷也与日俱增,而软件缺陷也影响到了人民生活的方方面面。软件缺陷数据是软件可靠性相关研究和应用的基础。长期以来,软件可靠性领域使用的缺陷数据主要来自于有限的软件测试数据和使用中故障的分析数据。虽然这类缺陷数据相对完整,但是缺陷数据量太少、覆盖面不足、涉及软件类型有限,已经成为了软件可靠性研究和应用的瓶颈。在软件的全寿命周期当中,如何提高软件的质量,对软件的缺陷进行识别和修复已经成为一个重要的研究命题。由于相当一部分的软件缺陷有其独有特征,根据历史缺陷信息,可以提取出相应的软件缺陷特征,在出现软件失效之前尽早地识别软件可能存在的影响其可靠性、安全性、可用性、兼容性等软件质量特性的缺陷模块,从而达到缺陷预测和预防的效果。随着机器学习技术和深度学习技术的出现和不断推进,软件缺陷预测技术从一开始的人工学习为主逐步转向以机器学习作为重要工具。由于学习能力和数据处理能力的大幅度提高,学习更加庞大的软件缺陷数据集,从而利用机器学习中的关联规则、分类器算法、聚类算法等对软件的缺陷特征进行分析和预测成为了主流趋势。如何抽象和特征化软件缺陷是运用机器学习进行软件缺陷预测的一个关键问题,目前领域内主要选择使用CK度量元等代码特征作为软件缺陷预测的度量元组。然而也有学者认为仅使用代码特征不足以准确地度量软件缺陷。运用机器学习进行软件缺陷预测的另一个关键问题是软件缺陷数据集的质量问题。由于软件缺陷分布符合“二八定律”,即80%的缺陷集中在20%的模块当中,因此软件缺陷数据集中往往会由于缺陷样本数量远少于无缺陷样本的数量而导致严重的类不平衡问题。当前主流的类不平衡缓解方法主要有欠采样和过采样两种。欠采样方法通过去除多数类样本实现平衡,但会大幅减少数据量,导致信息缺失引起的欠拟合问题。过采样方法通过对少数类样本进行复制实现平衡,但容易导致过拟合问题的发生。由于目前软件呈现出了迭代越来越快,结构和算法越来越复杂的特点,导致了开发人员发现缺陷的滞后性和研究人员标记缺陷的困难性,使得一些样本会出现标记错误的问题,为数据集引入噪声。当前主流的噪声去除方法主要是使用各种滤波器,但这类方法往往存在算法复制、开销大、不适应软件数据特点的问题。
技术实现思路
本专利技术的目的是提出一种基于不平衡噪声集的多特征软件缺陷综合预测方法,可以解决现有技术中的特征度量不全面、数据集类不平衡程度较高、数据集中存在错误标记引起的噪声样本等问题。本专利技术的目的是通过以下技术方案实现的:基于不平衡噪声集的多特征软件缺陷综合预测方法,包括以下步骤:步骤S1、从目标软件的历史版本中提取代码特征、开发过程特征和网络结构特征,构建初始数据集;步骤S2、对初始数据集实施欠采样,去除部分重复的无缺陷样本,得到欠采样数据集;步骤S3、使用倾向得分匹配方法为欠采样数据集中的每个样本计算倾向性得分,作为该样本的一个附加特征加入欠采样数据集中,得到倾向性得分数据集;步骤S4、对倾向性得分数据集中的每个样本寻找k最近邻样本,并根据该样本的k最近邻样本集中的异类样本的数量进行噪声判别和去除,得到降噪后的数据集;步骤S5、计算降噪后的数据集的类不平衡系数,根据类不平衡系数对降噪后的数据集中的每个少数类样本及其k最近邻样本集实施综合少数类过采样技术,合成新的少数类样本,得到类平衡降噪的数据集;步骤S6、构建基于交叉验证打分的软件缺陷预测模型,对目标软件的新版本进行缺陷预测。进一步的,所述的步骤S1包括:步骤S101、对目标软件的历史版本进行代码扫描与代码特征提取;步骤S102、对目标软件的开发历史分析和开发过程特征提取;步骤S103、构建目标软件的网络模型和计算网络结构特征;步骤S104、构建包含代码特征、开发过程特征和网络结构特征的初始数据集。进一步的,所述的步骤S2包括:步骤S201、设定欠采样参数;步骤S202、采集非重复无缺陷样本集;步骤S203、采集含缺陷样本集;步骤S204、平衡非重复无缺陷样本集与含缺陷样本集,形成平衡后的无缺陷样本集和含缺陷样本集;步骤S205、将平衡后的无缺陷样本集与含缺陷样本集合并成为欠采样数据集。进一步的,所述的步骤S204中平衡非重复无缺陷样本集与含缺陷样本集具体为:计算非重复无缺陷样本集与含缺陷样本集的样本数比例r,如果r≥欠采样参数,则进入步骤S205;否则随机抽取重复的无缺陷样本加入非重复无缺陷样本集中,直至满足r≥欠采样参数,进入步骤S205。进一步的,所述的步骤S3包括:步骤S301、输入欠采样数据集;步骤S302、定义一个m维权重向量,定义一个常数向量并进行极小初始化;步骤303、求解权重向量;步骤304、使用权重向量,结合每个样本的特征向量代入Logistic函数,求解得到每个样本的倾向性得分;步骤S305、将每个样本的倾向性得分作为该样本的附加特征值加入欠采样数据集,得到倾向性得分数据集。进一步的,所述的步骤S4包括:步骤S401、设置与倾向性得分匹配的最近邻数量参数k和噪声判别阈值t;步骤S402、遍历倾向性得分数据集中的每个样本,寻找倾向性得分与该样本最接近的k个样本,组成该样本的k最近邻样本集;步骤S403、对每个样本,统计其最近邻样本集中的每个最近邻样本的缺陷标记与其异类的数量diff,若diff≥t,则认为该样本为噪声样本,从倾向性得分数据集中剔除;步骤S404、重复步骤S402和步骤S403,直到不再判别到噪声,得到降噪后的数据集及其中每个样本对应的k最近邻样本集。进一步的,所述的步骤S5包括:步骤S501、计算降噪后的数据集的类不平衡系数;步骤S502、遍历降噪后的数据集的每个缺陷样本xi,对每个缺陷样本随机选取其k最近邻样本集中的一个缺陷样本xij,应用综合少数类过采样技术方法,通过以下公式实现在两个缺陷样本连线之间随机合成一个新的缺陷样本:xnew=xi+c(xij-xi),ynew=1,其中c表示一个随机生成的大小介于0到1之间的常数;步骤S503、重复步骤S502直至新的缺陷样本数量达到合成样本数量,将所有新的缺陷样本加入降噪后的数据集中,得到类平衡降噪数据集。进一步的,所述的步骤S6包括:步骤S601、设定K折分层随机分组的分组数量、模型得分误差阈值;步骤S602、每次选择一个分组数据集作为验证集,其余分组数据集作为训练集;...

【技术保护点】
1.基于不平衡噪声集的多特征软件缺陷综合预测方法,其特征在于,包括以下步骤:/n步骤S1、从目标软件的历史版本中提取代码特征、开发过程特征和网络结构特征,构建初始数据集;/n步骤S2、对初始数据集实施欠采样,去除部分重复的无缺陷样本,得到欠采样数据集;/n步骤S3、使用倾向得分匹配方法为欠采样数据集中的每个样本计算倾向性得分,作为该样本的一个附加特征加入欠采样数据集中,得到倾向性得分数据集;/n步骤S4、对倾向性得分数据集中的每个样本寻找k最近邻样本,并根据该样本的k最近邻样本集中的异类样本的数量进行噪声判别和去除,得到降噪后的数据集;/n步骤S5、计算降噪后的数据集的类不平衡系数,根据类不平衡系数对降噪后的数据集中的每个少数类样本及其k最近邻样本集实施综合少数类过采样技术,合成新的少数类样本,得到类平衡降噪的数据集;/n步骤S6、构建基于交叉验证打分的软件缺陷预测模型,对目标软件的新版本进行缺陷预测。/n

【技术特征摘要】
1.基于不平衡噪声集的多特征软件缺陷综合预测方法,其特征在于,包括以下步骤:
步骤S1、从目标软件的历史版本中提取代码特征、开发过程特征和网络结构特征,构建初始数据集;
步骤S2、对初始数据集实施欠采样,去除部分重复的无缺陷样本,得到欠采样数据集;
步骤S3、使用倾向得分匹配方法为欠采样数据集中的每个样本计算倾向性得分,作为该样本的一个附加特征加入欠采样数据集中,得到倾向性得分数据集;
步骤S4、对倾向性得分数据集中的每个样本寻找k最近邻样本,并根据该样本的k最近邻样本集中的异类样本的数量进行噪声判别和去除,得到降噪后的数据集;
步骤S5、计算降噪后的数据集的类不平衡系数,根据类不平衡系数对降噪后的数据集中的每个少数类样本及其k最近邻样本集实施综合少数类过采样技术,合成新的少数类样本,得到类平衡降噪的数据集;
步骤S6、构建基于交叉验证打分的软件缺陷预测模型,对目标软件的新版本进行缺陷预测。


2.根据权利要求1所述的基于不平衡噪声集的多特征软件缺陷综合预测方法,其特征在于,所述的步骤S1包括:
步骤S101、对目标软件的历史版本进行代码扫描与代码特征提取;
步骤S102、对目标软件的开发历史分析和开发过程特征提取;
步骤S103、构建目标软件的网络模型和计算网络结构特征;
步骤S104、构建包含代码特征、开发过程特征和网络结构特征的初始数据集。


3.根据权利要求1所述的基于不平衡噪声集的多特征软件缺陷综合预测方法,其特征在于,所述的步骤S2包括:
步骤S201、设定欠采样参数;
步骤S202、采集非重复无缺陷样本集;
步骤S203、采集含缺陷样本集;
步骤S204、平衡非重复无缺陷样本集与含缺陷样本集,形成平衡后的无缺陷样本集和含缺陷样本集;
步骤S205、将平衡后的无缺陷样本集与含缺陷样本集合并成为欠采样数据集。


4.根据权利要求3所述的基于不平衡噪声集的多特征软件缺陷综合预测方法,其特征在于,所述的步骤S204中平衡非重复无缺陷样本集与含缺陷样本集具体为:计算非重复无缺陷样本集与含缺陷样本集的样本数比例r,如果r≥欠采样参数,则进入步骤S205;否则随机抽取重复的无缺陷样本加入非重复无缺陷样本集中,直至满足r≥欠采样参数,进入步骤S205。


5.根据权利要求1所述的基于不平衡噪声集的多特征软件缺陷综合预测方法,其特征在于,所述的步骤S3包括:
步骤S301、输入欠采样数据集;
步骤S302、定义一个m维权重向量,定义一个常数向量并进行极小初始化;
步骤303、求解权重向量;
步骤304、使用权重向量,结合每个样本的特征向量代入Logistic函数,求解得到每个样本的倾向性得分;
步骤S305、将每个样本的倾向性得分作为该样本的附加特征值加入欠采样数据集,得到倾向性得分数据集。


6.根据权利要求1所述的基于不平衡噪声集的多特征软件缺陷综合预测方法,其特...

【专利技术属性】
技术研发人员:严亮许嘉熙艾骏
申请(专利权)人:北京高质系统科技有限公司
类型:发明
国别省市:北京;11

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1