December 1990/Vol.33, No.12 | Barton P. Miller, Lars Fredriksen and Bryan So
The article discusses the importance of reliable operating system utilities and the challenges of formal verification. It highlights a recent experience where spurious characters on a noisy phone line caused programs to crash, leading to the development of a systematic test for utility programs on various versions of the Unix operating system. The testing process involved generating random input strings, identifying crash-causing inputs, and categorizing the bugs. The results showed that over 24% of the tested utility programs crashed, and the authors identified common programming errors such as pointer/array issues, lack of return code checking, and input function vulnerabilities. The article also provides guidelines for improving reliability and suggests further experiments to test network services and other operating systems. The authors conclude by emphasizing the value of their testing method and the need for continuous improvement in software reliability.The article discusses the importance of reliable operating system utilities and the challenges of formal verification. It highlights a recent experience where spurious characters on a noisy phone line caused programs to crash, leading to the development of a systematic test for utility programs on various versions of the Unix operating system. The testing process involved generating random input strings, identifying crash-causing inputs, and categorizing the bugs. The results showed that over 24% of the tested utility programs crashed, and the authors identified common programming errors such as pointer/array issues, lack of return code checking, and input function vulnerabilities. The article also provides guidelines for improving reliability and suggests further experiments to test network services and other operating systems. The authors conclude by emphasizing the value of their testing method and the need for continuous improvement in software reliability.