CN111061626A - 基于神经元激活频率分析的测试用例优先级排序方法 - Google Patents

基于神经元激活频率分析的测试用例优先级排序方法 Download PDF

Info

Publication number
CN111061626A
CN111061626A CN201911130237.0A CN201911130237A CN111061626A CN 111061626 A CN111061626 A CN 111061626A CN 201911130237 A CN201911130237 A CN 201911130237A CN 111061626 A CN111061626 A CN 111061626A
Authority
CN
China
Prior art keywords
neurons
activated
neural network
neuron
test case
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.)
Granted
Application number
CN201911130237.0A
Other languages
English (en)
Other versions
CN111061626B (zh
Inventor
张凯
张永泰
严俊
晏荣杰
高红雨
苏航
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing University of Technology
Institute of Software of CAS
Original Assignee
Beijing University of Technology
Institute of Software of CAS
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Beijing University of Technology, Institute of Software of CAS filed Critical Beijing University of Technology
Priority to CN201911130237.0A priority Critical patent/CN111061626B/zh
Publication of CN111061626A publication Critical patent/CN111061626A/zh
Application granted granted Critical
Publication of CN111061626B publication Critical patent/CN111061626B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3668Software testing
    • G06F11/3672Test management
    • G06F11/3684Test management for test design, e.g. generating new test cases
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3668Software testing
    • G06F11/3672Test management
    • G06F11/3688Test management for test execution, e.g. scheduling of test suites
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/045Combinations of networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods

Abstract

本发明公开了基于神经元激活频率分析的测试用例优先级排序方法,输入为待测神经网络、历史数据以及测试集,输出为经过测试用例优先级排序的测试集。本发明的主要思想是将神经网络中的神经元集合划分为频繁激活神经元集合以及非频繁激活神经元集合,通过计算新的测试用例激活频繁激活神经元的数量以及激活非频繁激活神经元的数量,对测试用例进行排序。具体步骤如下:1)确定每个类别数据的神经元频繁激活神经元子集与非频繁激活神经元子集;2)对待排序数据按照激活频繁激活子集与非频繁激活子集中神经元数量对测试用例进行优先级排序。

Description

