skip to main content
article
Free Access

An empirical study of the reliability of UNIX utilities

Published:01 December 1990Publication History
Skip Abstract Section

Abstract

The following section describes the tools we built to test the utilities. These tools include the fuzz (random character) generator, ptyjig (to test interactive utilities), and scripts to automate the testing process. Next, we will describe the tests we performed, giving the types of input we presented to the utilities. Results from the tests will follow along with an analysis of the results, including identification and classification of the program bugs that caused the crashes. The final section presents concluding remarks, including suggestions for avoiding the types of problems detected by our study and some commentary on the bugs we found. We include an Appendix with the user manual pages for fuzz and ptyjig.

References

  1. 1 Dijkstra, E. W. GOTO Statement Considered Harmful. Commun. ACM 11, 3 (March 1968), 147-8. Google ScholarGoogle ScholarDigital LibraryDigital Library
  2. 2 Rochlis, J. A., and Eichin, M. W. With microscope and tweezers: The Worm from MIT's perspective. Commun. ACM 32, 6 (June 1989), 689- 698. Google ScholarGoogle ScholarDigital LibraryDigital Library
  3. 3 Spafford, E. H. The internet Worm: Crisis and aftermath. Commun. ACM 32, 6 (June 1989), 678-687. Google ScholarGoogle ScholarDigital LibraryDigital Library
  4. 4 Wood, D. A., Gibson, G. A., and Katz, R. H. Verifying a multiprocessor cache controller using random case generation. Computer Science Tech. Rep. UCB/CSD 89/490, University of California, Berkeley (January 1989). Google ScholarGoogle Scholar

Index Terms

  1. An empirical study of the reliability of UNIX utilities

            Recommendations

            Reviews

            Brett D. Fleisch

            This study examined the reliability of UNIX utilities using empirical testing procedures. The authors tested roughly 90 different utility programs on seven versions of UNIX, including a commercial version. The paper presents the tools used to test the UNIX programs, the tests, the results, and an analysis of the results. The authors, using the tools and testing procedures described, were able to crash more than 24 percent of the UNIX utility programs. The authors point out that the study is important because (1) it uncovers a large set of bugs that could be corrected, (2) it provides a means of identifying programming practices that could cause bugs or security holes, and (3) it simulates real crashes that could occur because of careless typing, noisy input, or noisy phone lines. A good portion of the paper discusses common mistakes made by programmers that caused the utilities to fail. This paper is a good example of how relatively simple techniques can uncover significant results. Because of the pervasive use of UNIX and the diverse set of environments examined in this study, many readers can benefit by the analysis of UNIX utility reliability. Tables included in the paper give specific names of utilities that failed; the analysis suggests reasons for the failures.

            Access critical reviews of Computing literature here

            Become a reviewer for Computing Reviews.

            Comments

            Login options

            Check if you have access through your login credentials or your institution to get full access on this article.

            Sign in

            Full Access

            • Published in

              cover image Communications of the ACM
              Communications of the ACM  Volume 33, Issue 12
              Dec. 1990
              67 pages
              ISSN:0001-0782
              EISSN:1557-7317
              DOI:10.1145/96267
              Issue’s Table of Contents

              Copyright © 1990 ACM

              Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than ACM must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected]

              Publisher

              Association for Computing Machinery

              New York, NY, United States

              Publication History

              • Published: 1 December 1990

              Permissions

              Request permissions about this article.

              Request Permissions

              Check for updates

              Qualifiers

              • article

            PDF Format

            View or Download as a PDF file.

            PDF

            eReader

            View online with eReader.

            eReader