HashC:让DNN覆盖测试更精细、更快速
1. 引言
深度神经网络(DNNs)在众多工业特定领域任务中展现出强大能力,其广泛应用对行为可靠性提出了更高要求。然而,DNNs存在严重的安全和可靠性问题。在DNNs的保证评估工具中,测试是兼顾完整性和效率的最佳选择之一。但由于数据驱动的DNNs行为无法明确编码为控制流结构,直接采用软件测试标准来量化DNNs的测试充分性是不可行的。
为评估测试套件对DNN的测试效果,近期研究提出了各种覆盖准则:
- 神经元覆盖(NC) :受软件测试中代码覆盖的启发,计算激活神经元的比例,但不够精细,难以区分测试套件之间的细微差异。
- 桶覆盖准则(BCCs) :详细研究单个神经元的输出,如IDC、NBC、SNAC和KMNC等,将神经元的输出值范围划分为桶并计算激活桶的比例,但大多不够精细,且在测试套件规模过大或过小时,性能不符合DNN测试实践。
- 组合覆盖准则(CCCs) :分析神经元之间的相互作用,如2 - 路覆盖、MC/DC神经元覆盖、3 - 路覆盖和INC等,但对于大规模DNNs的测试过于耗时。
- 其他准则 :TKNC评估前k个神经元的比例,惊喜覆盖(SC)衡量测试输入相对于训练集的相对新颖性,但TKNC缺乏关于DNNs规模的可扩展性,SC的评估结果受训练集质量影响,且在大规模DNNs上无法考虑所有神经元。
为更有效、高效地衡量DNNs的测试充分性,本文提出了HashC覆盖测试框架。HashC可以使BCCs具有“组合性”,同时将其时间复杂度保持在O(mn
超级会员免费看
订阅专栏 解锁全文
20

被折叠的 条评论
为什么被折叠?



