(19)中华 人民共和国 国家知识产权局
(12)发明 专利申请
(10)申请公布号
(43)申请公布日
(21)申请 号 202111348578.2
(22)申请日 2021.11.15
(71)申请人 河南工业大 学
地址 450001 河南省郑州市高新 技术产业
开发区莲花街100号河南工业大学科
技处
(72)发明人 曹鹤玲 宋昌隆 何正浩 邓淼磊
李磊 楚永贺 廖天力 张硕
(51)Int.Cl.
G06F 11/36(2006.01)
G06K 9/62(2022.01)
G06N 20/00(2019.01)
(54)发明名称
基于流形正则化宽度学习的软件缺陷定位
方法及处 理装置
(57)摘要
本发明提供一种基于流形正则化宽度学习
的软件缺陷定位方法及处理装置, 属于软件测试
技术领域, 该方法的流程及阶段: 首先, 通过插桩
执行待测程序和测试用例, 同时进行静态分析得
到程序谱和测试用例执行结果; 其次, 对于软件
缺陷定位,流形正则化宽度学习引入局部离散度
概念, 运用局部保持投影的思想构建局部散度;
然后, 将局部类散度引入到宽度学习模型中, 提
升流形正则化宽度学习在软件缺陷定位中的分
类效果; 最后, 对程序语句依照其在失败的模拟
测试用例覆盖向量中出现的次数由多至少进行
排序作为其可疑度排名列表, 指导缺陷定位。 本
发明通过流形正则化宽度学习可以使数据在新
的特征空间中保持原有的几何结构, 拥有结构简
单、 高效等特点。
权利要求书1页 说明书5页 附图5页
CN 114003509 A
2022.02.01
CN 114003509 A
1.一种基于流形正则化宽度学习的软件缺陷定位方法, 其特 征在于, 包括如下步骤:
1) 通过测试用例驱动待测程序运行和静态插桩方式, 获取程序 行为特征和测试用例执
行结果;
2) 利用得到的程序 行为特征和测试用例执行结果作为网格搜索 法的输入, 结合网格搜
索法进行参数寻优;
3) 根据网格搜索法参数寻优得到的最佳参数, 作为训练流形正则化宽度 学习的输入参
数, 训练流形正则化宽度学习, 运用局部保持投影 (Locality preserving projections,
LPP) 的思想构建局部 散度, 体现数据的局部流形 结构;
4) 将局部散度引入流形正则化宽度学习中, 而后以大量模拟的测试用例覆盖向量作为
输入, 使用训练好的流形正则化宽度学习分类 器预测其 运行结果;
5) 模拟的测试用例覆盖向量是否可以通过, 若通过 (Y) 为无效, 若失败 (N) 则保留;
6) 预测为失败的模拟测试用例覆盖向量进行群体投票, 被失败的模拟测试用例覆盖数
量更多的语句可疑度更高, 从而得到语句可疑度排名列表, 进 而指导缺陷定位工作。
2.根据权利要求1所述的基于流形正则化宽度学习的软件缺陷定位方法其特征在于,
对步骤1) 通过静态分析对待测程序构建控制流图,同时进行程序插桩工作,编译执行插桩
后的程序并运行测试用例集, 得到程序的程序行为特征和测试用例执行结果, 将得到的动
态切片结果应用于缺陷定位, 并利用测试用例将动态切片信息 分为成功执行动态切片信息
和失败执 行动态切片信息 。
3.根据权利要求1所述的基于流形正则化宽度 学习的软件缺陷定位方法, 其特征在于,
步骤2) 中的参数寻优采用网格搜索法, 具体如下: 让参数C和 γ在一定的范围内取值, 分别
按照一定的步长从指定的最小值取到最大值, 每一次取值的C和γ作为训练参数。
4.根据权利要求1所述的基于流形正则化宽度 学习的软件缺陷定位方法, 其特征在于,
步骤3) 中根据网格搜索法参数寻优得到的最佳的参数C和γ作为训练宽度学习的输入参
数, 输出model即为根据输入 数据和参数训练好的流形正则化宽度学习模型, 根据改模 型即
可进行新的数据的分类预测。
5.根据权利要求1所述的基于流形正则化宽度 学习的软件缺陷定位方法, 其特征在于,
步骤4) 中将局 部类散度引入到流形正则化宽度学习 (BLS) 模型中, 该方法可以较好的保持
数据样本局部差异信息体现输入空间局部流形结构信息,通过最小化局部离散度,优化宽
度学习输出权值的投影方向, 进而提升流形正则化宽度学习在程序缺陷定位中的分类效
果, 解决测试用例集中失败的测试用例数量过少的问题, 因此可以大量模拟的测试用例覆
盖向量作为输入, 使用训练好的流形正则化宽度学习预测其 运行结果。
6.根据权利要求1或3所述的基于流形正则化宽度 学习的软件缺陷定位方法, 其特征在
于, 步骤5) 这一步骤中, 如果通过了预测的执行测试用例 则为无效的结果, 如果 失败的测试
用例保留下来。
7.一种软件缺陷定位装置, 其特征在于, 该装置包括处理器和存储器, 所述处理器执行
由所述存 储器存储的计算机程序, 以实现如权利要求1 ‑6任一项所述的软件缺陷定位方法。权 利 要 求 书 1/1 页
2
CN 114003509 A
2基于流形正则化宽度学习的软件缺陷定位方 法及处理装置
技术领域
[0001]本发明涉及软件测试技术领域, 特别是一种基于流形正则化宽度学习的软件缺陷
定位方法及处 理装置。
背景技术
[0002]随着计算机技术的迅速发展, 计算机软件已经广泛应用到了社会的各个方面, 同
时伴随着计算机使用率的快速增长, 导致其质量保障的难度越来越大, 维护的任务也越来
越艰巨, 计算机软件的质量以及维护问题已成为社会广泛关注的焦点之一。
[0003]软件缺陷定位技术, 是在执行测试用例集后发现有部分测试用例 执行失败时, 确
定缺陷所在具体位置的一种分析方法。 机器学习技术具有自适应性和鲁棒性, 可以在有限
的人机交互的情况下基于数据生成模型。 在缺陷定位的背景下, 当前 的问题可以确定为试
图根据输入数据 (如语句覆盖率和执行结果) 学习或推断故障位置每个测试用例的 (成功或
失败) 。 有研究者提出了一种基于 反向传播神经网络 (BPNN) 的故障定位技术, 这是实践中最
流行的神经网络模型之一。 反向传播神经网络结构简单, 便于计算机程序实现。 此外, 反向
传播神经网络具有逼近复杂非线性函数的能力。 收集每个测试用例的覆盖率数据和相应的
执行结果, 并将它们一起用于训练反向传播神经网络, 以便网络能够学习它们之 间的关系。
然后, 将一组虚拟测试用例的覆盖范围 (每个虚拟测试用例只覆盖程序中的一条语句) 输入
到经过训练的反向传播神经网络, 并且输出 可以被视为每 个语句包含错误的可能性。
[0004]由于反向传 播神经网络存在瘫痪和局部极小等问题, 有研究者提出了另一种基于
RBF (径向基函数) 神经网络的方法, 该方法不易受到这些问题的影响, 且学习速度更快。 径
向基函数神经网络采用类似于反向传播神经网络的方法进行训练。 一旦培训完成, 关于每
个虚拟测试用例覆盖范围的输出被认为是相应语句的可疑性。 当数据规模庞大时, 深度学
习模型会遇到权重调整耗时, 容易陷入局部最优解的问题, 实际中数据的个数和特征 的维
度都具有庞大 的规模, 深度神经网络常依靠增加网络层数来提升网络性能, 在反向传播过
程中采用逐层求梯度的方式更新权重, 这将导致模型容易遇到陷入局部最优、 梯度消失或
梯度爆炸、 建模速度慢等问题。
[0005]支持向量机 (SVM) 是AT&TBell实验室的Vapnik等人提出的一种全新机器学习算
法。 支持向量机的主要思想是针对两类分类 问题, 把训练数据集非线性映射到一个高维特
征空间, 随后在特征 空间寻找 一个最优分隔超平 面。 在线性可分的情况下, 存在一个或多个
超平面使得训练样本完全分开, 支持向量机的目标是找到其中的最优超平面, 最优超平面
是使得每一类数据与超平面距离最近的向量与超平面之 间的距离最大的平面。 支持向量机
能够对有限样本进行分类, 将其与缺陷定位结合提出一种缺陷定位方法有一定的研究意
义。 由于SVM是借助二次规划来求解支持向量,而求解二次规划将涉及m阶矩阵的计算 (m为
样本的个数),当 m数目很大时该矩阵的存 储和计算将耗费大量的机器内存和运 算时间。说 明 书 1/5 页
3
CN 114003509 A
3
专利 基于流形正则化宽度学习的软件缺陷定位方法及处理装置
文档预览
中文文档
12 页
50 下载
1000 浏览
0 评论
309 收藏
3.0分
温馨提示:本文档共12页,可预览 3 页,如浏览全部内容或当前文档出现乱码,可开通会员下载原始文档
本文档由 人生无常 于 2024-03-18 19:02:10上传分享