Explains why testing must be model-based and provides in-depth coverage of techniques to develop testable models from state machines, combinational logic, and the Unified Modeling Language (UML). DLC: Object-oriented programming (Computer science).
More than ever, mission-critical and business-critical applications depend on object-oriented (OO) software. Testing techniques tailored to the unique challenges of OO technology are necessary to achieve high reliability and quality. Testing Object-Oriented Systems: Models, Patterns, and Tools is an authoritative guide to designing and automating test suites for OO applications.
This comprehensive book explains why testing must be model-based and provides in-depth coverage of techniques to develop testable models from state machines, combinational logic, and the Unified Modeling Language (UML). It introduces the test design pattern and presents 37 patterns that explain how to design responsibility-based test suites, how to tailor integration and regression testing for OO code, how to test reusable components and frameworks, and how to develop highly effective test suites from use cases.
Effective testing must be automated and must leverage object technology. The author describes how to design and code specification-based assertions to offset testability losses due to inheritance and polymorphism. Fifteen micro-patterns present oracle strategies--practical solutions for one of the hardest problems in test design. Seventeen design patterns explain how to automate your test suites with a coherent OO test harness framework.
The author provides thorough coverage of testing issues such as:
The bug hazards of OO programming and differences from testing procedural code
How to design responsibility-based tests for classes, clusters, and subsystems using class invariants, interface data flow models, hierarchic state machines, class associations, and scenario analysis
How to support reuse by effective testing of abstract classes, generic classes, components, and frameworks
How to choose an integration strategy that supports iterative and incremental development
How to achieve comprehensive system testing with testable use cases
How to choose a regression test approach
How to develop expected test results and evaluate the post-test state of an object
How to automate testing with assertions, OO test drivers, stubs, and test frameworks
Real-world experience, world-class best practices, and the latest research in object-oriented testing are included. Practical examples illustrate test design and test automation for Ada 95, C++, Eiffel, Java, Objective-C, and Smalltalk. The UML is used throughout, but the test design patterns apply to systems developed with any OO language or methodology.
Author(s): Robert V. Binder
Edition: 1
Publisher: Addison-Wesley Professional
Year: 1999
Language: English
Commentary: Made from item with MD5 ef1fd12e0f0ac03aa413b5416bf3c08c
Pages: 1191
Tags: Testing; Software Testing; UML; Test Models; State Machines; Reusable Components; Regression Testing; Test Automation; Assertions; Test Harness Design
Brief Contents
Part I Preliminaries .........................................................1
Chapter 1 A Small Challenge ................................................. 3
Chapter 2 How to Use This Book ............................................. 11
Chapter 3 Testing: A Brief introduction .................................... 41
Chapter 4 With the Necessory Changes: Testing and Objed-oriented Softwaren . 63
Part II Models ............................................................ 109
Chapter 5 Test Models ..................................................... 111
Chapter 6 Combinational Models ............................................ 121
Chapter 7 State Machines .................................................. 175
Chapter 8 A Tester’s Guide to the UML ..................................... 269
Part III Patterns ......................................................... 315
Chapter 9 Results-oriented Test Strategy .................................. 317
Chapter 10 Classes ........................................................ 347
Chapter 11 Reusable Components ............................................ 525
Chapter 12 Subsystems ..................................................... 563
Chapter 13 Integration .................................................... 627
Chapter 14 Application Systems ............................................ 715
Chapter 15 Regression Testing ............................................. 755
Part IV Tools ............................................................. 799
Chapter 16 Test Automation ................................................ 801
Chapter 17 Assertions ..................................................... 807
Chapter 18 Oracles ........................................................ 917
Chapter 19 Test Harness Design ............................................ 957
Appendix ...................................................... 1065
Glossary ...................................................... 1073
References .................................................... 1119
Index ......................................................... 1143