System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技术实现步骤摘要】
本专利技术属于软件工程中的软件测试领域,尤其涉及一种基于符号执行的深度神经网络测试用例生成方法。
技术介绍
1、近年来,深度学习作为机器学习领域备受瞩目的一个分支,受到了学术界和工业界的广泛关注,它在自动驾驶、语音合成、医学影像诊断等领域取得了显著的应用成果,因此对深度神经网络(deep neuron network,dnn)的可靠性和鲁棒性提出了更高的要求。从软件工程的角度来看,dnn仍然符合软件的定义,同样需要经过严格的测试,以确保其在各种输入条件下的稳定性和可靠性,然而dnn模型的复杂性和黑盒性给软件测试带来了新的挑战。与传统软件测试类似,测试dnn也需要保证足够多的测试用例探索到网络内部各个状态,触发边界行为,以保证测试的充分性。目前的dnn测试用例生成方法要么难以达到高的神经元覆盖率,进而无法全面探索dnn内部状态;要么难以使dnn模型做出错误分类。因此如何有效生成既能检测dnn潜在错误又能高效覆盖网络内部状态的测试用例,已经成为一项具有挑战性的任务。
技术实现思路
1、本方法运用符号执行技术,提出了一种dnn测试用例生成方法,首先以覆盖率为导向生成测试用例,然后修改像素使模型分类出错,生成的测试用例不仅具有高覆盖率,同时能够导致dnn模型错误分类。具体包括以下步骤:
2、步骤1以覆盖率为导向生成测试用例;
3、若测试用例达到高神经元覆盖率,可以更容易地发现潜在的神经网络中的错误。因为未覆盖的神经元可能隐藏着未被发现的问题,而覆盖更多的神经元可以提
4、步骤1.1输入原始用例以及待测dnn;
5、步骤1.2覆盖准则转化为线性约束;
6、将覆盖准则形式化表达为覆盖要求,然后转化为线性约束形式。提供的覆盖准则有神经元覆盖,符号-符号覆盖,神经元边界覆盖,强神经元覆盖。这些不同的覆盖要求对应生成不同的测试用例。
7、步骤1.3基于符号执行生成测试用例;
8、在使用符号执行技术生成测试用例的过程中,使用线性规划求解器求解,如果存在可行解,则生成满足要求的新测试用例。为确保生成的测试用例在输入空间上与原始用例的差异尽可能小,添加了一个距离约束目标,因求解器为线性规划求解器,距离度量必须满足线性性质,因此本方法选取了切比雪夫距离(即l∞-范数)。
9、步骤1.4检查测试用例有效性;
10、计算新生成的测试用例与原始测试用例之间的距离,检查测试用例有效性。
11、步骤1.5判断是否使dnn错误分类;
12、判断生成的测试用例,是否使模型错误分类,若使dnn错误分类,则将测试用例加入到最终测试用例集合,否则执行步骤2。
13、步骤2以dnn错误分类为导向生成测试用例;
14、通过生成能够让dnn产生错误分类的测试用例,进而揭示在实际应用中可能出现的错误。所述步骤2包含以下步骤:
15、步骤2.1dnn转化成命令式程序;
16、将dnn转化成c语言程序,以便进行进一步的分析和测试。神经网络中的路径可以被视为转化后程序中的路径,每个执行的分支对应于相应的神经元节点是否被激活。
17、步骤2.2识别重要像素;
18、输入步骤1生成的测试用例,计算每个输入像素对于输出变量的系数,为每个输入像素分配重要性分数,然后根据重要分数从高到低对像素进行排序。排序前10%的像素即为重要像素,修改这些重要像素更容易使dnn出错。
19、步骤2.3基于符号执行构建约束;
20、使用符号执行技术探索程序路径,构建约束(1):与原始用例具有不同的标签;约束(2):与原始用例具有相同的激活模式,最终约束为约束1和2的并集。
21、步骤2.4修改像素生成测试用例;
22、求解步骤2.3中的约束,得到满足要求的像素,然后修改对应像素值,生成新测试用例,将测试用例加入到最终测试用例集合。由于其修改的像素点较少,生成的新测试用例与原始测试用例之间的差异较小。
23、本方法基于符号执行技术生成深度神经网络测试用例,首先将神经元覆盖准则转化为线性约束,然后在符号执行过程中使用线性规划求解器求解,生成具有高覆盖率的测试用例,通过有效性检查后,再判断是否使dnn做出错误分类,若未能分类出错则进入第二阶段;在第二阶段中,首先将dnn模型转化为命令式程序,识别出测试用例的重要像素,然后基于符号执行构建约束,求解生成新的测试用例,确保新测试用例不仅能够诱导模型产生错误分类,还能保持原有的激活模式。该方法生成的测试用例具有高覆盖率,能够全面探索dnn内部状态,同时能使dnn做出错误判断,进而揭示模型在实际应用中可能出现的错误。该方法在实际应用中具有良好的效果。
本文档来自技高网...【技术保护点】
1.一种基于符号执行的DNN测试用例生成方法,其特征在于,包括以下步骤:
2.根据权利要求1所述的方法,其特征在于,所述步骤1.2覆盖准则转化为线性约束,进一步包括:
3.根据权利要求1所述的方法,其特征在于,所述步骤1.3基于符号执行生成测试用例,进一步包括:
【技术特征摘要】
1.一种基于符号执行的dnn测试用例生成方法,其特征在于,包括以下步骤:
2.根据权利要求1所述的方法,其特征在于,所述步骤1.2覆...
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。