Testing Object-oriented Software
David C. Kung, Pei Hsia, Jerry Gao
Object-oriented programming increases software reusability, extensibility, interoperability, and reliability. Software testing is necessary to realize these benefits by uncovering as many programming errors as possible at a minimum cost. A major challenge to the software engineering community remains how to reduce the cost while improving the quality of software testing. The requirements for testing object-oriented programs differ from those for testing conventional programs.
Testing Object-Oriented Software illustrates these differences and discusses object-oriented software testing problems, focusing on the difficulties and challenges testers face. The text contains of nineteen reprinted papers providing a general framework for class- and system-level testing and examines object-oriented design criteria and high testability metrics. It offers object-oriented testing techniques, ideas and methods for unit testing, and object-oriented program integration-testing strategy.
Readers are shown how to drastically reduce regression test costs, presented with steps for object-oriented testing, and introduced to object-oriented test tools and systems. The book's intended audience includes object-oriented program testers, program developers, software project managers, and researchers working with object-oriented testing.
Table of Contents:
Chapter 1. OO Testing Problems.
Adequate Testing and Object-Oriented Programming (Dewayne E. Perry and Gail E. Kaiser).
Object-Oriented Programming—The Problems of Validation (M.D. Smith and D.J. Robson).
Maintenance Support for Object-Oriented Programs (Norman Wilde and Ross Huitt).
Chapter 2. Specification and Verification.
Design for Testability in Object-Oriented Systems (Robert V. Binder).
Method Sequence Specification and Verification of Classes (Shekhar Kirani and W.T. Tsai).
Chapter 3. Unit Testing and Integration Testing.
A Class Testing Technique Based on Data Bindings (Heechern Kim and Chisu Wu).
Automated Flow Graph-Based Testing of Object-Oriented Software Modules (Allen S. Parrish, et al.).
Object-Oriented Integration Testing (Paul C. Jorgensen and Carl Erickson).
Chapter 4. Regression Testing.
Change Impact Identification in Object-Oriented Software Maintenance (D. Kung, et al.).
Selecting Regression Tests for Object-Oriented Software (Gregg Rothermel and Mary Jean Harrold).
A Technique for the Selective Ravalidation of OO Software (Pei Hsia, et al.).
Chapter 5. Object State Testing.
Object State Testing and Fault Analysis for Reliable Software Systems (D. Kung, et al.).
The State-Based Testing of Object-Oriented Programs (C.D. Turner and D.J. Robson).
ClassBench: A Framework for Automated Class Testing (Daniel Hoffman and Paul Strooper).
Chapter 6. Test Methodology.
Incremental Testing of Object-Oriented Class Structures (Mary Jean Harrold, et al.).
Integrated Object-Oriented Testing and Development Processes (John D. McGregor and Timothy D. Korson).
Chapter 7. Test Tools.
Developing an Object-Oriented Software Testing and Maintenance Environment (David Kung, et al.).
The ASTOOT Approach to Testing Object-Oriented Programs (Roong-Ko Doong and Phyllis G. Frankl).
Automated Testing from Object Models (Robert M. Poston).