Automated test plan generator for database application systems
SIGSMALL '91 Proceedings of the 1991 ACM SIGSMALL/PC symposium on Small systems
Automated test plan generator for database applications systems
ACM SIGSMALL/PC Notes
Bytecode fault injection for Java software
Journal of Systems and Software
A uniform random test data generator for path testing
Journal of Systems and Software
Interprocedural test path evaluation
Computer Languages
Testing and verification aspects of Pascal-like languages
Computer Languages
Analysis of the effects of programming factors on programming effort
Journal of Systems and Software
Functional testing and design abstractions
Journal of Systems and Software
Software development for reliable software systems
Journal of Systems and Software
Evaluating a data abstraction testing system based on formal specifications
Journal of Systems and Software
ACM SIGSOFT Impact Paper Award 2012: Systematic Software Testing: The Korat Approach
Proceedings of the ACM SIGSOFT 20th International Symposium on the Foundations of Software Engineering
Adequate monitoring of service compositions
Proceedings of the 2013 9th Joint Meeting on Foundations of Software Engineering
Hi-index | 0.00 |
This paper examines the theoretical and practical role of testing in software development. We prove a fundamental theorem showing that properly structured tests are capable of demonstrating the absence of errors in a program. The theorem's proof hinges on our definition of test reliability and validity, but its practical utility hinges on being able to show when a test is actually reliable. We explain what makes tests unreliable (for example, we show by example why testing all program statements, predicates, or paths is not usually sufficient to insure test reliability), and we outline a possible approach to developing reliable tests. We also show how the analysis required to define reliable tests can help in checking a program's design and specifications as well as in preventing and detecting implementation errors.