一种基于线性规划的工作量感知即时软件缺陷预测方法技术

技术编号:34901683 阅读:24 留言:0更新日期:2022-09-10 14:08
本发明专利技术提供了一种基于线性规划的工作量感知即时软件缺陷预测方法,涉及软件缺陷预测技术领域,包括如下步骤:1、构造即时软件缺陷数据集;2、类不平衡数据处理;3、对即时软件缺陷数据进行预处理;4、构建LPDP模型;5、预测新提交的软件代码变更,得到其预测标签。本发明专利技术从线性规划的角度出发,设计了一种无参的工作量感知即时软件缺陷预测方法,避免了耗时耗力的参数调优过程。该方法具有较高的缺陷识别效果,有助于更好地保障软件产品的质量与可靠性。性。性。

【技术实现步骤摘要】
一种基于线性规划的工作量感知即时软件缺陷预测方法


[0001]本专利技术涉及软件缺陷预测
,尤其涉及一种基于线性规划的工作量感知即时软件缺陷预测方法。

技术介绍

[0002]随着信息化时代的到来,计算机软件行业得到了蓬勃的发展,人们对软件的需求日益增加,软件技术正影响着我们身边的每一个人。然而在软件开发过程中,会出现一些难以避免的问题,比如软件新技术的系统兼容性问题,项目成员之间的沟通问题等,也就不可避免的会引入软件缺陷,尽可能早的发现这些缺陷并将其修复,对软件后期的开发及维护具有极其重要的作用,检测软件缺陷的过程称为软件缺陷预测。
[0003]传统的软件缺陷预测技术主要是针对软件代码或软件开发过程的粗粒度度量,例如方法级别、类级别、文件级别或者包级别的缺陷预测,但是这种粗粒度的度量在预测出某一个模块有缺陷倾向性后,要在方法、类、文件或包中定位缺陷存在的位置并修复,开发者需回忆开发时的细节,此时定位并修复缺陷的过程需要花费较多的时间和精力,传统的软件缺陷预测在实际应用中的成本是相对比较高的。由此,研究者提出了即时软件缺陷预测,其是在软件开发过程中,对开发者在一段时间内提交的代码变更是否引入缺陷进行预测,开发者对刚提交的代码还很清楚,定位缺陷的具体位置,及时修复缺陷是比较容易的。即时软件缺陷预测的度量是代码变更级别的,与传统的软件缺陷预测相比,它是细粒度的,即时的,易追溯的。因此,它可以用比较少的开发成本去预测出较多的缺陷。
[0004]现有基于分类器的即时软件缺陷预测方法大都是有参模型,通常使用默认的参数设置,其缺陷预测效果往往不够理想,比如朴素贝叶斯(Naive Bayes,NB),决策树(Decision tree,DT),随机森林(Random forest,RF)等。若对这些分类器算法进行参数调优,其优化过程通常耗时耗力,在实践中会阻碍以上方法的应用,缺陷识别效果差。

技术实现思路

[0005]针对现有方法存在的上述问题,本专利技术从线性规划的角度出发,对缺陷数据进行深度挖掘,来识别代码提交实体是否会引入缺陷,并提出一种基于线性规划的工作量感知即时软件缺陷预测方法(LPDP),其是一种无参、简单有效的方法。
[0006]为了实现上述目的,本专利技术提供如下技术方案:一种基于线性规划的工作量感知即时软件缺陷预测方法,包括如下步骤:
[0007]抽取软件度量元和标注软件实体来构造即时软件缺陷数据集;
[0008]对即时软件缺陷数据集进行类不平衡数据处理;
[0009]对处理后的即时软件缺陷数据集中软件实体的度量元进行数据归一化处理,消除软件实体不同度量元之间量纲的影响;
[0010]在数据归一化处理得到的即时软件缺陷预测数据集上构建LPDP模型;
[0011]通过LPDP模型预测新提交的软件代码变更,得到其预测标签。
[0012]优选的,在所述类不平衡数据处理的过程中采用数据抽样算法进行数据类不平衡处理,通过随机增加缺陷类软件实体或减少非缺陷类软件实体的数目改变原始数据的分布,实现两类数据在数量上的平衡。
[0013]优选的,所述数据抽样算法采用随机上采样算法。
[0014]优选的,所述数据归一化处理方法为:
[0015]所述归一化处理方法为z

