Fuzzing: State of the Art

Hongliang Liang,Xiaoxiao Pei,Xiaodong Jia,Wuwei Shen,Jian Zhang
DOI: https://doi.org/10.1109/tr.2018.2834476
IF: 5.883
2018-01-01
IEEE Transactions on Reliability
Abstract:As one of the most popular software testing techniques, fuzzing can find a variety of weaknesses in a program, such as software bugs and vulnerabilities, by generating numerous test inputs. Due to its effectiveness, fuzzing is regarded as a valuable bug hunting method. In this paper, we present an overview of fuzzing that concentrates on its general process, as well as classifications, followed by detailed discussion of the key obstacles and some state-of-the-art technologies which aim to overcome or mitigate these obstacles. We further investigate and classify several widely used fuzzing tools. Our primary goal is to equip the stakeholder with a better understanding of fuzzing and the potential solutions for improving fuzzing methods in the spectrum of software testing and security. To inspire future research, we also predict some future directions with regard to fuzzing.
What problem does this paper attempt to address?