一种基于软件网络的缺陷高风险模块的识别方法技术

技术编号:21913838 阅读:25 留言:0更新日期:2019-08-21 12:23
本发明专利技术提出一种基于软件网络的缺陷高风险模块识别方法,属于软件复杂网络领域。包括:步骤一,构建自适应分类器,自适应分类器中包含多个分类器;步骤二,进行自适应特征选择;步骤三,进行自适应阈值寻优;步骤四,进行自适应分类器内部参数调优;步骤五,进行自适应最优预测模型的选择,然后利用最优预测模型对待测软件网络进行缺陷高风险模块识别。本发明专利技术方法无论针对何种类型的缺陷数据集,都能根据数据集自身的特点完成自适应分类器的构建、自适应特征选择、自适应阈值寻优、自适应分类器内部参数调优、自适应最优预测模型的选择等五个方面的内容,取得最好的缺陷预测结果,识别出高风险软件模块。

A Recognition Method of High Risk Defect Modules Based on Software Network

【技术实现步骤摘要】
一种基于软件网络的缺陷高风险模块的识别方法
本专利技术应用于软件复杂网络领域,是一种基于软件网络的缺陷高风险模块识别方法。
技术介绍
随着互联网的飞速发展,软件具备越来越丰富的功能,帮助人们开展各项生产活动。软件是否安全可靠得到更多的重视,如何尽早的识别出软件中的缺陷高风险模块已经成为热门的研究领域。准确识别具有缺陷高风险的模块可以提高软件的质量、降低开发的成本。国内外大量的研究已经表明,软件80%的缺陷存在于20%的软件代码中。但是在实际的软件测试中,往往采用均匀覆盖的原则,要求需求和语句100%覆盖,实质上浪费了大量的测试资源。在一些软件三方测试中,测试用例的命中率往往不足1%,甚至更低。而随着软件工程化程度的不断提高和大数据技术的不断实用化,大量的企业和使用方已经积累了越来越多的历史产品缺陷案例,然后再有的放矢的开展测试工作已经成为了国内提高测试效率、发现更多实质性缺陷的一种趋势。国外的一些研究表明使用缺陷预测模型获得的缺陷检测概率(PD)可以达到71%,高于软件代码审查的检查概率(60%),更高于纯黑盒测试的检测率。通过研究大量的实例发现,依据机器学习中的分类器算法、关联规则等建立模型取得了很好的缺陷高风险预测效果,并且建立在缺陷预测之上的软件测试与普通的软件测试相比,显著的提高了缺陷检测率,减少了测试用例的数量,缩短了测试时间,对于提高软件可靠性有着显著的作用。目前缺陷预测模型所使用的技术主要有单变量统计分析、多变量统计分析、统计分析联合专家分析、机器学习、以及机器学习联合统计分析等(参考文献[1])。单变量统计分析考虑特征较少,例如只关注代码行数与缺陷是否相关;多变量统计分析会分析多个特征与缺陷的相关性。机器学习方法主要有分类器算法、聚类算法、关联规则等。按照Catal的分析,基于机器学习算法的缺陷预测模型在2005年之后大规模显现,截止到2009年,基于机器学习方法的相关论文占总论文数量的66%。根据缺陷预测目标的不同,采用的机器学习方法有所差异。陈翔,顾庆等在参考文献1中对机器学习的方法进行了很好的总结,他们指出,若程序模块设置为细粒度,例如类级别或文件级别,则以预测模块的缺陷倾向性为目标,常采用分类方法,包括Logistic回归、贝叶斯网络和决策树等;若设置为粗粒度,比如包级别或子系统级别,则以预测缺陷数或缺陷密度为目标,常使用回归分析方法。除了常用的机器学习方法外,例如半监督学习和主动学习等也开始逐渐应用。Elish等人使用NASA数据集,将SVM(支持向量机)与LR(逻辑回归)、KNN(K-近邻)、MLP(多层感知器)、RBF(径向基函数)、BBN(贝叶斯网络)、NB(朴素贝叶斯),RF(随机森林)、DT(决策树)进行了系统比较,认为SVM在总体上要优于其他8种方法(参考文献[2])。Lessmann等人也使用公开的NASA数据集,采用AUC(AreaundertheCurveofROC)值作为模型性能参数,完整地对比了6类——集成方法、统计方法、最近邻方法、决策树法、支持向量机法和神经网络法共22种不同的机器学习方法,结果表明大部分方法之间的差异很小。Ghotra等人发现在去除NASA和Promise数据集的噪音之后,不同的机器学习方法有较大的性能差异(参考文献[3])。Shepperd等人借助随机效应的ANOVA(方差分析)对影响缺陷预测模型性能的影响因素进行了分析,发现机器学习方法的选择对性能的影响较小,但不同研究小组之间却存在较大差异。PanichellaA等人用遗传算法GAs来训练预测模型,研究表明由GAs训练的回归模型显著优于传统对手。傅艺绮和FuY等人研究表明,最优的机器学习算法在不同的评价准则下不是固定不变的,因此结合不同的机器学习算法构建了一种缺陷预测改进模型,并通过以Eclipse数据集的实验证明了该模型的优越性(参考文献[4])。针对软件缺陷数据集标记过少的问题,廖胜平等人提出一种基于采样的半监督支持向量机软件缺陷预测方法,确保带标签样本数据中缺陷样本数量不会过低,实验结果表明,与监督学习方法相比,能在学习样本较少的情况下取得相当的预测性能(参考文献[5])。常瑞花等人提出了一种新的基于超欧式距离近邻传播的软件缺陷预测方法,弥补了之前近邻传播算法采用欧式距离表示数据相似度难以有效处理复杂结构数据的不足,提高了无标志软件缺陷数据预测的精度(参考文献[6])。YangC等人提出了一种新的基于子空间的学习算法DLA,它克服了软件缺陷预测中的矩阵奇异问题和小样本大小问题,并通过实验证明了DLA比LDA(线性判别分析)和PCA(主成成分分析)在信息提取和预测性能方面更好(参考文献[7])。针对机器学习的相关分类器已经日渐成熟,但对于某种类型的数据集并不是所有的分类器算法都适用,如线性回归算法,这样的分类器对于那些满足线性可分的数据集分类效果较好,但是在线性不可分的数据集上却表现不佳。究其原因,是因为其所建立的缺陷预测模型对数据缺乏自适应性。缺陷数据集的特点是多种多样的,其类型有连续的或离散的、其分布有满足高斯分布或不满足的、其数据比例是平衡的或不平衡的等。目前对于不同类型的缺陷数据集,每种分类器算法所取得的分类效果是不同的。参考文献如下:[1]马樱.基于机器学习的软件缺陷预测技术研究[D].电子科技大学.2012.[2]ElishKO,ElishMO.Predictingdefect-pronesoftwaremodulesusingsupportvectormachines.JournalofSystemsandSoftware,2008,81(5):649-660.[3]GhotraB,McIntoshS,HassanAE.Revisitingtheimpactofclassificationtechniquesontheperformanceofdefectpredictionmodels.In:Proc.oftheInt’lConf.onSoftwareEngineering.2015.789-800.[4]傅艺绮,董威,尹良泽,等.基于组合机器学习算法的软件缺陷预测模型[C].全国软件与应用学术会议.2015.[5]廖胜平,徐玲,鄢萌.基于采样的半监督支持向量机软件缺陷预测方法[J].计算机工程与应用,2017,53(14):161-166.[6]常瑞花,沈晓卫.基于超欧氏距离近邻传播的软件缺陷预测方法[J].计算机应用研究,2017,34(05):1384-1387.[7]YangC,YangC.Softwaredefectpredictionbasedonmanifoldlearninginsubspaceselection[C].InternationalConferenceonIntelligentInformationProcessing.ACM,2016:17.
技术实现思路
为了满足不同类型数据集在缺陷预测时取得良好预测效果的需要,本专利技术提出一种基于软件网络的缺陷高风险模块识别方法,研究适用于软件网络模型度量参数特点的缺陷预测框架,通过建立机器学习模型预测效果的反馈机制,结合数据特点选用成熟的机器学习预测模型实现缺陷预测。本专利技术提供的一种本文档来自技高网
...

