软件缺陷预测方法和系统的制作方法

文档序号:8922503阅读:417来源:国知局
软件缺陷预测方法和系统的制作方法
【技术领域】
[0001] 本发明涉及软件安全技术领域,特别是涉及一种软件缺陷预测方法和系统。
【背景技术】
[0002] 随着信息技术的发展,软件复杂程度不断提高、软件规模不断增大,良好的软件质 量控制和预测机制不但可以帮助企业开发出高质量的软件产品,减少产品生产和维护成 本,而且在提高客户满意度,建立良好的企业形象和增强企业在市场上的竞争力等方面都 有着重要的意义。因此软件质量越来越受重视,如何预测软件质量及提高软件质量成为当 今研宄的热点之一。
[0003] 传统的软件缺陷预测方法采用基于机器学习的软件缺陷预测模型,该模型以软件 模块的度量数据向量作为输入,通过预处理、特征提取、模型训练和预测等步骤,实现对软 件模块是否存在缺陷进行预测。该模型由于其性能的评价准则、归纳偏置等内在问题,对软 件有缺陷模块和软件无缺陷模块同等处理,以总体最大预测精度作为目标,但对软件缺陷 的检出率仍然不高。因此,传统的软件缺陷预测方法存在预测准确度低的缺点。

【发明内容】