基于神经元激活频率分析的测试用例优先级排序方法
技术领域
本发明涉及计算机软件测试领域,特别涉及一种基于神经元激活频率分析的测试用例优先级排序方法。
背景技术
随着深度神经网络等技术的迅速发展,深度学习系统得到了广泛地应用,并在自动驾驶、语音识别、图像识别等领域广泛部署。为了确保这些应用深度学习技术的计算机软件的安全性和可靠性,在计算机软件被投入使用之前必须对其进行充分的测试。然而由于深度学习系统的难解释性,对部署深度学习系统的计算机软件进行测试的成本是非常昂贵的,一方面为了覆盖深度学习系统巨大的输入空间,必须收集尽可能多的测试用例,测试的过程可能耗时极长、耗资源极多;另一方面,为了判断测试结果的准确性,必须人为地为测试用例作标注,这使得测试成本昂贵。
测试用例优先级排序技术是减少计算机软件测试成本的方法之一。传统计算机软件的测试用例优先级排序技术基于历史测试数据的代码覆盖率等信息,在一定的测试目标下,对测试用例进行优先级排序,优先测试具有高优先级的测试用例。但是部署深度学习系统的计算机软件与传统软件有着根本的区别:传统软件由开发者通过代码定义其中的逻辑,而部署深度学习技术的计算机软件从训练数据中学习其中的逻辑,具体表现为神经网络层与层之间的神经元之间的权值和偏置量等。因而传统软件的测试用例优先级技术已不再适用于部署深度学习系统的计算机软件。为了减少部署深度学习系统的计算机软件的测试成本、提高测试效率,本发明提出一种适用于部署深度学习系统的计算机软件的测试用例优先级排序技术。目前已有的适用于部署深度学习系统的计算机软件的测试用例排序技术主要有基于输出层的熵的排序技术、基于输出层基尼系数的排序技术。本发明与以上方法不同之处在于两个方面:本发明所述方法使用的数据为神经网络倒数第二层的全连接层神经元输出值;本发明所述方法对神经网络运行过程中得到的历史数据进行分析,提取出不同类别数据的频繁激活神经元集合与非频繁激活神经元集合,再依据测试用例激活测试用例所属类别的频繁激活神经元集合与非频繁激活神经元集合中神经元的占比情况判断测试用例的优先级。
发明内容
为了降低部署深度学习系统计算机软件的测试成本,本发明提出了一种基于神经元激活频率分析的测试用例优先级排序技术。该方法首先将训练数据输入神经网络并收集神经元输出值,然后从神经元输出值信息中确定每个类别数据的频繁激活神经元集合以及非频繁激活神经元集合,下一步通过计算测试用例激活其所属类别的频繁激活神经元的数量与非频繁激活神经元的数量之比对测试用例进行评级,最后按照优先级从大到小对测试用例进行优先级排序。
为了实现本发明的目的,采用的技术方案概述如下:
以下提及的训练集、训练数据为部署深度学习系统的计算机软件在训练神经网络所使用的数据,以下提及的的测试集、测试用例为部署深度学习系统的计算机软件在测试过程中所使用的数据。
一种基于神经元激活频率分析的测试用例优先级排序方法,其输入为训练数据以及测试集在神经网络的倒数第二层的神经元输出值,输出为排完序的测试集,包括以下步骤:
(1)确定神经网络模型对于计算机软件每个类别在测试过程中所使用的数据的频繁激活神经元集合与非频繁激活神经元集合。对于某一类的数据,频繁激活神经元指在神经网络的运行过程中,该神经网络的神经元能被大多数正确分类的数据所激活,非频繁激活神经元则是指神经网络中除去该类所有频繁激活神经元外的其他神经元。
(2)将待排序的计算机软件测试用例输入神经网络模型,并按照其激活对应类别的“频繁激活神经元集合”中神经元的数目与激活“非频繁激活神经元集合”的数目之比,对计算机软件测试用例进行优先级排序。
所述步骤(1),具体包括以下步骤:
(1-1)获取以计算机软件测试用例的训练数据为输入时,神经网络模型倒数第二层的所有神经元的输出值;
(1-2)将输出值大于0.0的神经元记为被激活的神经元,按照输入数据的类别分别计算神经网络模型倒数第二层的每一个神经元被激活的次数;
(1-3)利用聚类算法,对于每一类的数据,将神经网络模型倒数第二层的神经元以激活次数为特征进行聚类,将该类数据的神经元聚为两类,分别是频繁激活神经元与非频繁激活神经元。激活频率高的一类为频繁激活神经元,激活频率低的一类为非频繁激活神经元。
所述步骤(2),具体包括以下步骤:
(2-1)获取神经网络模型以待排序测试用例为输入时倒数第二层的所有神经元的输出值;
(2-2)神经网络模型输入测试用例时,计算该测试用例激活该测试用例所属类别的“频繁激活神经元集合”中神经元的个数与“非频繁激活神经元集合”中神经元的个数,分别记为FreNeuron、InFreNeuron;
(2-3)对于所有测试数据按照FreNeuron/(1+InFreNeuron)值进行优先级排序,值越低优先级越高。优先级的具体意义是测试用例被神经网络识别错误的容易程度。神经网络识别该测试用例越容易出错,优先级越高,具体表现为FreNeuron/(1+InFreNeuron)值的高低,值越低优先级越高。
本方法的实施环境为Windows10操作系统,装有Python3.7解释器。
与现有技术相比,本发明具有以下特点:
(1)本发明所提出的方法适用于基于深度学习技术的计算机软件,而传统软件测试的优先级排序技术却不适用于基于深度学习技术的软件;
(2)本发明所提出的测试用例优先级排序方法所使用的神经元输出值为全连接层倒数第二层的神经元输出值,而现有的适用于基于深度学习系统软件的测试用例优先级排序技术主要使用的是输出层神经元的输出值。
附图说明
图1是本发明方法实现的总体流程图;
图2是本发明的确定“频繁激活神经元集合”部分流程图;
图3是本发明的测试用例排序部分流程图。
具体实施方式
本发明提出的一种基于神经元激活频率的分析的测试用例优先级排序方法,能将测试集中测试用例按照易被神经网络识别错误的程度从高到底排序。
下面结合具体实施对本发明提出的测试用例优先级排序方法进行详细描述。以5个测试用例为例,本案例采用的聚类算法为K-Means,本方法的工作流程如下:
其中,测试集为{t1,t2,t3,t4,t5,t6},神经网络倒数第二层神经元的集合为{n1,n2,n3,n4,n5}。测试集中t1,t2,t3为类别k1,t4,t5,t6为类别k2。各个测试用例所激活的神经元分别为{n1,n2,n3},{n1,n2,n3,n4},{n1,n2,n3,n4,n5},{n1,n4,n5},{n2,n3,n4,n5},{n1,n2,n3,n4,n5}。
本发明的基于频率分析获取神经元频繁激活子集与神经元非频繁激活子集的方法如图2所示:
a)统计训练数据为输入时神经网络倒数第二层中各个神经元被激活的次数;
b)对每个类别的数据利用K-Means算法,以神经元激活次数为特征,将神经元聚为两类;
其中步骤a)的具体实施过程如下,对于类别k1的数据神经元n1,n2,n3,n4,n5被激活的次数分别为3,3,3,1,1,对于类别2,神经元n1,n2,n3,n4,n5被激活的次数分别为1,1,1,3,3;
其中步骤b)的具体实施如下,对于类别k1的数据对神经元进行K-Means聚类分析,簇数设置为2,可得{n1,n2,n3}为频繁激活神经元集合,{n4,n5}为非频繁激活神经元集合,对于类别k2的数据可得{n4,n5}为频繁激活神经元集合,{n1,n2,n3}为非频繁激活神经元集合;
本发明的排序模块如图3所示:
c)计算每个测试用例激活该类别频繁激活子集与非频繁激活集合中神经元的个数,分别记为FreNeuron、InFreNeuron;
d)对于每个测试用例按照FreNeuron/(1+InFreNeuron)的高低进行优先级排序,该数值越低优先级越高;
其中步骤c),测试用例t1激活两个集合中神经元的个数分别为3和0,测试用例t2激活两个集合中神经元的个数分别为3和1,测试用例t3激活两个集合中神经元的个数分别为3和2,测试用例t4激活两个集合中神经元的个数分别为2和1,测试用例t5激活两个集合中神经元的个数分别为2和2,测试用例t6激活两个集合中神经元的个数分别为2和3;
其中步骤d),测试用例t1,t2,t3,t4,t5,t6的得分分别为3/1,3/2,3/3,2/2,2/3,2/4;
其中步骤e),得到的排序后的测试用例顺序为t6,t5,t4,t3,t2,t1
综上,本发明提出一种适用于基于深度学习系统的测试用例优先级排序技术。基于深度学习系统的特点,对神经网络倒数第二层的神经元被每一类数据激活的次数进行分析,得到每类数据的频繁激活神经元集合以及非频繁激活神经元集合,基于两类神经元对测试用例进行优先级排序。该方法能提高测试效率,减少测试成本。
上文所列出的一系列详细说明仅仅是针对本发明的可行性实施方式的具体说明,它们并非用于限制本发明的保护范围,凡是未脱离发明技艺精神所作的等效实施方式或变更均应包含在本发明的保护范围之内。

