当前位置: 首页 > 专利查询>重庆大学专利>正文

一种面向深度神经网络模糊测试的测试用例自动生成方法技术

技术编号:39515861 阅读:12 留言:0更新日期:2023-11-25 18:53
本发明专利技术公开了一种面向深度神经网络模糊测试的测试用例自动生成方法,包括如下步骤:基于被测试的

【技术实现步骤摘要】
一种面向深度神经网络模糊测试的测试用例自动生成方法


[0001]本专利技术涉及深度神经网络质量保证,尤其涉及一种面向深度神经网络模糊测试的测试用例自动生成方法


技术介绍

[0002]深度神经网络
(DNN)
在过去几十年中取得了显着的进步,现在广泛应用于各种应用,例如图像分类,计算机视觉,语音识别,自然语言处理,以及医学诊断

尽管它们的性能令人印象深刻,但人们对
DNN
的安全性和鲁棒性表示担忧,特别是在自动驾驶等安全关键型应用中
。DNN
的任何意外不当行为都可能导致灾难性后果,因此测试
DNN
并有效识别其缺陷至关重要

[0003]模糊测试作为一种成熟的自动测试技术,已被证明可以有效地检测传统软件系统中的错误和漏洞

模糊测试涉及为被测软件生成随机测试用例

在测试执行期间监视应用程序的行为

收集测试用例的执行信息以及根据特定的覆盖标准改变输入以触发故障

虽然传统的覆盖引导模糊
(CGF)
方法是有效的,但由于测试用例突变策略以及
DNN
和传统软件之间的反馈指导之间的固有差异,将此类技术直接应用于
DNN
会带来挑战

因此,在
DNN
测试背景下,设计有效的模糊策略变得至关重要,并提供反馈指导,即覆盖标准,在有效发现
DNN
>中的故障方面发挥着关键作用

为此,基于神经激活状态,针对
DNN
提出了几种神经覆盖标准

这些标准可以大致分为神经元标准

层标准和轨迹
/
路径标准

神经元标准通过单独考虑每个神经元来评估测试用例覆盖范围,而分层标准从层级别的角度评估覆盖范围

轨迹
/
路径标准根据神经元遍历的轨迹或路径来测量
DNN
覆盖范围

这些标准涵盖各种覆盖率计算,例如神经元覆盖率
(NC)、top

k
神经元覆盖率
(TKNC)
和神经元路径覆盖率
(NPC)。
在现有覆盖标准的指导下,已经开发了
DeepXplore、DeepTest

DeepHunter
等自动化测试技术来生成最大化上述神经覆盖的测试用例

然而,最近的研究强调了现有神经覆盖标准在指导
DNN
测试用例生成方面的局限性:

测试充分性,据观察,部分神经覆盖标准仅使用少量测试用例即可实现完全覆盖

在这种情况下,增加测试用例的数量并不能持续提高模型的质量;

测试可解释性,现有的覆盖标准缺乏可解释性

因此,测试人员无法识别测试用例触发了模型的哪些错误属性或模式

此外,这种可解释性的缺乏阻碍了后续的调试和修复过程,因为理解和解决模型中的潜在错误变得具有挑战性


技术实现思路

[0004]为了解决上述问题,本专利技术提出了一种新颖的面向深度神经网络模糊测试的测试用例自动生成方法,称为
NSGen
,用于
DNN
模糊测试

具体来说,
NSGen
首先从经过训练的
DNN
中提取所有神经元的语义,并将其翻译成自然语言描述

接下来,对于给定的原始图像及其变异对应图像,
NSGen
识别出显著影响
DNN
预测结果的神经元
。NSGen
构建了一条决策路径,它表示
DNN
对给定输入的内部决策,包括通过根据模板组装相应的自然语言描述来包含神经元语义

最后,
NSGen
根据自然语言描述的决策路径来测量原始图像和变异图像之间的相
似性
sim。
直观地说,在决策路径中显示出显著差异的变异图像在发现违规行为和暴露缺陷方面更有效

[0005]为解决上述技术问题,本专利技术采用如下技术方案:一种面向深度神经网络模糊测试的测试用例自动生成方法,包括如下步骤:包括一个神经元描述对生成的组件和一个测试用例生成的组件,其中神经元描述对生成组件对被测试
DNN
中的每个神经元生成对应的自然语言描述,测试用例生成组件则生成能充分对该
DNN
进行充分测试的测试用例

