Test Design Patterns


The following test design patterns are presented in Testing Object-Oriented Systems: Models, Patterns, and Tools. Each of these patterns follows the test design pattern template.

Scope Pattern Name Intent
Method Scope Category-Partition (pdf) Design a test suite based on input/output analysis.
Combinational Function Test Design a test suite for behaviors selected by combinational logic.
Recursive Function Test Design a test suite for a recursive method.
Polymorphic Message Test Design a test suite for a client of polymorphic server.
Class Scope Invariant Boundary Test Identify test vectors based on the class invariant.
Non-modal Class Test Design a test suite for a class without sequential constraints.
Modal Class Test Design a test suite for a class with sequential constraints.
Quasi-Modal Class Test Design a test suite for a class with content-determined sequential constraints.
Class Scope Integration Small Pop Order of code/test at method/class scope.
Alpha-Omega Cycle Order of code/test at method/class scope.
Flattened Class Scope Polymorphic Server Test Design a test suite to check LSP compliance of a polymorphic server hierarchy.
Modal Hierarchy Test Design a test suite for a hierarchy of modal classes.
Reusable Components Abstract Class Test Develop and test an implementation of an interface.
Generic Class Test Develop and test an implementation of a parameterized class.
New Framework Test Develop and test a demo application of new framework.
Popular Framework Test Test changes to widely used framework.
Subsystem Class Association Test Design a test suite based on class associations.
Round-trip Scenario Test Design a test suite for aggregate state-based behavior.
Controlled Exception Test Design a test suite to verify exception handling.
Mode Machine Test Design a test suite based on sequentially-constrained stimulus-response scenarios.
Integration Big Bang Integration Try everything at the same time.
Bottom up Integration Integration by dependencies.
Top Down Integration Integration by control hierarchy.
Collaboration Integration Integration by cluster scenarios.
Backbone Integration Hybrid integration of subsystems.
Layer Integration Integration for layered architecture.
Client/Server Integration Integration for client/server architecture.
Distributed Services Integration Integration for distributed architecture.
High Frequency Integration Build and test at frequent, regular intervals.
Application Scope Extended Use Case Test (pdf) Develop testable use cases, design a test suite to cover application input-output relationships.
Covered in CRUD Exercise all basic operations.
Allocate Tests by Frequency Allocate system test effort to maximize operational reliability.
Regression Test Retest All Rerun all tests.
Retest Risky Use Cases Rerun tests of risky code.
Retest Profile Rerun tests by frequency of use.
Retest Changed Code Rerun tests for code that depends on changes.
Retest Within Firewall Rerun tests for code that is impacted by changes.

  Back Home

Copyright 1999, RBSC Corporation. All rights reserved.
Last Rev: 2002 May 02. First Release: 1999 Sep 30