Component Testing with Intelligent Test
(919) 858-8300 x29
Component testing is the act of subdividing an object-oriented software system into units of particular granularity, applying
stimuli to the component’s interface and validating the correct responses to those stimuli, in the form of either a state
change or reaction in the component, or elsewhere in the system.
Often, component testing is performed by developers who’s primary mental focus is that of the system under test and
component tests to be performed. In most cases, the test case architecture, if any, evolves as an afterthought, driven
mostly by the tests themselves. Some developers who have been through this process more than once write their own
In the last few years, design patterns have become a currency for communicating common problems and their solutions
within a context. Testing is no exception. Publications such as [Binder 99, McGregor 99, Firesmith 96, Beck 94] have
documented some common design solutions to component test automation problems in terms of design patterns.
This article presents a set of design patterns commonly encountered when creating automated test frameworks and
application domain specific test cases, and introduces the notion of test artifacts as a test component architectural model
for implementing those patterns.
This article begins by presenting several patterns for automated component test framework design, some familiar and
some not, with implementation strategies. It then shifts focus from test framework design to test case design. And briefly
applies the solutions discussed earlier as a basis for test case implementation.
Common component test design questions
The challenge to test framework developers is to recognize the common problems and associated implementation
activities, to the extent that a scalable and easily maintainable automated test architecture can