模型状态差分的深度神经网络测试用例生成方法技术

技术编号:34998378 阅读:15 留言:0更新日期:2022-09-21 14:47
本发明专利技术涉及一种模型状态差分的深度神经网络测试用例生成方法,属于计算机与信息科学技术领域。本发明专利技术首先利用特征热力图表征现有测试用例所触发的模型状态;然后对模型状态聚类分析,选取能够触发新神经元状态的用例作为生成新测试用例的模板;之后利用特征热力图差分结果确定用例特征的高覆盖率变换方向,以此为指导对差分结果进行像素级或区域级变换,构建新测试用例;最后利用新用例进行缺陷检测并计算其覆盖率,保留有助于覆盖率提升的用例用于后续迭代。本发明专利技术针对现有方法缺乏高覆盖率变换方向指导,运行效率和生成的测试用例质量低的问题提供了一种解决方案,生成的测试用例能够有效提升测试全面性,触发模型潜在缺陷。触发模型潜在缺陷。触发模型潜在缺陷。

【技术实现步骤摘要】
模型状态差分的深度神经网络测试用例生成方法


[0001]本专利技术涉及模型状态差分的深度神经网络测试用例生成方法,属于计算机与信息科学


技术介绍

[0002]深度神经网络已被广泛应用于自动驾驶、恶意软件检测、人脸识别等安全攸关的领域,神经网络模型存在的质量问题将会导致严重后果。因此,在部署前需要对深度神经网络模型进行全面测试以保证系统的稳定安全运行。
[0003]与传统软件系统开发人员手动编写代码实现其内部决策逻辑不同,深度神经网络系统遵循数据驱动的编程范式,其测试的完备性依赖于测试用例的数量、质量以及全面程度。当前主流的深度神经网络测试用例生成方法主要分为基于梯度优化的测试用例生成和基于模糊测试的测试用例生成。
[0004]1.基于梯度优化的测试用例生成
[0005]基于梯度优化的测试用例生成的主要思路是将测试用例生成任务建模成联合优化任务,以提高覆盖率和发现模型缺陷为目标,通过选择目标神经元,以梯度下降的方式对现有测试用例施加扰动从而生成新的测试用例。此类方法效果依赖于目标神经元的选择,而目标神经元的选择和试错过程将消耗大量时间并生成无价值的测试用例,运行效率过低。
[0006]2.基于模糊测试的测试用例生成
[0007]基于模糊测试的测试用例生成方法通过一定的变异策略,对选定的现有测试用例施加多种变化,在一次迭代中变异生成多个用例,挑选并保存其中有助于提高测试覆盖率的用例。此类方法在变异过程中缺少指导,难以确定有效的变异方向,生成的测试用例普遍质量较低,难以触发模型缺陷。
[0008]综上所述,现有深度神经网络测试用例生成方法在运行效率和生成测试用例质量方面有明显不足,所以本专利技术提出模型状态差分的深度神经网络测试用例生成方法。

技术实现思路

