scispace - formally typeset
Open AccessProceedings Article

An empirical study of the robustness of Windows NT applications using random testing

Reads0
Chats0
TLDR
This study applies black-box random input testing techniques to applications running on the Windows NT operating system, and builds a tool that helps automate the testing of Windows NT applications.
Abstract
We report on the third in a series of studies on the reliability of application programs in the face of random input. In 1990 and 1995, we studied the reliability of UNIX application programs, both command line and X-Window based (GUI). In this study, we apply our testing techniques to applications running on the Windows NT operating system. Our testing is simple black-box random input testing; by any measure, it is a crude technique, but it seems to be effective at locating bugs in real programs. We tested over 30 GUI-based applications by subjecting them to two kinds of random input: (1) streams of valid keyboard and mouse events and (2) streams of random Win32 messages. We have built a tool that helps automate the testing of Windows NT applications. With a few simple parameters, any application can be tested. Using our random testing techniques, our previous UNIX-based studies showed that we could crash a wide variety of command-line and X-window based applications on several UNIX platforms. The test results are similar for NT-based applications. When subjected to random valid input that could be produced by using the mouse and keyboard, we crashed 21% of applications that we tested and hung an additional 24% of applications. When subjected to raw random Win32 messages, we crashed or hung all the applications that we tested. We report which applications failed under which tests, and provide some analysis of the failures.

read more

Citations
More filters
Journal ArticleDOI

DART: directed automated random testing

TL;DR: DART is a new tool for automatically testing software that combines three main techniques, automated extraction of the interface of a program with its external environment using static source-code parsing, and dynamic analysis of how the program behaves under random testing and automatic generation of new test inputs to direct systematically the execution along alternative program paths.
Proceedings ArticleDOI

CUTE: a concolic unit testing engine for C

TL;DR: In this paper, the authors address the problem of automating unit testing with memory graphs as inputs, and develop a method to represent and track constraints that capture the behavior of a symbolic execution of a unit with memory graph as inputs.
Proceedings Article

Automated Whitebox Fuzz Testing.

TL;DR: This work presents an alternative whitebox fuzz testing approach inspired by recent advances in symbolic execution and dynamic test generation, and implemented this algorithm in SAGE (Scalable, Automated, Guided Execution), a new tool employing x86 instruction-level tracing and emulation for white box fuzzing of arbitrary file-reading Windows applications.
Proceedings ArticleDOI

Feedback-Directed Random Test Generation

TL;DR: Experimental results indicate that feedback-directed random test generation can outperform systematic and undirectedrandom test generation, in terms of coverage and error detection.
Proceedings Article

Cyclone: A Safe Dialect of C

TL;DR: This paper examines safety violations enabled by C’s design, and shows how Cyclone avoids them, without giving up C”s hallmark control over low-level details such as data representation and memory management.
References
More filters
Book

Art of Software Testing

TL;DR: Comprehensively covers psychological and economic principles, managerial aspects of testing, test tools, high-order testing, code inspections, and debugging, and programming students will find this reference work indispensible.
Book

The Art of Software Testing

TL;DR: The Art of Software Testing, Third Edition as discussed by the authors provides a brief but powerful and comprehensive presentation of time-proven software testing approaches, and is an investment that will pay for itself with the first bug you find.
Journal ArticleDOI

An empirical study of the reliability of UNIX utilities

TL;DR: The following section describes the tools built to test the utilities, including the fuzz (random character) generator, ptyjig (to test interactive utilities), and scripts to automate the testing process.
Journal ArticleDOI

An Evaluation of Random Testing

TL;DR: Simulation results are presented which suggest that random testing may often be more cost effective than partition testing schemes and results of actual random testing experiments are presented, which confirm the viability of random testing as a useful validation tool.

Why software fails