A test that verifies the behavior of some component of the overall system. This component is still a consequence of one or more design decisions although its behavior may also be traced back to some aspect of the requirements. There is no need for component tests to be readable, recognizable or verifiable by the customer or business domain expert. Contrast this with a customer test which is derived almost entirely from the requirements and which should be verifiable by the customer. And with a unit test which verifies a much smaller component. A component test is somewhere in between.
During test-driven development, the component tests are written after the customer tests are written and the overall design is solidified. They are written as the architectural decisions are made and before the individual units are designed or coded. They are usually automated using a member of the xUnit family.
Copyright © 2003-2008 Gerard Meszaros all rights reserved