[0009]本专利技术的目的是克服深度神经网络测试用例生成方法中运行效率和测试用例质量低的问题,提升测试全面性,发现更多模型潜在缺陷。
[0010]本专利技术的设计原理为:首先生成特征热力图,构建用例特征与模型状态之间的联系;其次对现有用例的特征热力图进行聚类分析,选取其中能够触发新神经元状态的用例作为生成新测试用例的模板;然后利用特征热力图差分结果确定用例特征的高覆盖率变换方向,并对用例模板进行像素级和区域级变换生成新测试用例;最后利用生成的测试用例进行缺陷检测与覆盖率计算,保存触发模型缺陷输出的测试用例,并将有助于覆盖率提升的用例更新至用例集合,进行新一轮迭代。
[0011]本专利技术的技术方案是通过如下步骤实现的:
[0012]步骤1,提取模型状态,更新用例属性特征。
[0013]步骤1.1,提取用例集合中每一个用例所触发的神经元输出值,按照神经元所在层次计算并生成各层神经元的用例特征热力图。
[0014]步骤1.2,将步骤1.1中生成的用例特征热力图作为用例属性添加并保存至用例集合中。
[0015]步骤2,从用例集合中选取用例作为生成新测试用例的模板。
[0016]步骤2.1,对各用例的特征热力图进行聚类分析,计算用例之间的距离与密度信息。
[0017]步骤2.2,根据聚类分析结果更新各用例被选取的概率,依据概率选取用例作为生成新测试用例的模板。
[0018]步骤3,计算模型状态差分结果,对步骤2中选择的模板用例进行变换,生成新测试用例。
[0019]步骤3.1,将选出的模板用例所触发的模型状态与其父用例所触发的模型状态进行差分,确定高覆盖率变换方向。
[0020]步骤3.2,在步骤3.1中确定的高覆盖率变换方向上对模板用例分别进行像素级或区域级变换,生成新的测试用例。
[0021]步骤4,利用新生成的测试用例用例进行缺陷检测并计算其覆盖率,保留有助于覆盖率提升的用例用于后续迭代
[0022]步骤4.1,对新生成的测试用例进行缺陷检测,保留能够触发模型潜在缺陷的新测试用例。
[0023]步骤4.2,对新生成的测试用例进行覆盖率计算,保留能够提升测试覆盖率的新测试用例。
[0024]有益效果
[0025]相比于基于梯度优化的测试用例生成方法,本专利技术免去了生成有效测试用例前的选择和试错过程,减少了测试用例生成过程中的时间消耗。
[0026]相比于现有基于模糊测试的测试用例生成方法,本专利技术利用不同覆盖率用例间的热力图差分结果,指导用例向有助于发现模型缺陷和提高测试覆盖率的方向变化,提高了每一轮迭代生成的测试用例质量。
附图说明
[0027]图1为模型状态差分的深度神经网络测试用例生成方法原理图。
具体实施方式
[0028]为了更好的说明本专利技术的目的和优点,下面结合实例对本专利技术方法的实施方式做进一步详细说明。
[0029]步骤1,提取模型状态,更新用例属性特征。
[0030]步骤1.1,提取用例集合中每一个用例所触发的神经元输出值,按照神经元所在层次计算并生成各层神经元的用例特征热力图。对于给定测试用例,假定f
k
(x,y)表示神经元k在空间位置(x,y)的输出值,则对于分类结果,输出层的输入S见公式(1)。
[0031][0032]其中ω
k
表示神经元k对于分类结果的权重。由于偏移值对于分类结果的影响很小,本方法中将其设置为0。
[0033]定义H
l
为根据模型的第l层输出生成的用例特征热力图,其中每个像素点对应的数值见公式(2)。
[0034][0035]从热力图中可以获得当前模型状态与输入用例特征之间的关联关系,其中正数部分代表模型更加关注对应位置的信息,而接近于0的部分则说明模型对于这部分信息不太关注。
[0036]步骤1.2,将步骤1.1中生成的用例特征热力图作为用例属性添加并保存至用例集合中。越靠近输出层的隐藏层所提取的用例特征就越具体,对指导变异用例特征分布的帮助更大,因此将模型的最后一层与倒数第二层隐藏层生成的热力图H
l
和H
l
‑1作为用例的属性与用例一同保存至用例集合中。
[0037]步骤2,从用例集合中选取用例作为生成新测试用例的模板。
[0038]步骤2.1,对各用例的特征热力图进行聚类分析,计算用例之间的距离与密度信息。用例x
i
的局部密度ρ
i
定义为:与特征热力图H
l
(x
i
)之间距离小于截断距离d
c
的特征热力图的个数,其计算公式见公式(3)。
[0039][0040]式中,d
ij
为H
l
(x
i
)和H
l
(x
j
)之间的欧式距离;d
c
为截断距离;χ(
·
)为逻辑判断函数,若(
·
)<0,则χ(
·
)=1,反之,χ(
·本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种模型状态差分的深度神经网络测试用例生成方法,其特征在于所述方法包括如下步骤:步骤1,提取用例集合中每一个用例所触发的模型状态,将模型状态作为用例属性添加并保存至用例集合中;步骤2,对模型状态进行聚类分析,选取其中能够触发新神经元状态的用例作为生成新测试用例的模板;步骤3,通过计算模型状态差分结果确定高覆盖率变换方向,对步骤2中选择的模板用例进行变换,生成新测试用例;步骤4,利用新生成的测试用例进行缺陷检测与覆盖率计算,保留能够触发模型潜在缺陷或提升测试覆盖率的测试用例用于后续迭代。2.根据权利要求1所述的模型状态差分的深度神经网络测试用例生成方法,其特征在于:步骤1中使用各层神经元的用例特征热力图代表模型状态,其计算方法如下:假定f
k
(x,y)表示神经元k在空间位置(x,y)的输出值,ω
k
表示神经元k对于分类结果的权重,定义H
l
=∑
k∈l
ω
k
f
k
(x,y)为根据模型的第l层输出生成的用例特征热力图。3.根据权利要求1所述的模型状态差分的深度神经网络测试用例生成方法,其特征在于:步骤2中使用用例之间的局部密度与特征距离作为聚类分析依据,局部密度ρ
i
=∑
j≠i
χ(d
ij

d
c
),式中d
ij
为H
l
(x
i
)和H
l
(x
j
)之间的欧式距离,d
c
为截断距离,χ(
·
)为逻辑判断函数,若(
·
)<0,则χ(
·
)=1,反之,χ(
·

【专利技术属性】
技术研发人员:罗森林沈宇辉潘丽敏郝靖伟王逸洲
申请(专利权)人:北京理工大学
类型:发明
国别省市:

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

1