【技术实现步骤摘要】
基于代价敏感宽度学习的软件缺陷预测方法及处理装置
[0001]本申请涉软件缺陷预测
,具体说是一种基于代价敏感宽度学习的软件缺陷预测方法及处理装置。
技术介绍
[0002]在软件开发过程中,出现缺陷是无法避免的,软件规模越大,缺陷的数量就越多。面对功能需求的不断增加,动辄上万行代码的大中型程序成为主流,如何自动化寻找这些大规模程序中多个缺陷的缺陷位置,成为人们追求的目标。针对多缺陷定位问题,有研究提出根据测试数据的执行结果将缺陷程序划分为不同部分,随后通过开发人员人工检查代码,手动确定缺陷位置,该方法不仅消耗大量时间,而且需要花费较多的人力。在此基础上,有研究人员提出分解多缺陷定位问题,然后通过单缺陷定位方法来解决问题,但是仍需要技术人员全程交互指导识别缺陷。
[0003]为了提升定位方法的自动化,提高多缺陷定位效率,有研究人员通过借助遗传规划,在无技术人员参与指导情况下,针对Unix工具集中的92个缺陷,自行推导出30个不同的语句怀疑度计算公式,通过理论分析后,发现其中4个具有很好的缺陷定位效果。在此研究的基础上,有研究提出使用遗传算法来进行缺陷程序中多缺陷位置的定位,该算法将多缺陷定位问题转化为遗传算法能够处理的搜索优化问题,不仅实现了方法的自动化,而且提升了缺陷定位速度,提高了缺陷定位精度,整体性能优于之前的多缺陷定位方法,但是仍然存在诸如参数设置繁琐,算法规则复杂等问题。
[0004]软件缺陷预测通过设计一个鲁棒的机器学习模型,可准确判断待预测软件模块中是否存在缺陷程序,进而为合理分配测 ...
【技术保护点】
【技术特征摘要】
1.基于代价敏感宽度学习的软件缺陷预测方法,其特征在于,包括:步骤S1,构建软件缺陷预测数据集,构建软件缺陷预测数据集的方式为:从现有的软件历史仓库中抽取历史软件模块,从所述历史软件模块中提取程序代码的静态属性,设计出与类似软件缺陷具有强相关性的软件缺陷度量元,实现对软件缺陷预测数据集的构建;步骤S2,采用代价敏感学习算法将软件缺陷预测数据集划分为有缺陷实例与无缺陷实例,获取第一数据集;步骤S3,引入脉冲神经网络,对所述第一数据集的软件缺陷特征进行归一化预处理,获取第二数据集;步骤S4,对所述第二数据集进行线性编码,把所述第二数据集转化为输入脉冲序列;步骤S5,将所述输入脉冲序列输入脉冲神经网络模型中,通过脉冲神经元运算模型计算,获取输出脉冲序列;步骤S6,对所述输出脉冲序列进行反向解码,获取软件缺陷特征的连续输出值,将所述软件缺陷特征的连续输出值作为第三数据;步骤S7,将所述第三数据输入代价敏感宽度学习软件缺陷预测模型中,对所述代价敏感宽度学习软件缺陷预测模型进行训练,获取训练完成的代价敏感宽度学习软件缺陷预测模型;步骤S8,将待预测数据集经过步骤S2
‑
S6处理后输入训练完成的代价敏感宽度学习软件缺陷预测模型,输出软件缺陷预测结果。2.根据权利要求1的基于代价敏感宽度学习的软件缺陷预测方法,其特征在于,所述步骤S2中的采用代价敏感学习算法将软件缺陷预测数据集划分为有缺陷实例与无缺陷实例,具体表现为:采用代价敏感学习算法对所述软件缺陷预测数据集中的有缺陷实例和无缺陷实例分配不一样的误分类代价,添加代价敏感矩阵,给予软件缺陷预测数据集中无缺陷实例与有缺陷实例不同的误分类惩罚力度,使用“0”和“1”分别指代无缺陷实例与有缺陷实例;假设C
ij
表示将第i类实例分类为第j类的分类代价,C
ij
值越大,表明该错误分类所带来的损失越大;错误分类的损失代价大于正确分类的损失代价,由于正确的分类是不会带来损失的,所以C00=C11=0,各个分类代价之间存在着如下的大小关系:C10>C01>C00=C11=0,其中,C00为实际无缺陷、预测无缺陷,C11为实际有缺陷、预测有缺陷,C10为实际有缺陷、预测无缺陷,C01为实际无缺陷、预测有缺陷。3.根据权利要求2的基于代价敏感宽度学习的软件缺陷预测方法,其特征在于,所述步骤S3中的对所述第一数据集进行归一化预处理,采用z
‑
score对所述第一数据集进行归一化预处理。4.根据权利要求1的基于代价敏感宽度学习的软件缺陷预测方法,其特征在于,所述步骤S5将所述输入脉冲序列输入脉冲神经网络模型中,通过脉冲神经元运算模型计算,获取输出脉冲序列,具体表现为:脉冲响应神经元模型当中的神经元输入是沿着突触向神经元进行传输的脉冲序列,所有的脉冲在到达神经元之后都会在其内部完成突触后电位的产生,这部分突触后电位在相应的突触权值影响下的总和就是膜电位值的重要组成部分;假设神经元有N个输入突触,第i个突触有G
i
个脉冲输入,这些脉冲输入到达神经元的时
间集合记为间集合记为表示突触i的第g个脉冲的发放时间,神经元在时间t的膜电位V(t)可以表示为:其中,w
i
是神经元第i个输入突触的权值,t
f
表示第f个脉冲的发放时间,不应期函数ρ表示膜电位的复位过程,脉冲响应函数ε表示脉冲对突触后神经元膜电位的响应,t表示任意一个假定时间。5.根据权利要求1的基于代价敏感宽度学习的软件缺陷预测方法,其特征在于,所述步骤S7中的将所述第三数据输入代价敏感宽度学习软件缺陷预测模型中,对所述代价敏感宽度学习软件缺陷预测模型进行训练,具体表现为:给定一个训练集{X,Y},以及M
i
个特征节点;特征映射层中第i个特征节点Z
i
可以表示为:Z
i
=φ
i
...
【专利技术属性】
技术研发人员:曹鹤玲,王兆龙,贾俊亮,廖天力,楚永贺,李磊,赵晨阳,刘广恩,王峰,王盼盼,张硕,李庆宇,王兴亚,
申请(专利权)人:河南金明源信息技术有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。