Object-Oriented Testing in a Product Line Environment
A Practical Guide to Testing Object-Oriented Software focuses on the real-world issues that anise in planning and implementing effective testing for object-oriented and component-based software development. It shows how testing object-oriented software differs from testing procedural software and highlights the unique challenges and opportunities inherent in object-oriented software testing.
The authors reveal how object-oriented software development allows testing to be integrated into each stage of the process-from defining requirements to system integration-resulting in a smoother development process and a higher end quality. As they follow this process, they describe what to test at each stage as well as offer experienced-based testing techniques.
You will find information on such important topics as:
- Testing analysis and design models, including selecting test cases to guide design inspections.
- Testing components, frameworks, and product lines.
- The testing challenges of inheritance and polymorphism.
- How to devise an effective testing strategy.
- Testing classes, including constructing a test driver and test suites.
- Testing object interactions, covering sampling test cases, off-the-shelf components, protocol testing, and test patterns.
- Testing class hierarchies, featuring subclass test requirements.
- Testing distributed objects, including threads, life cycle testing, and Web server testing.
- Testing systems, with information on stress, life cycle, and performance testing.
One comprehensive example runs throughout the book to demonstrate testing techniques for each stage of development. In addition, the book highlights important questions that testers should ask when faced with specific testing tasks.
The authors acknowledge that testing is often viewed as a necessary evil, and that resources allocated to testing are often limited. With that in mind, they present a valuable repertoire of testing techniques from which you can choose those that fit your budget, schedule, and needs.