面向深度学习系统的模糊测试技术研究进展(2021)

摘要:

        由于数据集的限制以及依赖人工标签数据, 深度学习系统易于出现非预期的行为。由于模糊测试具有较强的故障揭示能力, 运用模糊测试技术对深度学习系统进行测试成为研究热点。从测试用例生成 (包括种子队列构建、种子选择和种子变异)、测试结果判定、覆盖分析 3个方面对已有的深度学习系统的模糊测试技术进行总结, 并介绍常用的数据集以及度量指标, 最后对其发展方向进行展望。

介绍:

符号执行:困难(1) 深度学习模型通常没有分支; (2) 深度学习系统的非线性程度普遍较高, 难以找到合适的约束求解器; (3) 深度学习系统的结构复杂, 超出了目前符号推理工具的能力范围. 应对这些挑战的一个可行方案是将深度学习模型转化为程序。

蜕变测试:蜕变测试利用多个输入与输出之间的关系 (蜕变关系) 判定测试结果, 缓解了测试预言问题。

基于梯度的测试方法:深度学习系统本质是一个复杂的数学模型, 与其相关的函数 (例如损失函数、神经元的激活函数) 的梯度易于获取。

模糊测试:模糊测试在传统软件测试中表现出较强的故障揭示能力,与符号执行相比, 模糊测试不需要将深度学习系统转化为程序, 节省了测试资源. 尽管基于梯度的测试方法能够有效地揭示深度学习模型存在的故障, 现有研究结果表明模糊测试能够检测到基于梯度的测试方法无法检测的故障,与蜕变测试相比, 模糊测试的主要优势是能够在有限的测试用例中产生大量的测试用例, 劣势是不具备测试结果判定机制.

Zhang 等人[13]较为全面地调研了机器学习系统的测试技术, 包括机器学习系统属性 (正确性、鲁棒性和公平性等) 的测试方法、机器学习组件 (数据、学习程序和框架) 的测试方法、机器学习系统测试流程相关的研究 (测试用例生成、测试结果判定、测试充分性评估等) 和不同领域的机器学习系统的测试方法 (自动驾驶、机器翻译和自然语言处理)。

本文, 首先使用系统文献调研方法收集当前面向深度学习系统的模糊测试相关的研究论文; 分别围绕测试用例生成 (包括种子队列构建、种子选择和种子变异)、测试结果判定和覆盖分析 3 个方面, 总结已有的测试技术和结论并介绍常用的数据集以及度量指标; 

测试充分性准则:与泛化能力的关系

深度学习系统改进的模糊测试:

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值