Claims (4)

1.基于神经元激活频率分析的测试用例优先级排序方法,其特征在于:输入为训练数据以及测试集在神经网络的倒数第二层的神经元输出值,输出为排完序的测试集,包括以下步骤:
(1)确定神经网络模型对于计算机软件每个类别在测试过程中所使用的数据的频繁激活神经元集合与非频繁激活神经元集合;对于某一类的数据,频繁激活神经元指在神经网络的运行过程中,该神经网络的神经元能被大多数正确分类的数据所激活,非频繁激活神经元则是指神经网络中除去该类所有频繁激活神经元外的其他神经元;
(2)将待排序的计算机软件测试用例输入神经网络模型,并按照其激活对应类别的“频繁激活神经元集合”中神经元的数目与激活“非频繁激活神经元集合”的数目之比,对计算机软件测试用例进行优先级排序。
2.根据权利要去1所述的基于神经元激活频率分析的测试用例优先级排序方法,其特征在于:所述步骤(1),具体包括以下步骤:
(1-1)获取以计算机软件测试用例的训练数据为输入时,神经网络模型倒数第二层的所有神经元的输出值;
(1-2)将输出值大于0.0的神经元记为被激活的神经元,按照输入数据的类别分别计算神经网络模型倒数第二层的每一个神经元被激活的次数;
(1-3)利用聚类算法,对于每一类的数据,将神经网络模型倒数第二层的神经元以激活次数为特征进行聚类,将该类数据的神经元聚为两类,分别是频繁激活神经元与非频繁激活神经元;激活频率高的一类为频繁激活神经元,激活频率低的一类为非频繁激活神经元。
3.根据权利要去1所述的基于神经元激活频率分析的测试用例优先级排序方法,其特征在于:所述步骤(2),具体包括以下步骤:
(2-1)获取神经网络模型以待排序测试用例为输入时倒数第二层的所有神经元的输出值;
(2-2)神经网络模型输入测试用例时,计算该测试用例激活该测试用例所属类别的“频繁激活神经元集合”中神经元的个数与“非频繁激活神经元集合”中神经元的个数,分别记为FreNeuron、InFreNeuron;
(2-3)对于所有测试数据按照FreNeuron/(1+InFreNeuron)值进行优先级排序,值越低优先级越高;优先级的具体意义是测试用例被神经网络识别错误的容易程度;神经网络识别该测试用例越容易出错,优先级越高,具体表现为FreNeuron/(1+InFreNeuron)值的高低,值越低优先级越高。
4.根据权利要去1所述的基于神经元激活频率分析的测试用例优先级排序方法,其特征在于:本方法的实施环境为Windows10操作系统,装有Python3.7解释器。
CN201911130237.0A 2019-11-18 2019-11-18 基于神经元激活频率分析的测试用例优先级排序方法 Active CN111061626B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201911130237.0A CN111061626B (zh) 2019-11-18 2019-11-18 基于神经元激活频率分析的测试用例优先级排序方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201911130237.0A CN111061626B (zh) 2019-11-18 2019-11-18 基于神经元激活频率分析的测试用例优先级排序方法