score方法,计算方法如下:
[0016][0017]其中x
i
是软件实体x第i个度量的原始值,是x
i
归一化后的值,μ
x
是软件实体x的平均值,σ
x
是软件实体x的标准差。
[0018]优选的,通过定义概率标注矩阵、构造鉴别距离矩阵与构造目标函数来构建所述LPDP模型。
[0019]优选的,所述概率标注矩阵定义的定义包括:
[0020]用C={c1,c2}表示训练集的类,即缺陷类和非缺陷类;用μ={μ1,μ2}表示训练集的类中心;用Ω
S
={x1,x2,...,x
m
}表示训练集中的软件实体;用p={0,1}来表示训练集中软件实体的实际标签,用Ω
T
={x1,x2,...,x
n
}表示测试集中的软件实体,用表示测试集中软件实体的预测标签,m与n分别表示训练集与测试集中软件实体的数目,用d表示软件实体的度量元数目;
[0021]用M表示概率标注矩阵,则M
ij
表示测试集的软件实体x
n
属于类C的概率;
[0022]其中类中心μ
i
的计算公式如下:
[0023][0024]其中p(x
j
)表示训练集中软件实体x
j
的实际标签。
[0025]优选的,用D表示鉴别距离矩阵,D
ij
表示测试集中的软件实体x
j
到类中心μ
i
的欧式距离,所述D
ij
计算方法如下:
[0026]D
ij
=||μ
i

x
j
||2。
ꢀꢀꢀꢀꢀꢀꢀꢀ
(3)
[0027]优选的,所述LPDP的目标函数构造方法如下:
[0028]学习概率标注矩阵M,以鉴别距离矩阵D和概率标准矩阵M的积最小作为LPDP模型的目标函数,公式为:
[0029][0030]其中,目标函数的约束条件为:
[0031]M
ij
表示的是软件实体x
j
属于类c
i
的概率值,表示为:
[0032]0≤M
ij
≤1
ꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(5)
[0033]测试集中的软件实体x
j
属于各个类c
i
的概率和为1,表示为:
[0034][0035]因为训练集中的软件实体和测试集中的软件实体拥有相同的标签空间,所以每一个类c
i
都至少包含一个测试集中的软件实体x
j
,该约束表示为:
[0036][0037]则LPDP模型的目标函数为:
[0038][0039][0040]优选的,通过LPDP模型获得所述预测概率或标签的方法如下:
[0041]概率标注M中测试集的软件实体t
j
属于某一个类c
i
的概率最大时,则判定该软件实体属于此类,表示为:
[0042][0043]其中,表示测试集中的软件实体x
j
的预测标签。
[0044]本专利技术与现有技术相比具有以下有益效果:
[0045]1、本专利技术从线性规划的角度出发,设计了一种无参的工作量感知即时软件缺陷预测方法,避免了设置相关参数及耗时耗力的参数调优过程,同时本专利技术通过对即时软件缺陷数据集进行类不平衡数据处理和归一化处理,消除了软件实体不同度量元之间本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种基于线性规划的工作量感知即时软件缺陷预测方法,其特征在于,包括如下步骤:抽取软件度量元和标注软件实体来构造即时软件缺陷数据集;对即时软件缺陷数据集进行类不平衡数据处理;对处理后的即时软件缺陷数据集中软件实体的度量元进行数据归一化处理,消除软件实体不同度量元之间量纲的影响;在数据归一化处理得到的即时软件缺陷预测数据集上构建LPDP模型;通过LPDP模型预测新提交的软件代码变更,得到其预测标签。2.如权利要求1所述的一种基于线性规划的工作量感知即时软件缺陷预测方法,其特征在于,在所述类不平衡数据处理的过程中采用数据抽样算法进行数据类不平衡处理,通过随机增加缺陷类软件实体或减少非缺陷类软件实体的数目改变原始数据的分布,实现两类数据在数量上的平衡。3.如权利要求2所述的一种基于线性规划的工作量感知即时软件缺陷预测方法,其特征在于,所述数据抽样算法采用随机上采样算法。4.如权利要求1所述的一种基于线性规划的工作量感知即时软件缺陷预测方法,其特征在于,所述数据归一化处理方法为z

score方法,计算方法如下:其中x
i
是软件实体x第i个度量的原始值,是x
i
归一化后的值,μ
x
是软件实体x的平均值,σ
x
是软件实体x的标准差。5.如权利要求1所述的一种基于线性规划的工作量感知即时软件缺陷预测方法,其特征在于,通过定义概率标注矩阵、构造鉴别距离矩阵与构造目标函数来构建所述LPDP模型。6.如权利要求5所述的一种基于线性规划的工作量感知即时软件缺陷预测方法,其特征在于,所述概率标注矩阵的定义包括:用C={c1,c2}表示训练集的类,即缺陷类和非缺陷类;用μ={μ1,μ2}表示训练集的类中心;用Ω
S
={x1,x2,...,x
m
}表示训练集中的软件实体;用p={0,1}来表示训练集中软件实体的实际标签,用Ω
T
={x1,x2,...,x
n
}表示测试集中的软件实体,用表示测试集中软件实体的预测标签,m与n分别表示训练集与测试集中软件实体的数目,用d表示软件实体的度量元数目;用M表示概率标注矩阵,则M
ij

【专利技术属性】
技术研发人员:李志强杜倩男谢娟英任杰
申请(专利权)人:陕西师范大学
类型:发明
国别省市:

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

1