本发明专利技术公开了一种面向人工智能组件的测试用例生成方法,属于图像处理领域;具体为:首先,针对原始图片,基于条件生成对抗网络cGAN,使用one
【技术实现步骤摘要】
一种面向人工智能组件的测试用例生成方法
[0001]本专利技术属于图像处理的测试用例生成领域,具体为一种面向人工智能组件的测试用例生成方法。
技术介绍
[0002]人工智能技术是近年来计算机科学研究的焦点,随着计算能力的提升,人工智能在当下已经广泛应用于图像识别、自然语言处理等方面,在具体的场景如自动驾驶、人脸识别、语音识别以及医疗辅助等方面人工智能更是有着无与伦比的优势。在大数据时代下,人工智能能够多快好省地从大量、多样、低价值密度的数据中提取有价值信息,相关成果已经广泛应用于生活的各个角落。
[0003]在传统的软件系统开发过程中,测试是一个极为重要的环节,测试的充分与否直接影响软件上线后能否正常运行。随着互联网的发展,软件规模已经发展到一个匪夷所思的地步,一旦软件出现问题,造成的后果也难以想象。在航空、航天、医疗、自动驾驶等安全攸关的领域,测试不仅涉及大量经济利益、更涉及使用者的生命安全,因此,充分的测试是至关重要的。
[0004]传统软件是算法驱动的,软件系统的内部逻辑由算法决定,传统测试技术依据测试覆盖准则对程序分支做严格覆盖测试就可以找出算法存在的缺陷。以神经网络系统为代表的人工智能组件是数据驱动的,其内在逻辑由训练数据训练出的带有特定权值的神经元以及神经元的连接方式决定,因此针对传统软件的测试方法和测试指标无法对特定神经网络系统的内部逻辑进行充分测试和评估。对于神经网络而言,同一输入同一模型,在不同的训练情况下输出可能是不同的,因此单独针对算法的测试是无法得出稳定、可靠并且有效的结论的。
[0005]当前针对人工智能组件的测试技术主要分为两大类,第一类方法是使用测试传统软件的黑盒方法来测试人工智能组件,该方法不关心人工智能组件的内部构造,将待测组件完全视为黑盒,只关心其输入和输出。
[0006]黑盒方法主要有以下几种:1.基于转移模型的攻击方法,其主要思想是基于本地模型的梯度生成对抗样本来攻击有相似功能的未知目标模型,这种方法需要使用训练目标模型的训练集;2.基于分数的攻击方法,该方法使用模型的最终分类概率进行攻击;3.基于决策的攻击方法,该方法只需要模型最终输出结果,就可以对目标模型发起攻击。
[0007]当前的黑盒方法可以很好的构造攻击样本,让训练好的模型在一些生成的样例中暴露出问题,但是基于此类的方法更多地着重于攻击本身,对于人工智能组件的测试工作而言用例数量和覆盖均有不足,用此方法进行测试其测试结果的可信度较低,并且对于需要进行大规模测试的人工智能组件难以实现自动化。
[0008]第二类方法采用白盒方法对以神经网络为代表的人工智能组件进行测试;白盒方法通过获得深度神经网络的内部神经元状态建立优化函数,以最大化神经元覆盖率为目标来生成测试样例。白盒方法的目标函数是预测值与原始标签之间的差异,对该函数进行梯
度下降优化,来获得具有不同神经元覆盖情况以及不同预测值的样例。白盒方法的优点在于其建立了更有解释性的覆盖率指标用以指导测试用例生成,但是对于一些无法了解网络结构的场景,白盒方法就无能为力了。
[0009]在具体的测试过程中需要面对的问题主要有两个:
[0010]一是测试用例评估,测试用例无穷无尽,需要一个指标来评估测试用例是否能够发现被测系统中潜在的缺陷和故障、是否充分能够覆盖待测试的所有功能点。在传统软件的白盒测试中,可以通过语句覆盖、分支覆盖或条件覆盖等覆盖准则来判断测试用例的充分性,在黑盒测试中,由于能掌握的信息只有输入和输出,因此仅能依照测试需求进行一些功能测试,但这些测试的充分性很难说明。
[0011]在评估针对人工智能的测试套件质量的方法中,DeepMutation方法借鉴了变异测试的思路,即通过对深度神经网络进行变异,生成与原有网络结构相异的新网络来对测试套件进行测试,并基于该思路提出了相应的测试用例评估指标。实验结果表明,DeepMutation可以对测试用例集的质量进行有效定量评估,并依照评估指标帮助开发人员提高测试数据价值。
[0012]二是测试用例生成。现有技术中采用从传统软件测试技术迁移而来的基于覆盖率生成测试用例的方法,覆盖性指标一般从深度神经网络的结构入手,从不同角度规定测试用例集激活的神经元个数以及激活神经元的结构来确定覆盖率,再以覆盖率最大化为目标生成测试用例,该方法需要深入神经网络结构中观测每一个神经元的输出值。还有另一种方法是对抗测试,通过向原本数据添加微小扰动,让数据产生人类难以分辨的变化,却让人工智能组件得到截然不同的输出,此类方法即为对抗方法。对抗方法可通过白盒方法利用神经网络内部信息构建优化函数,如L
‑
BFGS,FGSM算法等都可以快速生成对抗样本,C&W可以绕开防御蒸馏技术对深度神经网络进行攻击;对抗方法也可以通过黑盒方式进行,Brendel等人提出的基于决策的黑盒对抗算法,可以通过边界攻击的方法找到决策边界附近的对抗样本。这些对抗方法都取得了不错的效果。
[0013]但是现有技术中没有针对测试用例的功能,功能测试需要通过验证软件行为是否符合预期来判断软件是否达到功能说明书中的要求。因此,测试软件的用例集应尽可能充分,尽可能多地发现组件缺陷。目前,不论是传统测试技术的迁移所做的覆盖率测试,还是对抗测试生成技术,这类技术生成的样本集均无法充分覆盖规格说明书中的功能约束,且存在大量在实际应用场景中不会出现的无效用例。
[0014]此外,当样本应用场景局限于模型对抗训练、对抗攻击场景,测试样例就可能无法满足功能测试所必须的充分性和可靠性要求。
技术实现思路
[0015]针对当前人工智能组件的测试用例可能无法充分覆盖功能约束的问题,本专利技术提出了一种面向人工智能组件的测试用例生成方法,实现了在不清楚被测人工智能组件内部结构的情况下,通过模糊框架指导生成充分覆盖功能约束并且均匀、正确的测试用例,不仅能够检测被测组件是否实现了应有的功能,更能检测出其是否实现了“不应实现的功能”;此外,本专利技术还提出了针对测试用例集的缩减方法,在保证样例集功能的情况下能够减小样例集规模,降低了测试工作所需的时间成本。
[0016]所述的面向人工智能组件的测试用例生成方法,具体步骤如下:
[0017]步骤一、针对原始图片,基于条件生成对抗网络cGAN,使用one
‑
hot编码拼接到原始图片生成测试样例;
[0018]cGAN的目标函数如下所示:
[0019][0020]G(z|y)为生成器函数,D(x|y)为判别器函数;E
x~pdata(x)
表示期望值;
[0021]步骤二、通过cGAN的损失函数,采取模糊测试方法加入扰动项对生成的测试样例进行扩充。
[0022]cGAN的损失函数为:L
cGAN
=L
G
+L
D
;
[0023]L
G
为生成器损失函数,
[0024]其中,ε为扰动项,c
i本文档来自技高网...
【技术保护点】
【技术特征摘要】
1.一种面向人工智能组件的测试用例生成方法,其特征在于,具体步骤如下:首先,针对原始图片,基于条件生成对抗网络cGAN,使用one
‑
hot编码拼接到原始图片生成测试样例;然后,通过cGAN的损失函数,采取模糊测试方法加入扰动项对生成的测试样例进行扩充;通过隐空间采样约束和训练约束,并设计收益函数来估计扩充后测试样例集的质量,保证样例集满足测试要求;接着,构建蜕变关系对满足要求的样例集进行缩减,生成最终面向人工智能组件的测试用例;蜕变关系包括:MR1:当一个用例被判定为某一个分类并且置信度极高时,说明该用例处于决策空间中心位置,此时对其施加微小扰动,其分类结果不应该改变;MR2:当一个用例被判定为某一个分类并且置信度足够高并且与其他被判定为该分类的样例有一定差异时,说明该用例未处于决策空间中心也位处于决策空间边缘,此时对其施加微小扰动,其分类结果不应该改变;MR3:当一个用例被判定为两个分类的概率接近,说明其处于决策边界,对其进行小幅扰动,会让其结果出现错误;MR4:当一个用例对于各类的概率接近,说明无法将其分类,其处于决策空间外部,此时对该样本进行扰动,分类结果仍然错误,这些用例为无效用例;通过MR1筛出的用例是能够测试出被测模型是否实现了预期功能,能够准确分类出较为明确的用例;通过MR2筛出的用例能够测试出被测模型是否具有抵御噪声的能力;MR3则是测试被测模型是否能够抗混淆;通过MR4能够选取出用例集中最具有代表性,高价值的用例;最后,利用可靠性、充分性以及覆盖率三个指标对最终生成的测试用例进行验证;可靠性描述的是用例集是否准确有效,用例执行结果的正确性是否是可判定的;充分性则用来描述用例集是否能够发现尽可能多的问题;覆盖率则是衡量测试用例是否覆盖了所有功能约束;可靠性指标:g(X
R,model
)=a*g1(X
R,model
)+(1
‑
a)*g2(X
R,model
)其中,g1(X
R,model
)为正确性评估函数,该指标是用正确用例数目比有效用例集规模,用以评估用例集中具有正确预期结果的比例;g2(X
R,model
)为有效性评估函数,该指标使用满足MR4的用例数量比用例集整体规模,用以评估用...
【专利技术属性】
技术研发人员:吕江花,刘泽玉,陈奕宁,
申请(专利权)人:北京航空航天大学,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。