From: b...@asiago.cs.wisc.edu (Bart Miller) Subject: Random testing tech report Date: 1995/04/14 Message-ID: <3mmae0$iqs@spool.cs.wisc.edu>#1/1 X-Deja-AN: 100441562 organization: U of Wisconsin CS Dept newsgroups: comp.sources.testers,comp.software.testing A new tech report is available on the testing and reliability of UNIX utilities and servers. The short summary is that we can crash lots of programs on lots of vendors' machines, using very simple techniques. We report on the testing and describe why the programs crash. You can fetch the paper at: ftp://grilled.cs.wisc.edu/technical_papers/fuzz-revisited.ps.Z The abstract for the report follows: ------------------------------------------------------------------------------- "Fuzz Revisited: A Re-examination of the Reliability of UNIX Utilities and Services" Barton P. Miller, David Koski, Cjin Pheow Lee, Vivekananda Maganty, Ravi Murthy, Ajitkumar Natarajan, and Jeff Steidl ABSTRACT We have tested the reliability of a large collection of basic UNIX utility programs, X-Window applications and servers, and network services. We used a simple testing method of subjecting these programs to a random input stream. Our testing methods and tools are largely automatic and simple to use. We tested programs on nine versions of the UNIX operating system, including seven commercial systems and the freely-available GNU utilities and Linux. We report which programs failed on which systems, and identify and categorize the causes of these failures. The result of our testing is that we can crash (with core dump) or hang (infinite loop) over 40% (in the worst case) of the basic programs and over 40% of the X-Window applications. We were not able to crash any of the network services that we tested nor any of X-Window servers. This study parallels our 1990 study (that tested only the basic UNIX utilities); all systems that we compared between 1990 and 1995 noticeably improved in reliability, but still had significant rates of failure. The reliability of the basic utilities from GNU and Linux were noticeably better than those of the commercial systems. We also tested how utility programs checked their return codes from the memory allocation library routines by simulating the unavailability of virtual memory. We could crash almost half of the programs that we tested in this way. ------------------------------------------------------------------------------