【技术保护点】
1.一种基于软件网络的缺陷高风险模块识别方法,包括:步骤一,构建自适应分类器,自适应分类器中包含多个分类器;步骤二,自适应特征选择方法,包括:(1)预处理,如果数据集中某项特征的80%以上的实例值都相同,则删掉该特征;(2)对带有惩罚因子的分类器采用递归特征消除算法进行特征的选择;(3)对不带惩罚因子的分类器采用单变量特征选择的卡方检验方法进行特征选择;步骤三,进行自适应阈值寻优;对每个分类器,基于训练集构建预测模型,将验证集输入预测模型得到预测值集合,不断遍历预测值集合中的预测值来更换分类器的阈值,每次根据预测标签集合和真实标签集合计算预测模型的性能指标AUC值,选出使AUC值最高的阈值作为分类器的最佳阈值;步骤四,进行自适应分类器内部参数调优;对于岭回归和套索回归分类器,采用随机搜索方法找到最佳步长,对于K最近邻分类模型采用网格搜索方法选出最佳样本数量k值;步骤五,进行自适应最优预测模型的选择;应用不同的分类器在训练集合上构建缺陷预测模型,计算各缺陷预测模型在多个验证集上的AUC值,取AUC均值最大的缺陷预测模型为最优预测模型,然后利用最优预测模型对待测软件网络进行缺陷高风险模块识别。...

