关键词:
深度学习
软件测试
测试用例选择
数据变异
摘要:
深度神经网络目前已被广泛应用于自动驾驶、医疗诊断、语音识别、人脸识别等安全攸关领域,因此深度神经网络测试对于保证其质量非常关键.然而,为判断DNN模型预测是否正确而对测试用例进行标注的成本很高.因此,筛选出能够揭示DNN模型错误行为的测试用例并优先对其进行标注,能够尽快修复模型缺陷,从而提升DNN测试的效率、保证DNN模型质量.提出一种基于数据变异的测试用例选择方法DMS.该方法设计并实现数据变异算子生成变异模型,以模拟模型缺陷并捕获测试用例揭错时的动态模式,从而评估测试用例的揭错能力.在25个深度学习测试集和模型的组合上进行实验,结果表明,无论是筛选出的样本中揭错用例的比例还是揭错方向的多样性,DMS都要显著优于现有的测试用例选择方法.具体来说,以原始测试集作为候选集时,在选择10%的测试用例时,DMS能够筛选出候选集中53.85%–99.22%的揭错用例,在选择5%的测试用例时,DMS筛选出的测试用例已经几乎能覆盖所有的揭错方向.相较于8种对比方法,DMS平均多找出12.38%–71.81%的揭错用例,证明了DMS在测试用例选择任务中的显著有效性.