Publications (2)

Publication Number Publication Date
CN111061626A true CN111061626A (zh) 2020-04-24
CN111061626B CN111061626B (zh) 2023-11-14

Family

ID=70297784

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201911130237.0A Active CN111061626B (zh) 2019-11-18 2019-11-18 基于神经元激活频率分析的测试用例优先级排序方法

Country Status (1)

Country Link
CN (1) CN111061626B (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111858341A (zh) * 2020-07-23 2020-10-30 深圳慕智科技有限公司 一种基于神经元覆盖的测试数据度量方法

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105677496A (zh) * 2016-01-12 2016-06-15 电子科技大学 基于两层神经网络的测试性指标分配方法
US20170213129A1 (en) * 2016-01-26 2017-07-27 Samsung Electronics Co., Ltd. Recognition apparatus based on neural network and method of training neural network
US20190196943A1 (en) * 2017-12-26 2019-06-27 Hitachi, Ltd. Coverage test support device and coverage test support method
CN110110854A (zh) * 2019-04-01 2019-08-09 南京邮电大学 一种基于边状态的深度神经网络测试充分性的方法
CN110135558A (zh) * 2019-04-22 2019-08-16 南京邮电大学 基于可变强度组合测试的深度神经网络测试充分性方法
CN110347579A (zh) * 2019-04-01 2019-10-18 南京邮电大学 基于神经元输出行为模式的深度学习测试用例的选择方法

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105677496A (zh) * 2016-01-12 2016-06-15 电子科技大学 基于两层神经网络的测试性指标分配方法
US20170213129A1 (en) * 2016-01-26 2017-07-27 Samsung Electronics Co., Ltd. Recognition apparatus based on neural network and method of training neural network
US20190196943A1 (en) * 2017-12-26 2019-06-27 Hitachi, Ltd. Coverage test support device and coverage test support method
CN110110854A (zh) * 2019-04-01 2019-08-09 南京邮电大学 一种基于边状态的深度神经网络测试充分性的方法
CN110347579A (zh) * 2019-04-01 2019-10-18 南京邮电大学 基于神经元输出行为模式的深度学习测试用例的选择方法
CN110135558A (zh) * 2019-04-22 2019-08-16 南京邮电大学 基于可变强度组合测试的深度神经网络测试充分性方法

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111858341A (zh) * 2020-07-23 2020-10-30 深圳慕智科技有限公司 一种基于神经元覆盖的测试数据度量方法

Also Published As

Publication number Publication date
CN111061626B (zh) 2023-11-14

Similar Documents

Publication Publication Date Title
CN101907681B (zh) 基于gsd_svdd的模拟电路动态在线故障诊断方法
CN110503245B (zh) 一种机场航班大面积延误风险的预测方法
CN105389480B (zh) 多类不平衡基因组学数据迭代集成特征选择方法及系统
CN102682760B (zh) 重叠语音检测方法和系统
CN109766277A (zh) 一种基于迁移学习与dnn的软件故障诊断方法
CN110188047B (zh) 一种基于双通道卷积神经网络的重复缺陷报告检测方法
CN104966105A (zh) 一种鲁棒机器错误检索方法与系统
CN110928764A (zh) 移动应用众包测试报告自动化评估方法及计算机存储介质
CN105389583A (zh) 图像分类器的生成方法、图像分类方法和装置
CN112364352B (zh) 可解释性的软件漏洞检测与推荐方法及系统
CN104881675A (zh) 一种视频场景的识别方法和装置
CN111343147A (zh) 一种基于深度学习的网络攻击检测装置及方法
CN114897085A (zh) 一种基于封闭子图链路预测的聚类方法及计算机设备
CN111061626A (zh) 基于神经元激活频率分析的测试用例优先级排序方法
CN113884300A (zh) 一种深度对抗迁移学习的滚动轴承故障诊断方法
CN102697491A (zh) 心电图特征波形识别方法和系统
CN112685374B (zh) 日志分类方法、装置及电子设备
CN111737993A (zh) 一种配电网设备的故障缺陷文本提取设备健康状态方法
CN116910526A (zh) 模型训练方法、装置、通信设备及可读存储介质
Seale et al. Approaches for using machine learning algorithms with large label sets for rotorcraft maintenance
CN115374859A (zh) 一种针对非平衡、多类别的复杂工业数据的分类方法
CN111522750B (zh) 一种功能测试问题的处理方法及系统
CN110874584B (zh) 一种基于改进原型聚类的叶片故障诊断方法
CN113792141A (zh) 基于协方差度量因子的特征选择方法
Karthik et al. Defect association and complexity prediction by mining association and clustering rules

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
GR01 Patent grant
GR01 Patent grant