[0006]所述神经元描述对生成的组件包括如下步骤:
[0007]S101
:确定被测试的
DNN
每个神经元
f
i
对应的
top
k
个激活图
x
j
,突出显示每个激活图
x
j
对应的掩模
m
j

m
j
表示图像中最大激活的区域

[0008]S102
:集成
m
j
到池化函数
pooling
中,得到
pooling
c
(m
j
,g
l
(x
j
))
,其中
g
i
(x
j
)
表示掩模
m
j
对应的特征图,
c
表示通道数,其中
pooling
c
(m
j
,g
l
(x
j
))
表示经过池化函数处理过后的最活跃的区域

[0009]S103
:编码多种分辨率,合并注释向量
a
,注释向量是通过池化函数
pooling

DNN
的每个卷积层提取的特征得出

[0010]S104
:对神经元的自然语言描述进行解码和排序,计算使用自然语言描述
d
来描述注释向量
a
的的概率
p(d|a)
,以及使用自然语言描述
d
来描述神经元概率
p(d)
,根据
p(d|a)

p(d|a)
的值进行排序,选取
p(d|a)
最大值对应的神经元的自然语言描述

[0011]所述测试用例生成的组件包括如下步骤:
[0012]S105
:使用改进的积分梯度
Integrat本文档来自技高网...

【技术保护点】

【技术特征摘要】
1.
一种面向深度神经网络模糊测试的测试用例自动生成方法,其特征在于:包括如下步骤:包括一个神经元描述对生成的组件和一个测试用例生成的组件,其中神经元描述对生成组件对被测试
DNN
中的每个神经元生成对应的自然语言描述,测试用例生成组件则生成能充分对该
DNN
进行充分测试的测试用例;所述神经元描述对生成的组件包括如下步骤:
S101
:确定被测试的
DNN
每个神经元
f
i
对应的
top
k
个激活图
x
j
,突出显示每个激活图
x
j
对应的掩模
m
j

m
j
表示图像中最大激活的区域;
S102
:集成
m
j
到池化函数
pooling
中,得到
pooling
c
(m
j

g
l
(x
j
))
,其中
g
l
(x
j
)
表示掩模
m
j
对应的特征图,
c
表示通道数,其中
pooling
c
(m
j

g
l
(x
j
))
表示经过池化函数处理过后的最活跃的区域;
S103
:编码多种分辨率,合并注释向量
a
,注释向量是通过池化函数
pooling

DNN
的每个卷积层提取的特征得出;
S104
:对神经元的自然语言描述进行解码和排序,计算使用自然语言描述
d
来描述注释向量
a
的的概率
p(d|a)
,以及使用自然语言描述
d
来描述神经元概率
p(d)
,根据
p(d|a)

p(d|a)
的值进行排序,选取
p(d|a)
最大值对应的神经元的自然语言描述;所述测试用例生成的组件包括如下步骤:
S105
:使用改进的积分梯度
Integrated Gradients
计算神经元
DNN
输入的
x
ori

X
mut
的最终预测结果的影响分数和然后对计算的影响分数进行排序,选取影响分数最大值对应的神经元;其中
x
ori
表示原始图像,
X
mut
表示原始图像的变异图像;
S106
:根据
S105
所选神经元的分层索引和层内索引,在
S104
的对应神经元的自然语言描述中查找该神经元对应的自然语言描述
d
ori
(f
i
)

d
mut
(f
i
)
,由
DNN
的预测
top
k
伪标签及和自然语言描述
d
ori
(f
i
)

d
mut
(f
i
)
装配到固定模板得
t
ori

t
mut
,,
S107
:使用语言

图像预训练模型
CLIP
,将装配好的模板
t
ori

t
mut
分别表示为向量
e
ori

e
mut
,计算两者的相似程度
sim(e
ori

e
mut
)

S108
:设置阈值
τ

sim(e
ori

e
mut
)

τ
,则
x
mut
被保存,否则不保存,确定变异测试用例
x
mut
是否被保存,即能有效测试
DNN
的边界
。2.

【专利技术属性】
技术研发人员:鄢萌黄黎孙伟峰刘忠鑫刘超雷晏张小洪
申请(专利权)人:重庆大学
类型:发明
国别省市:

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

1