[0004] 基于此,有必要针对上述问题,提供一种预测准确度高的软件缺陷预测方法和系 统。
[0005] -种软件缺陷预测方法,包括以下步骤:
[0006] 获取样本软件模块并进行聚类处理,得到聚类子集;
[0007] 计算所述聚类子集的高斯参数,并根据所述高斯参数生成伪缺陷样本;
[0008] 根据所述软件缺陷样本集和伪缺陷样本得到更新缺陷样本集;
[0009] 根据所述更新缺陷样本集进行训练得到缺陷预测模型;
[0010] 根据所述缺陷预测模型对待测软件模块进行缺陷预测,并输出预测结果。
[0011] 一种软件缺陷预测系统,包括:
[0012] 聚类模块,用于获取样本软件模块并进行聚类处理,得到聚类子集;
[0013] 计算模块,用于计算所述聚类子集的高斯参数,并根据所述高斯参数生成伪缺陷 样本;
[0014] 更新模块,用于根据所述软件缺陷样本集和伪缺陷样本得到更新缺陷样本集;
[0015] 训练模块,用于根据所述更新缺陷样本集进行训练得到缺陷预测模型;
[0016] 预测模块,用于根据所述缺陷预测模型对待测软件模块进行缺陷预测,并输出预 测结果。
[0017] 上述软件缺陷预测方法和系统,获取样本软件模块并进行聚类处理,得到聚类子 集。计算聚类子集的高斯参数,并根据高斯参数生成伪缺陷样本,根据软件缺陷样本集和伪 缺陷样本得到更新缺陷样本集。根据更新缺陷样本集进行训练得到缺陷预测模型,根据缺 陷预测模型对待测软件模块进行缺陷预测并输出预测结果。对样本软件模块采用聚类的方 式形成聚类子集,对聚类子集进行高斯分析计算得到高斯参数,然后根据高斯参数生成伪 缺陷样本。通过增加更多的缺陷数据生成更新缺陷样本集进行训练,提高缺陷预测模型的 准确度,使缺陷预测模型能够更好的对缺陷数据进行估计和拟合,提高了对软件缺陷的预 测准确性。
【附图说明】
[0018] 图1为一实施例中软件缺陷预测方法的流程图;
[0019] 图2为一实施例中获取样本软件模块并进行聚类处理,得到聚类子集的流程图;
[0020] 图3为一实施例中分别以各样本向量为起点,获取样本向量的中心点的流程图;
[0021] 图4为一实施例中计算聚类子集的高斯参数,并根据高斯参数生成伪缺陷样本的 流程图;
[0022] 图5为一实施例中根据所述缺陷预测模型对待测软件模块进行缺陷预测的流程 图;
[0023] 图6为另一实施例中软件缺陷预测方法的流程图;
[0024] 图7为一实施例中软件缺陷预测系统的结构图;
[0025] 图8为一实施例中聚类模块的结构图;
[0026] 图9为一实施例中中心点计算单元的结构图;
[0027] 图10为一实施例中计算模块的结构图;
[0028] 图11为一实施例中预测模块的结构图;
[0029] 图12为另一实施例中软件缺陷预测系统的结构图。
【具体实施方式】
[0030] 一种软件缺陷预测方法,如图1所示,包括以下步骤:
[0031] 步骤S110 :获取样本软件模块并进行聚类处理,得到聚类子集。样本软件模块指 已知是否存在缺陷的软件模块,通过聚类处理对样本软件模块进行分类,得到聚类子集。在 其中一个实施例中,如图2所示,步骤S110包括步骤S112至步骤S118。
[0032] 步骤S112:分别对样本软件模块进行标记处理,得到各样本软件模块的缺陷标 记。例如,对第i个样本软件模块,i= 1,2,...,M,若存在缺陷,则缺陷标记yf1 ;若不 存在缺陷,则缺陷标记yi = 0。可以理解,各样本软件模块的标记方式以及得到的缺陷标记 的取值并不唯一,在其他实施例中,也可以是令存在缺陷的样本软件模块的缺陷标记为〇, 令不存在缺陷的样本软件模块的缺陷标记为1等。
[0033] 步骤S114 :分别对样本软件模块进行静态度量,得到各样本软件模块的样本向 量。对第i个样本软件模块,i= 1,2, ...,M,分别对各样本软件模块进行静态度量。本实 施例中静态度量具体可包括Halstead度量、MaCabe度量、Khoshgoftaar度量和CK度量等, 得到共n个度量值,并将这些度量值分别标记为xn,xi2,. . .,xin,构成样本软件模块的样本 向量Xi={xn,xi2,. . .,xin},所有的样本向量构成软件缺陷样本集{XiIi=1,2,. . .,M}。
[0034] 步骤S116 :分别以各样本向量为起点,获取样本向量的中心点。分别将各样本向 量作为起点,计算对应样本向量的中心点,以用作进行聚类处理的依据。进一步地,本实施 例中采用MeanShift方法进行聚类,计算量小,可提高聚类分析速度。具体如图3所示,步 骤SI16包括步骤SI162至步骤SI166。
[0035] 步骤S1162:以样本向量为起点,计算样本向量的meanshift向量。具体为:
[0037] 其中,Mh表示样本向量x的meanshift向量,Sh(x)表示半径为常数h的高维球区 域内,满足关系(x-Xi)T(x-Xi)〈h2的K个样本向量的集合,Xi*Sh(X)中的样本向量,T表示 转置。
[0038] 步骤S1164:判断样本向量的meanshift向量是否大于预设阈值。若是,则将样 本向量与meanshift向量之和作为新的样本向量,并返回步骤S1162;若否,贝1」进行步骤 S1166。预设阈值e为预先设定且可根据实际情况调整,如果meanshift向量Mh大于e, 以Xi+Mh作为新的起点,再次计算新的meanshift向量Mh。
[0039] 步骤S1166:将样本向量与meanshift向量之和作为样本向量的中心点。如果Mh 小于或等于e,则确认Xi+Mh为中心点。
[0040] 针对每一个样本向量重复S1162至步骤S1166直至遍历所有样本向量,生成M个 中心点。
[0041] 步骤S118:根据样本向量的中心点对样本向量进行聚类,得到聚类子集。将趋于 同一中心点的样本向量划分为一类,形成L个聚类子集。
[0042] 步骤S120:计算聚类子集的高斯参数,并根据高斯参数生成伪缺陷样本。通过构 造混合高斯的软件缺陷分布函数,更好的刻画软件缺陷分布。然后利用缺陷分布与样本向 量之间的关系对高斯参数进行计算,为进一步的伪缺陷生成奠定基础。
[0043] 对每一个聚类子集进行高斯参数估计。假设第k个聚类子集为{xf},样本数量为 Mk。在其中一个实施例中,高斯参数包括均值和方差。如图4所示,步骤S120包括步骤S121 至步
当前第1页1 2 3 4 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1