CN115080383A - 模型状态差分的深度神经网络测试用例生成方法 - Google Patents
模型状态差分的深度神经网络测试用例生成方法 Download PDFInfo
- Publication number
- CN115080383A CN115080383A CN202210534831.1A CN202210534831A CN115080383A CN 115080383 A CN115080383 A CN 115080383A CN 202210534831 A CN202210534831 A CN 202210534831A CN 115080383 A CN115080383 A CN 115080383A
- Authority
- CN
- China
- Prior art keywords
- case
- test case
- model state
- use case
- coverage rate
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3668—Software testing
- G06F11/3672—Test management
- G06F11/3684—Test management for test design, e.g. generating new test cases
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3668—Software testing
- G06F11/3672—Test management
- G06F11/3676—Test management for coverage analysis
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Health & Medical Sciences (AREA)
- Computing Systems (AREA)
- Computational Linguistics (AREA)
- Data Mining & Analysis (AREA)
- Evolutionary Computation (AREA)
- Biomedical Technology (AREA)
- Molecular Biology (AREA)
- Biophysics (AREA)
- Artificial Intelligence (AREA)
- Life Sciences & Earth Sciences (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Health & Medical Sciences (AREA)
- Computer Hardware Design (AREA)
- Quality & Reliability (AREA)
- Tests Of Electronic Circuits (AREA)
Abstract
本发明涉及一种模型状态差分的深度神经网络测试用例生成方法,属于计算机与信息科学技术领域。本发明首先利用特征热力图表征现有测试用例所触发的模型状态;然后对模型状态聚类分析,选取能够触发新神经元状态的用例作为生成新测试用例的模板;之后利用特征热力图差分结果确定用例特征的高覆盖率变换方向,以此为指导对差分结果进行像素级或区域级变换,构建新测试用例;最后利用新用例进行缺陷检测并计算其覆盖率,保留有助于覆盖率提升的用例用于后续迭代。本发明针对现有方法缺乏高覆盖率变换方向指导,运行效率和生成的测试用例质量低的问题提供了一种解决方案,生成的测试用例能够有效提升测试全面性,触发模型潜在缺陷。
Description
技术领域
本发明涉及模型状态差分的深度神经网络测试用例生成方法,属于计算机与信息科学技术领域。
背景技术
深度神经网络已被广泛应用于自动驾驶、恶意软件检测、人脸识别等安全攸关的领域,神经网络模型存在的质量问题将会导致严重后果。因此,在部署前需要对深度神经网络模型进行全面测试以保证系统的稳定安全运行。
与传统软件系统开发人员手动编写代码实现其内部决策逻辑不同,深度神经网络系统遵循数据驱动的编程范式,其测试的完备性依赖于测试用例的数量、质量以及全面程度。当前主流的深度神经网络测试用例生成方法主要分为基于梯度优化的测试用例生成和基于模糊测试的测试用例生成。
1.基于梯度优化的测试用例生成
基于梯度优化的测试用例生成的主要思路是将测试用例生成任务建模成联合优化任务,以提高覆盖率和发现模型缺陷为目标,通过选择目标神经元,以梯度下降的方式对现有测试用例施加扰动从而生成新的测试用例。此类方法效果依赖于目标神经元的选择,而目标神经元的选择和试错过程将消耗大量时间并生成无价值的测试用例,运行效率过低。
2.基于模糊测试的测试用例生成
基于模糊测试的测试用例生成方法通过一定的变异策略,对选定的现有测试用例施加多种变化,在一次迭代中变异生成多个用例,挑选并保存其中有助于提高测试覆盖率的用例。此类方法在变异过程中缺少指导,难以确定有效的变异方向,生成的测试用例普遍质量较低,难以触发模型缺陷。
综上所述,现有深度神经网络测试用例生成方法在运行效率和生成测试用例质量方面有明显不足,所以本发明提出模型状态差分的深度神经网络测试用例生成方法。
发明内容
本发明的目的是克服深度神经网络测试用例生成方法中运行效率和测试用例质量低的问题,提升测试全面性,发现更多模型潜在缺陷。
本发明的设计原理为:首先生成特征热力图,构建用例特征与模型状态之间的联系;其次对现有用例的特征热力图进行聚类分析,选取其中能够触发新神经元状态的用例作为生成新测试用例的模板;然后利用特征热力图差分结果确定用例特征的高覆盖率变换方向,并对用例模板进行像素级和区域级变换生成新测试用例;最后利用生成的测试用例进行缺陷检测与覆盖率计算,保存触发模型缺陷输出的测试用例,并将有助于覆盖率提升的用例更新至用例集合,进行新一轮迭代。
本发明的技术方案是通过如下步骤实现的:
步骤1,提取模型状态,更新用例属性特征。
步骤1.1,提取用例集合中每一个用例所触发的神经元输出值,按照神经元所在层次计算并生成各层神经元的用例特征热力图。
步骤1.2,将步骤1.1中生成的用例特征热力图作为用例属性添加并保存至用例集合中。
步骤2,从用例集合中选取用例作为生成新测试用例的模板。
步骤2.1,对各用例的特征热力图进行聚类分析,计算用例之间的距离与密度信息。
步骤2.2,根据聚类分析结果更新各用例被选取的概率,依据概率选取用例作为生成新测试用例的模板。
步骤3,计算模型状态差分结果,对步骤2中选择的模板用例进行变换,生成新测试用例。
步骤3.1,将选出的模板用例所触发的模型状态与其父用例所触发的模型状态进行差分,确定高覆盖率变换方向。
步骤3.2,在步骤3.1中确定的高覆盖率变换方向上对模板用例分别进行像素级或区域级变换,生成新的测试用例。
步骤4,利用新生成的测试用例用例进行缺陷检测并计算其覆盖率,保留有助于覆盖率提升的用例用于后续迭代
步骤4.1,对新生成的测试用例进行缺陷检测,保留能够触发模型潜在缺陷的新测试用例。
步骤4.2,对新生成的测试用例进行覆盖率计算,保留能够提升测试覆盖率的新测试用例。
有益效果
相比于基于梯度优化的测试用例生成方法,本发明免去了生成有效测试用例前的选择和试错过程,减少了测试用例生成过程中的时间消耗。
相比于现有基于模糊测试的测试用例生成方法,本发明利用不同覆盖率用例间的热力图差分结果,指导用例向有助于发现模型缺陷和提高测试覆盖率的方向变化,提高了每一轮迭代生成的测试用例质量。
附图说明
图1为模型状态差分的深度神经网络测试用例生成方法原理图。
具体实施方式
为了更好的说明本发明的目的和优点,下面结合实例对本发明方法的实施方式做进一步详细说明。
步骤1,提取模型状态,更新用例属性特征。
步骤1.1,提取用例集合中每一个用例所触发的神经元输出值,按照神经元所在层次计算并生成各层神经元的用例特征热力图。对于给定测试用例,假定fk(x,y)表示神经元k在空间位置(x,y)的输出值,则对于分类结果,输出层的输入S见公式(1)。
其中ωk表示神经元k对于分类结果的权重。由于偏移值对于分类结果的影响很小,本方法中将其设置为0。
定义Hl为根据模型的第l层输出生成的用例特征热力图,其中每个像素点对应的数值见公式(2)。
从热力图中可以获得当前模型状态与输入用例特征之间的关联关系,其中正数部分代表模型更加关注对应位置的信息,而接近于0的部分则说明模型对于这部分信息不太关注。
步骤1.2,将步骤1.1中生成的用例特征热力图作为用例属性添加并保存至用例集合中。越靠近输出层的隐藏层所提取的用例特征就越具体,对指导变异用例特征分布的帮助更大,因此将模型的最后一层与倒数第二层隐藏层生成的热力图Hl和Hl-1作为用例的属性与用例一同保存至用例集合中。
步骤2,从用例集合中选取用例作为生成新测试用例的模板。
步骤2.1,对各用例的特征热力图进行聚类分析,计算用例之间的距离与密度信息。用例xi的局部密度ρi定义为:与特征热力图Hl(xi)之间距离小于截断距离dc的特征热力图的个数,其计算公式见公式(3)。
式中,dij为Hl(xi)和Hl(xj)之间的欧式距离;dc为截断距离;χ(·)为逻辑判断函数,若(·)<0,则χ(·)=1,反之,χ(·)=0。
样本的特征距离δi定义为每个用例到局部密度大于它的用例的最短距离,其计算公式见公式(4)。
当用例xi为局部密度最大的点时,δi的计算公式见公式(5)。
步骤2.2,根据聚类分析结果更新各用例被选取的概率,依据概率选取用例作为生成新测试用例的模板,用例被选取的概率计算公式见公式(6)。
其中,Rankρ(xi)和Rankd(xi)分别为用例xi的局部密度和特征距离在当前用例集合中的排序;|Q|为用例总数;t(xi)代表用例被选择的次数;ε表示用例被选择概率随被选择次数的衰减率。α、β、γ为权重因子,取值区间都为(0,1),且满足α+β+γ=1。由概率公式可知,局部密度ρi低、特征距离δi大,被选择次数少的用例更容易被选中作为模板。
步骤3,基于模型状态差分结果对步骤2中选择的模板用例进行变换,生成新测试用例。
步骤3.1,将选出的模板用例所触发的模型状态与其父用例所触发的模型状态进行差分,确定高覆盖率变换方向。假定选定的模板用例为xi,其父用例(即用于生成xi的模板用例)为xj。在本轮迭代中,分别对Hl(xi)和Hl(xj)、Hl-1(xi)和Hl-1(xj)进行差分,得到能够表示当覆盖率提升时模型状态发生的变化与用例特征之间关系的差分结果DHl、DHl-1,使用该差分结果确定用例特征高覆盖率变换方向。
DHl=Hl(xi)-Hl(xj) (7)
DHl-1=Hl-1(xi)-Hl-1(xj) (8)
步骤3.2,在步骤3.1中确定的高覆盖率变换方向上对模板用例分别进行像素级或区域级变换,生成新的测试用例。像素级变换包括对比度变换、亮度变换、模糊变换、噪声点,旨在通过像素点微小变化,探索高覆盖率变换方向上的变换路线。区域级变换包括平移、缩放、剪切、旋转,通过改变差分结果的高热力分布区域,探索其他可能提高覆盖率的变换方向。测试用例生成过程中,对差分结果依次执行上述变换,假设其中一次变换后的结果为D′,则新测试用例x′i可表示为:
x′i=xi+λD′ (9)
其中λ为增强参数,在有限范围内随机取值,用于控制变换强弱程度。
步骤4,利用新生成的测试用例进行缺陷检测与覆盖率计算,保留有价值的测试用例用于后续迭代。
步骤4.1,对新生成的测试用例进行缺陷检测,保留能够触发模型潜在缺陷的新测试用例。将新生成的测试用例输入深度神经网络模型,对比模型针对测试用例的数据结果与测试用例标签判断是否产生错误输出。保存并记录触发模型错误分类的测试用例以及相应的分类结果。
步骤4.2,对新生成的测试用例进行覆盖率计算,保留能够提升测试覆盖率的新测试用例,提取其模型状态信息并更新至用例集合中,以便在后续测试迭代中生成新的测试用例。
测试结果:实验中分别使用梯度优化方法、模糊测试方法以及本发明方法,针对使用CIFAR-10图像识别数据集训练的同一个ResNet-20模型生成测试用例并评判测试用例质量,进行5000次迭代后的实验结果见表1。本发明通过用例特征热力图建立用例特征和模型状态之间的关系,利用不同覆盖率用例间的热力图差分结果确定提高覆盖率的变异方向,分别从像素级和区域级变异生成测试用例,有效提高了深度神经网络测试用例生成的运行效率以及用例质量。
·表1测试实验结果
以上所述的具体描述,对发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施例而已,并不用于限定本发明的保护范围,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (5)
1.一种模型状态差分的深度神经网络测试用例生成方法,其特征在于所述方法包括如下步骤:
步骤1,提取用例集合中每一个用例所触发的模型状态,将模型状态作为用例属性添加并保存至用例集合中;
步骤2,对模型状态进行聚类分析,选取其中能够触发新神经元状态的用例作为生成新测试用例的模板;
步骤3,通过计算模型状态差分结果确定高覆盖率变换方向,对步骤2中选择的模板用例进行变换,生成新测试用例;
步骤4,利用新生成的测试用例进行缺陷检测与覆盖率计算,保留能够触发模型潜在缺陷或提升测试覆盖率的测试用例用于后续迭代。
2.根据权利要求1所述的模型状态差分的深度神经网络测试用例生成方法,其特征在于:步骤1中使用各层神经元的用例特征热力图代表模型状态,其计算方法如下:假定fk(x,y)表示神经元k在空间位置(x,y)的输出值,ωk表示神经元k对于分类结果的权重,定义Hl=∑k∈lωkfk(x,y)为根据模型的第l层输出生成的用例特征热力图。
3.根据权利要求1所述的模型状态差分的深度神经网络测试用例生成方法,其特征在于:步骤2中使用用例之间的局部密度与特征距离作为聚类分析依据,局部密度ρi=∑j≠iχ(dij-dc),式中dij为Hl(xi)和Hl(xj)之间的欧式距离,dc为截断距离,χ(·)为逻辑判断函数,若(·)<0,则χ(·)=1,反之,χ(·)=0;特征距离δi定义为每个用例到局部密度大于它的用例的最短距离,当用例xi为局部密度最大的点时,δi定义为该用例到其他用例的最大距离。
4.根据权利要求1所述的模型状态差分的深度神经网络测试用例生成方法,其特征在于:步骤2中用例被选取的概率公式为:P(xi)=α*(1-Rankρ(xi)/|Q|)+β*(Rankd(xi)/|Q|)+γ*(1-t(xi)/ε),其中,Rankρ(xi)和Rankd(xi)分别为用例xi的局部密度和特征距离在当前用例集合中的排序;|Q|为用例总数;t(xi)代表用例被选择的次数;ε表示用例被选择概率随被选择次数的衰减率;α、β、γ为权重因子,取值区间都为(0,1),且满足α+β+γ=1。
5.根据权利要求1所述的模型状态差分的深度神经网络测试用例生成方法,其特征在于:步骤3中将模板用例所触发的模型状态与其父用例所触发的模型状态进行差分,确定高覆盖率变换方向D;测试用例生成过程中对D进行像素级或区域级变换,假设其中一次变换后的结果为D′,则模板用例xi生成的新测试用例x′i可表示为x′i=xi+λD′,其中λ为增强参数,在有限范围内随机取值,用于控制变换强弱程度。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210534831.1A CN115080383A (zh) | 2022-05-17 | 2022-05-17 | 模型状态差分的深度神经网络测试用例生成方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210534831.1A CN115080383A (zh) | 2022-05-17 | 2022-05-17 | 模型状态差分的深度神经网络测试用例生成方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115080383A true CN115080383A (zh) | 2022-09-20 |
Family
ID=83248104
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210534831.1A Pending CN115080383A (zh) | 2022-05-17 | 2022-05-17 | 模型状态差分的深度神经网络测试用例生成方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115080383A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115964275A (zh) * | 2022-12-13 | 2023-04-14 | 北京水木羽林科技有限公司 | 一种分布式模糊测试加速方法及系统 |
CN116756051A (zh) * | 2023-08-18 | 2023-09-15 | 北京航天计量测试技术研究所 | 一种基于要素分解的神经网络测试充分性评估方法 |
-
2022
- 2022-05-17 CN CN202210534831.1A patent/CN115080383A/zh active Pending
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115964275A (zh) * | 2022-12-13 | 2023-04-14 | 北京水木羽林科技有限公司 | 一种分布式模糊测试加速方法及系统 |
CN115964275B (zh) * | 2022-12-13 | 2023-08-29 | 北京水木羽林科技有限公司 | 一种分布式模糊测试加速方法及系统 |
CN116756051A (zh) * | 2023-08-18 | 2023-09-15 | 北京航天计量测试技术研究所 | 一种基于要素分解的神经网络测试充分性评估方法 |
CN116756051B (zh) * | 2023-08-18 | 2023-11-07 | 北京航天计量测试技术研究所 | 一种基于要素分解的神经网络测试充分性评估方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108875818B (zh) | 基于变分自编码机与对抗网络结合的零样本图像分类方法 | |
Peng et al. | Accelerating minibatch stochastic gradient descent using typicality sampling | |
CN109617909A (zh) | 一种基于smote和bi-lstm网络的恶意域名检测方法 | |
CN115080383A (zh) | 模型状态差分的深度神经网络测试用例生成方法 | |
López et al. | Addressing imbalanced classification with instance generation techniques: IPADE-ID | |
CN109034186A (zh) | 建立da-rbm分类器模型的方法 | |
CN111723949A (zh) | 基于选择性集成学习的孔隙度预测方法 | |
CN111325264A (zh) | 一种基于熵的多标签数据分类方法 | |
Liu et al. | Novel instance mining with pseudo-margin evaluation for few-shot object detection | |
Demirel et al. | Meta-tuning loss functions and data augmentation for few-shot object detection | |
Lee et al. | Boundary-focused generative adversarial networks for imbalanced and multimodal time series | |
CN111882042A (zh) | 用于液体状态机的神经网络架构自动搜索方法、系统及介质 | |
KR102272921B1 (ko) | 확장형 카테고리를 위한 계층적 객체 검출 방법 | |
CN116258504B (zh) | 银行客户关系管理系统及其方法 | |
Wu et al. | RNNtcs: A test case selection method for Recurrent Neural Networks | |
Abed Al Raoof et al. | Maximizing CNN Accuracy: A Bayesian Optimization Approach with Gaussian Processes | |
Jing et al. | NASABN: A neural architecture search framework for attention-based networks | |
Peng et al. | Towards better generalization of deep neural networks via non-typicality sampling scheme | |
CN112949384A (zh) | 一种基于对抗性特征提取的遥感图像场景分类方法 | |
Zhu et al. | ORALI: Open-set recognition and active learning for unknown lithology identification | |
Xue et al. | Tsc-gcn: A face clustering method based on gcn | |
Gao et al. | Binary artificial immune algorithm for adaptive visual detection | |
Ridho et al. | Chaotic Whale Optimization Algorithm in Hyperparameter Selection in Convolutional Neural Network Algorithm | |
Yang et al. | Detecting communities in attributed networks through bi-direction penalized clustering and its application | |
KR102574512B1 (ko) | 은유 탐지 장치 및 방법 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |