DeepHunter: A Coverage-Guided Fuzz Testing Framework

for Deep Neural Networks

Abstract

The past decade has seen the great potential of applying deep neural network (DNN) based software to safety-critical scenarios, such as autonomous driving. Similar to traditional software, DNNs could exhibit incorrect behaviors, caused by hidden defects, leading to severe accidents and losses. In this paper, we propose DeepHunter, a coverage-guided fuzz testing framework for detecting potential defects of general-purpose DNNs. To this end, we first propose a new metamorphic mutation strategy to generate new semantically preserved tests, and leverage multiple extensible coverage criteria as feedback to guide the test generation. We further propose a new seed selection strategy that combines both diversity-based seed selection and recency-based seed selection. We finally implement 5 existing testing criteria and 4 seed selection strategies in DeepHunter. Large-scale experiments demonstrate that (1) the metamorphic mutation strategy is useful to generate new valid tests with the same semantics as the original seed, by a 98% validity ratio; (2) diversity-based seed selection is more important than recency-based seed selection in boosting the coverage and in detecting defects; (3) DeepHunter significantly outperforms the state of the art (TensorFuzz and DeepTest) by coverage as well as the quantity and diversity of defects identified; (4) using corner-region based criteria, DeepHunter tends to be more useful to capture defects (capture 4x more defects than TensorFuzz in MobileNet) during the DNN quantization for platform migration.

Workflow of DeepHunter