IEEE Transactions on Reliability · 2018 · 222 citations · 141 references
ComputingComputer ScienceCybersecurityApplication SecuritySoftware EngineeringVulnerability AnalysisFuzz TestingSoftware TestingSoftware Vulnerability DiscoveryState-of-the-art Review
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.
141
Procedures for Performing Systematic Reviews
Barbara Kitchenham · 2004 · 4.8K citations
Chi-Keung Luk, Robert Cohn, Robert Muth et al. · ACM SIGPLAN Notices · 2005 · 3.2K citations
Chi-Keung Luk, Robert Cohn, Robert Muth et al. · 2005 · 2.3K citations
Nicholas Nethercote, Julian Seward · 2007 · 2.3K citations