软件缺陷预测方法、装置、电子设备及计算机存储介质.pdf
《软件缺陷预测方法、装置、电子设备及计算机存储介质.pdf》由会员分享,可在线阅读,更多相关《软件缺陷预测方法、装置、电子设备及计算机存储介质.pdf(9页完成版)》请在专利查询网上搜索。
1、(19)中华人民共和国国家知识产权局 (12)发明专利申请 (10)申请公布号 (43)申请公布日 (21)申请号 202010222414.4 (22)申请日 2020.03.26 (71)申请人 中南大学 地址 410083 湖南省长沙市岳麓区麓山南 路932号 (72)发明人 张叶迪李祖德 (74)专利代理机构 广州嘉权专利商标事务所有 限公司 44205 代理人 肖云 (51)Int.Cl. G06F 11/36(2006.01) G06K 9/62(2006.01) (54)发明名称 一种软件缺陷预测方法、 装置、 电子设备及 计算机存储介质 (57)摘要 本发明提供了一种软件缺陷预。
2、测方法、 装 置、 电子设备及计算机存储介质, 该方法先获得 原始缺陷数据集, 再获得类分布平衡的缺陷数据 集, 最后构建软件缺陷预测模型, 能够获得比单 一学习器更好的泛化性能。 权利要求书1页 说明书5页 附图2页 CN 111522736 A 2020.08.11 CN 111522736 A 1.一种软件缺陷预测方法, 其特征在于, 包括以下步骤: S1: 获得原始缺陷数据集; S2: 获得类分布平衡的缺陷数据集, 所述类分布平衡的缺陷数据集, 通过过采样所述原 始缺陷数据集中的少数类样本后得到; S3: 构建软件缺陷预测模型。 2.根据权利要求1所述的一种软件缺陷预测方法, 其特征在。
3、于, 步骤S1中, 所述原始缺 陷数据集选自经过预处理的软件缺陷数据集。 3.根据权利要求2所述的一种软件缺陷预测方法, 其特征在于, 所述预处理包括以下步 骤: (1)采用平均值填充方法对原始数据集中的缺失值进行处理, 得到无缺失值的缺陷数 据集; (2)使用最大最小标准化方法对步骤(1)得到的无缺失值的缺陷数据集进行归一化处 理, 使特征值处于同一数量级。 4.根据权利要求1所述的一种软件缺陷预测方法, 其特征在于, 步骤S2中, 过采样的方 法为少数类过采样方法。 5.根据权利要求1所述的一种软件缺陷预测方法, 其特征在于, 步骤S3中, 软件缺陷预 测模型的构建方法为集成学习方法。 6。
4、.根据权利要求5所述的一种软件缺陷预测方法, 其特征在于, 所述集成学习方法包括 Bagging方法。 7.一种软件缺陷预测装置, 其特征在于, 所述装置包括用于执行如权利要求16任一 项所述的软件缺陷预测方法的单元。 8.一种电子设备, 其特征在于, 包括存储器和处理器, 所述存储器用于存储计算机程 序, 所述计算机程序包括程序指令, 所述处理器被配置用于调用所述程序指令, 执行如权利 要求16任一项所述的软件缺陷预测方法。 9.一种计算机存储介质, 其特征在于, 所述计算机存储介质存储有计算机程序, 所述计 算机程序包括程序指令, 所述程序指令当被处理器执行时使所述处理器执行如权利要求1 。
5、6任一项所述的软件缺陷预测方法。 权利要求书 1/1 页 2 CN 111522736 A 2 一种软件缺陷预测方法、 装置、 电子设备及计算机存储介质 技术领域 0001 本发明属于软件缺陷预测技术领域, 具体涉及一种软件缺陷预测方法、 装置、 电子 设备及计算机存储介质。 背景技术 0002 在软件项目的开发和维护过程中, 软件缺陷的发生是无法避免的, 而软件缺陷会 致使软件质量下降, 导致软件出现失效现象, 无法正常运行, 甚至威胁人们的财产和生命。 影响软件质量的因素有很多, 其中的首要因素正是软件缺陷。 软件测试可以发现软件中存 在的缺陷, 是软件开发过程中保证软件质量最重要的方法之。
6、一。 而软件缺陷预测技术可以 有效地对对软件测试进行补充, 帮助测试人员提前识别出软件中潜在的缺陷模块, 从而对 有限的资源进行合理分配, 优先将资源用于对高风险的模块进行测试, 在发现更多缺陷的 同时节约大量的测试成本, 从而提高软件质量。 0003 具体来说, 软件缺陷预测是根据软件的历史信息, 收集整理与软件缺陷有关的数 据, 构建出可以用于训练模型的缺陷数据集, 然后基于特定的方法构建软件缺陷预测模型, 最后使用该模型进行软件缺陷预测, 预测目标可以是软件模块内是否含有缺陷、 含有的缺 陷数或缺陷密度等。 目前, 软件缺陷预测模型的建立主要是基于机器学习或深度学习的方 法, 这些方法具。
7、有较好的可扩展性和通用性, 在预测准确率方面也有不错的表现, 但大部分 模型在实际使用中仍然存在很多问题, 其中类不平衡问题是最常见的问题。 经研究发现, 软 件中百分之八十的缺陷存在于百分之二十的软件模块中, 即软件中通常只有少量模块包含 缺陷, 无缺陷样本(少多数类)数远多于有缺陷样本(少数类)数, 导致缺陷数据集中的多数 类样本和少数类样本分布不平衡, 这会干扰软件缺陷预测模型的训练, 对少数类样本学习 不足, 导致预测结果偏向于多数类, 无法建立起有效的软件缺陷预测模型。 0004 目前对类不平衡问题已有不少研究, 针对类不平衡问题的解决方法主要分为算法 级别和数据级别。 算法级别的方。
8、法是设计出适用于类不平衡数据的缺陷预测算法以提高对 少数类样本的检出率, 主要包括代价敏感学习、 集成学习等。 代价敏感学习方法通过增加对 少数类误分类的代价, 使得分类器在训练时可以加强对少数类的学习, 这种方法虽然可以 提高少有类的识别率, 但无法准确地对不同类别的错误代价进行估计, 这会影响代价敏感 的结果。 集成学习方法是通过构建多个个体学习器, 然后合并这些学习器来完成学习任务, 这种方法的泛化性能比单一学习器更好。 数据级别的方法包括欠采样、 过采样或混合采样 方法, 通过增加少数类样本、 减少多数类样本或在增加少数类样本的同时减少多数类样本 以改变原有的数据分布, 使缺陷数据集达。
9、到类平衡。 采样方法的思想简单并且容易实现, 但 是会导致产生噪声数据、 过拟合、 丢失信息过多等问题。 0005 综上, 目前尚无有效办法解决类不平衡问题。 发明内容 0006 本发明旨在至少解决现有技术中存在的技术问题之一。 为此, 本发明提出一种软 说明书 1/5 页 3 CN 111522736 A 3 件缺陷预测方法、 装置、 电子设备及计算机存储介质。 0007 根据本发明第一方面实施例的软件缺陷预测方法, 所述软件缺陷预测方法包括以 下步骤: 0008 S1: 获得原始缺陷数据集; 0009 S2: 获得类分布平衡的缺陷数据集, 所述类分布平衡的缺陷数据集, 通过过采样所 述原始。
10、缺陷数据集中的少数类样本后得到; 0010 S3: 构建软件缺陷预测模型。 0011 根据本发明实施方式的软件缺陷预测方法, 至少具有如下技术效果: 0012 本发明融合过采样和集成学习的思想构建软件缺陷预测模型, 对软件模块中是否 包含缺陷进行预测, 在解决类不平衡问题的同时提升了软件缺陷预测精度。 根据本发明构 建的软件缺陷预测模型是属于一个二分类模型, 用于对软件模块是否包含缺陷进行预测。 在模型训练过程中, 首先采用平均值填充的方法对缺陷数据集中的缺失值进行处理, 然后 采用最大最小标准化方法对缺陷数据集进行归一化处理, 最后得到原始缺陷数据集。 接着 采用少数类过采样方法(SMOTE。
11、)对原始缺陷数据集中的少数类进行过采样, 生成新的少数 类样本并放入原始缺陷数据集中, 得到类分布平衡的缺陷数据集。 在处理类不平衡问题上 SMOTE相比于一般的过采样方法可以避免过拟合问题, 并且扩展少数类的决策边界进一步 向多数类方向移动。 最后使用Bagging方法通过构建多个个体分类器, 并训练得到权重模 型, 根据每个个体分类器的效果为每个个体分类器分配权重, 从而获得软件缺陷预测模型, 该模型比使用单一学习器构建起来的模型有更好的泛化性能。 0013 根据本发明的一些实施方式, 步骤S1中, 所述原始缺陷数据集选自经过预处理的 软件缺陷数据集。 0014 根据本发明的一些实施方式,。
12、 所述预处理包括以下步骤: 0015 (1)采用平均值填充方法对原始数据集中的缺失值进行处理, 得到无缺失值的缺 陷数据集; 0016 (2)使用最大最小标准化方法对步骤(1)得到的无缺失值的缺陷数据集进行归一 化处理, 使特征值处于同一数量级。 0017 根据本发明的一些实施方式, 步骤S2中, 过采样的方法为少数类过采样方法。 0018 根据本发明的一些实施方式, 步骤S3中, 软件缺陷预测模型的构建方法为集成学 习方法。 0019 根据本发明的一些实施方式, 所述集成学习方法包括Bagging方法。 0020 根据本发明第二方面实施例的一种软件缺陷预测装置, 所述装置包括用于执行上 述软。
13、件缺陷预测方法的单元。 0021 根据本发明第三方面实施例的一种电子设备, 包括存储器和处理器, 所述存储器 用于存储计算机程序, 所述计算机程序包括程序指令, 所述处理器被配置用于调用所述程 序指令, 执行上述软件缺陷预测方法。 0022 根据本发明第四方面实施例的一种计算机存储介质, 所述计算机存储介质存储有 计算机程序, 所述计算机程序包括程序指令, 所述程序指令当被处理器执行时使所述处理 器执行上述软件缺陷预测方法。 说明书 2/5 页 4 CN 111522736 A 4 附图说明 0023 图1是软件缺陷预测方法流程图。 0024 图2是软件缺陷预测装置的结构示意图。 0025 图。
14、3是软件缺陷预测电子设备的结构示意图。 具体实施方式 0026 以下是本发明的具体实施例, 并结合实施例对本发明的技术方案作进一步的描 述, 但本发明并不限于这些实施例。 0027 实施例1 0028 本例提供了一种软件缺陷预测方法, 该软件缺陷预测方法包括以下步骤: 0029 S1: 获得原始缺陷数据集; 0030 S2: 获得类分布平衡的缺陷数据集, 类分布平衡的缺陷数据集, 通过过采样原始缺 陷数据集中的少数类样本后得到; 0031 S3: 构建软件缺陷预测模型。 0032 详细流程如图1所示。 0033 步骤S1中, 原始缺陷数据集选自经过预处理的软件缺陷数据集。 0034 预处理包括。
15、以下步骤: 0035 (1)采用平均值填充方法对原始数据集中的缺失值进行处理, 得到无缺失值的缺 陷数据集; 0036 (2)使用最大最小标准化方法对步骤(1)得到的无缺失值的缺陷数据集进行归一 化处理, 使特征值处于同一数量级。 即通过对缺陷数据集中样本的特征值进行线性变换, 将 其变换到0, 1范围内, 使得缺陷数据集中样本的各特征处于同一数量级, 得到原始缺陷数 据集。 0037 线性变换公式为以下公式: 0038 0039 其中x是特征值, min(x)和max(x)分别是样本特征的最小值和最大值。 0040 步骤S1的实现具体包括以下步骤: 0041 步骤1.1: 对软件历史仓库进行。
16、挖掘分析并从中抽取出m个软件模块, 其中软件模 块的粒度可根据实际场景设定为函数、 类、 包或文件。 然后根据这些软件模块中是否包含缺 陷, 将其标记为有缺陷模块或无缺陷模块。 0042 步骤1.2: 对软件开发过程以及软件代码进行分析, 使用软件缺陷相关的度量元对 步骤1.1种抽取得到的软件模块进行度量, 度量元有18个: 代码行数(LOC), 方法内聚缺乏度 (LCOM), 类响应集合(RFC), 类耦合度(CBO), 继承树深度(DIT), 类的加权方法论数(WMC), 子 孙类数(NDC), 局部方法数(NLM), 类方法复杂度(CMC), 抽象数据类型耦合(CTA), 消息传递 耦合。
17、(CTM), 方法间耦合(CBM), 属性隐藏因子(AHF), 方法隐藏因子(MHF), 属性继承因子 (AIF), 方法继承因子(MIF), 耦合因子(CF), McCabe环路复杂度(CC)。 0043 步骤1.3: 在经过步骤1.1和步骤1.2后, 形成该软件的缺陷数据集XX1,Xi, Xm, 其中m为抽取的软件模块, 缺陷数据集中的每个样本Xi包含19个特征, 由18个度量元和 说明书 3/5 页 5 CN 111522736 A 5 模块的缺陷标记组成, 缺陷标记有 “N “和 “Y” 两种取值, N代表不是缺陷模块, Y代表是缺陷模 块。 0044 步骤1.4: 对步骤1.3得到的。
18、缺陷数据集X进行缺失值处理操作, 具体是采用平均值 填充方法完成, 得到无缺失值的缺陷数据集Xw。 0045 步骤1.5: 对步骤1.4得到的缺陷数据集Xw进行归一化操作, 具体是使用最大最小 标准化方法完成, 得到原始缺陷数据集Xold。 0046 步骤S2中, 过采样的方法为少数类过采样方法。 0047 步骤S2的实现具体包括以下步骤: 0048 步骤2.1: 对原始缺陷数据集Xold中的少数类样本Xi, 通过计算欧式距离找到k个近 邻少数类样本xold。 0049 步骤2.2: 根据原始缺陷数据集Xold中的多数类样本和少数类样本的比例, 设定少 数类样本需要扩大的倍率n, 使得缺陷数据。
19、集中少数类和多数类样本数相等。 在k个近邻中 随机选取n个样本进行线性插值生成新的少数类样本xnew。 0050 步骤2.3: 对原始缺陷数据集Xold中的所有少数类样本重复步骤2.1和2.2的操作, 将得到的少数类样本加入到原始缺陷数据集Xold中形成新的缺陷数据集Xnew。 0051 步骤S3中, 软件缺陷预测模型的构建方法为集成学习方法。 集成学习方法包括 Bagging方法。 0052 模型训练过程为: 0053 利用SMOTE对数据预处理后得到的原始缺陷数据集进行类不平衡问题的处理。 对 原始缺陷数据集中的每个少数类样本x, 通过计算欧式距离找到k个与之距离最近的少数类 样本xold。
20、, 即得到该样本的k个近邻; 根据少数类样本需要扩大的倍率n, 在k个近邻中随机选 取n个样本; 在该少数类样本和选取的其n个近邻之间进行线性插值生成新的少数类样本 xnew。 0054 线性插值公式为以下公式: 0055 xnewx+rand(0,1)(xold-x), 0056 其中rand(0,1)为0到1之间的随机数。 0057 再将得到的少数类样本加入原始缺陷数据集中, 得到扩充的缺陷数据集, 在该缺 陷数据集上使用集成学习方法Bagging构建软件缺陷预测模型。 每轮从缺陷数据集中使用 有放回的抽样方法抽取n个训练样本, 共进行k轮抽取, 得到相互独立的k个训练集; 每次使 用SV。
21、M在一个训练集上训练得到一个模型, k个训练集共得到k个模型; 最后将得到的k个模 型采用平均的方式得到分类结果。 0058 即步骤S3的实现具体包括以下步骤: 0059 利用集成学习方法Bagging构建软件缺陷预测模型。 在步骤2得到的缺陷数据集 Xnew上进行k轮抽取, 每轮从Xnew中使用有放回的抽样方法抽取p个训练样本, 得到相互独立 的k个训练集; 每次使用SVM在一个训练集上训练得到一个模型, k个训练集共得到k个模型; 最后将k个模型的输出结果作为训练集, 输入logistic回归模型训练得到权重模型, 最终预 测结果为每个SVM模型的输入再经过权重模型的计算得到。 0060 。
22、利用训练出的软件缺陷预测模型, 对待预测的软件模块是否包含缺陷进行预测。 0061 预测过程包括以下步骤: 说明书 4/5 页 6 CN 111522736 A 6 0062 对待预测的软件模块使用步骤1.1中的度量元进行度量得到一个18维特征向量; 0063 将前步得到的特征向量输入到缺陷预测模型中, 得到该软件模块的缺陷标记的值 “N” 或 “Y” , 从而预测该软件模块是否包含缺陷。 0064 实施例2 0065 本例提供了一种软件缺陷预测装置20, 如图2所示, 装置包括用于执行实施例1方 法的单元, 该装置可以包括: 0066 接收单元201, 用于获得原始缺陷数据集。 0067 处。
23、理单元202, 用于获得类分布平衡的缺陷数据集; 0068 该处理单元202还用于构建软件缺陷预测模型。 0069 实施例3 0070 本例提供了一种电子设备30, 如图3所示, 该电子设备可以包括接收器301、 存储器 302和处理器303, 接收器301、 存储器302和处理器303通过一条或多条通信总线连接。 0071 接收器301可以用于接收数据, 例如, 接收器301可以用于接收原始缺陷数据。 0072 存储器302可以包括只读存储器和随机存取存储器, 并向处理器303提供指令和数 据。 存储器302的一部分还可以包括非易失性随机存取存储器。 0073 处理器303可以是中央处理单元。
24、, 该处理器303还可以是其它通用处理器、 数字信 号处理器、 专用集成电路、 现成可编程门阵列或其它可编辑逻辑器件、 分立门或晶体管逻辑 器件、 分立硬件组件等。 通用处理器可以是微处理器, 可选的, 该处理器303也可以是任何常 规的处理器等。 其中, 存储器302, 用于存储程序指令。 处理器303, 用于调用存储器302中存 储的程序指令, 以用于执行实施例1的方法, 即: 0074 S1: 获得原始缺陷数据集; 0075 S2: 获得类分布平衡的缺陷数据集, 所述类分布平衡的缺陷数据集, 通过过采样所 述原始缺陷数据集中的少数类样本后得到; 0076 S3: 构建软件缺陷预测模型。 。
25、0077 实施例4 0078 本例提供了一种计算机存储介质, 计算机存储介质存储有计算机程序, 计算机程 序包括程序指令, 程序指令当被处理器执行时使处理器执行实施例1的方法。 0079 本发明针对如何在解决缺陷数据集中的类不平衡问题的同时提高软件缺陷预测 精度的问题。 因为在大多数软件中, 无缺陷程序模块的数量远多于有缺陷程序模块的数量, 所以缺陷数据集中普遍存在一定程度的类不平衡问题, 少数类和多数类分布不平衡会使分 类器对多数类的学习过于充分, 而在少数类上学习不足, 因此分类器的结果会偏向于多数 类, 而不能有效的对少数类进行预测, 导致缺陷预测模型对少数类的预测精度降低, 最终造 成。
26、模型性能下降。 0080 本技术方案结合过采样和集成学习方法, 先对缺陷数据集进行数据预处理, 主要 包括缺失值处理和归一化处理, 然后得到原始缺陷数据集, 针对该缺陷数据集中的少数类 使用SMOTE方法生成新的少数类样本, 扩充缺陷数据集, 得到类分布平衡的缺陷数据集, 最 后使用Bagging方法构建并合并多个学习器, 建立起软件缺陷预测模型, 在解决类不平衡问 题的同时提高了软件缺陷预测精度。 说明书 5/5 页 7 CN 111522736 A 7 图1 说明书附图 1/2 页 8 CN 111522736 A 8 图2 图3 说明书附图 2/2 页 9 CN 111522736 A 9 。
- 内容关键字: 软件 缺陷 预测 方法 装置 电子设备 计算机 存储 介质
农业育苗盘.pdf
污水厂处理用空气介入的药剂搅拌装置.pdf
选粉机.pdf
氧气管收纳装置.pdf
中频感应电炉冷炉装置.pdf
玩具变形车.pdf
复合纤维的快速烘干装置.pdf
可折叠伸缩式电井盖板提升转运装置.pdf
过滤元件旋转焊接装置的接电模块.pdf
漂染废水处理和中水回用设备.pdf
具有旋转装饰部件的玩具泡泡棒.pdf
LED光源模组.pdf
用于标液精确取样装置.pdf
用于制备二氧化碳吸附储存材料的装置.pdf
节能保温断桥铝合金型材.pdf
多节联动节距机构.pdf
气体防倾倒运输装置.pdf
条装食品的整理机.pdf
石墨型钛合金底注式浇注排气系统.pdf
大挠度伸缩闸阀.pdf
薄膜吹塑用冷却装置.pdf
红外图像超分辨重建系统及方法.pdf
数码云相框智能照片优化处理系统.pdf
玄武岩纤维管材检测装置及方法.pdf
桥梁梁板加固焊接设备.pdf
宽范围任意频点的时频参数综合测方法.pdf
高分子颗粒筛选系统.pdf
纳米硅复合隔热材料及其制备方法.pdf
气浮轴承刚度测试装置.pdf
金属软管与燃气灶的连接结构.pdf
基于点云深度学习的机械零部件装配特征测量方法.pdf
基于车身颜色的车辆事故预测方法、设备和存储介质.pdf
非金属油罐的防雷系统.pdf
自动双向稳压喷气多功能器.pdf
高效节能传热器.pdf
净手剂及其制备方法.pdf
从水中清除痕量污染.pdf
成像复印薄膜.pdf
用于连续铸铝机的滚筒的制造方法.pdf
容器内密封件.pdf
贮片箱.pdf
3取代乙烯基头孢菌素衍生物及其制备方法.pdf
制备吡咯并嘧啶及其中间体的方法.pdf
使用靛蓝衍生物的绳状染色法.pdf
新型丙烯酰胺、其制备方法、含有该成分的药物制剂及其在医药中的应用.pdf
复合水写纸.pdf
无机介质热导元件.pdf
软接触透镜.pdf
烟草烟气过滤器.pdf
用磁力驱动阀防止熔融金属溢出的反重力铸造设备和方法.pdf
纱线卷线机断线感测自动断电控制器.pdf