Computer Sciences Dept.

Fuzz Testing of Application Reliability

Classic fuzz testing is a simple technique for feeding random input to applications. While random testing is a time-honored technique, our approach has three characteristics that, when taken together, makes it somewhat different from other approaches.
picture of caterpillar

  1. The input is random. We do not use any model of program behavior, application type, or system description. This is sometimes called black box testing. In the command-line studies (1990, 1995, 2006, and 2020), the random input was simply random ASCII character streams. For our X-Window study (1995), Windows NT study (2000), and Mac OS X study (2006), the random input included cases that had only valid keyboard and mouse events.
  2. Our reliability criteria is simple: if the application crashes or hangs, it is considerd to fail the test, otherwise it passes. Note that the application does not have to respond in a sensible manner to the input, and it can even quietly exit.
  3. As a result of the first two characteristics, fuzz testing can be automated to a high degree and results can be compared across applications, operating systems, and vendors.

We encourage your feedback and comments.

Below are links to the fuzz papers, software, and related materials:

[T] 2020 Fuzz Report (PDF).

B.P. Miller, M. Zhang and E.R. Heymann, "The Relevance of Classic Fuzz Testing:Have We Solved This One?", IEEE Transactions on Software Engineering, accepted for publication, 2021.

[T] 2008 Foreword for a book on fuzz testing (html).

This is the prose for a foreword that I wrote for a book on fuzz testing. It gives a nice summary of origins of the idea.

[T] 2006 Mac OS X Fuzz Report (Postscript, PDF).

B.P. Miller, G. Cooksey and F. Moore, "An Empirical Study of the Robustness of MacOS Applications Using Random Testing", First International Workshop on Random Testing, Portland, Maine, July 2006.

[T] 2000 Windows NT Fuzz Report (Postscript, Compressed Postscript, Gzip'd Postscript, PDF, HTML).

J.E. Forrester and B.P. Miller, "An Empirical Study of the Robustness of Windows NT Applications Using Random Testing", 4th USENIX Windows Systems Symposium, Seattle, August 2000. Appears (in German translation) as "Empirische Studie zur Stabilitšt von NT-Anwendungen", iX, September 2000.

[T] 1995 "Fuzz Revisited" Report (Postscript, Compressed Postscript, Gzip'd Postscript, PDF).

B.P. Miller, D. Koski, C.P. Lee, V. Maganty, R. Murthy, A. Natarajan, and J. Steidl, "Fuzz Revisited: A Re-examination of the Reliability of UNIX Utilities and Services", Computer Sciences Technical Report #1268, University of Wisconsin-Madison, April 1995. Appears (in German translation) as "Empirische Studie zur Zuverlasskeit von UNIX-Utilities: Nichts dazu Gerlernt", iX, September 1995.

[T] 1990 Original Fuzz Report (Postscript, Compressed Postscript, Gzip'd Postscript, PDF).

B.P. Miller, L. Fredriksen, and B. So, "An Empirical Study of the Reliability of UNIX Utilities", Communications of the ACM 33, 12 (December 1990). Also appears (in German translation) as "Fatale Fehlertractigkeit: Eine Empirische Studie zur Zuverlassigkeit von UNIX-Utilities", iX, March 1991.

[T] 1988 Original fuzz project assignment (PDF). Project (1) on the list is the fuzz assignment.

This is the original project assignment from my graduate CS736 class, Advanced Operating Systems. This list of projects was handed out in the Fall of 1988.

[T] The Fuzz Software and Dataset Site (Updated August 2020)

[T] Slides from Fuzz-Revisited (1995) Talk (Postscript, (PDF).

If you have reported on the use of the fuzz tools on testing other systems or more recent testing of the systems that we have tested, please send us email and we would be glad to provide a link to the report: email address

Last modified: Tue Jan 19 14:24:27 CST 2021