【技术特征摘要】
1.一种基于软件网络的缺陷高风险模块识别方法,包括:步骤一,构建自适应分类器,自适应分类器中包含多个分类器;步骤二,自适应特征选择方法,包括:(1)预处理,如果数据集中某项特征的80%以上的实例值都相同,则删掉该特征;(2)对带有惩罚因子的分类器采用递归特征消除算法进行特征的选择;(3)对不带惩罚因子的分类器采用单变量特征选择的卡方检验方法进行特征选择;步骤三,进行自适应阈值寻优;对每个分类器,基于训练集构建预测模型,将验证集输入预测模型得到预测值集合,不断遍历预测值集合中的预测值来更换分类器的阈值,每次根据预测标签集合和真实标签集合计算预测模型的性能指标AUC值,选出使AUC值最高的阈值作为分类器的最佳阈值;步骤四,进行自适应分类器内部参数调优;对于岭回归和套索回归分类器,采用随机搜索方法找到最佳步长,对于K最近邻分类模型采用网格搜索方法选出最佳样本数量k值;步骤五,进行自适应最优预测模型的选择;应用不同的分类器在训练集合上构建缺陷预测模型,计算各缺陷预测模型在多个验证集上的AUC值,取AUC均值最大的缺陷预测模型为最优预测模型,然后利用最优预测模型对待测软件网络进行缺陷高风险模块识别。2.根据权利要求1所述的方法,其特征在于,所述的步骤一中,自适应分类器中包含16种不同的分类器:广义线性模型的线性回归、岭回归、套索回归、最小角回归、逻辑回归和随机梯度下降;向量机模型的支持向量机;最近邻模型的K最近邻;贝叶斯模型的高斯朴素贝叶斯;决策树模型的决策树;集合模型的随机森林、极端随机树、自适应增强算法和梯度提升决策树;判别分析模型的线性判别分析和二次判别分析。3.根据权利要求1所述的方法,其特征在于,所...

【专利技术属性】
技术研发人员:艾骏杨益文苏文翥王飞郭皓然邹卓良
申请(专利权)人:北京航空航天大学
类型:发明
国别省市:北京,11

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

1