The purpose of this discipline is to:
- Provide early and frequent feedback about whether the system satisfies
Objectively measure progress in small increments
Identify issues with the solution
Provide assurance that changes to the system do not introduce new defects
Improve velocity by facilitating the discovery of issues with requirements, designs, and implementations as early
The Test discipline is iterative and incremental. It applies the strategy
of "test early and test often" to retire risks as early in the system's lifecycle
Testing occurs in each iteration of the lifecycle, beginning with the earliest
builds of the system. In fact, it is common for one iteration to have many test
cycles, depending on the frequency of new builds.
Testing asks the question: "What does the solution have to do for
us to consider a requirement implemented?" Tests elaborate on the requirements
with specific conditions of satisfaction that the solution must meet.
This discipline challenges the assumptions, risks, and uncertainty inherent
in the development of highly technical artifacts and addresses those concerns
by using concrete demonstration and impartial evaluation.
The Test discipline relates to the other disciplines in the following ways:
The Requirements discipline identifies the intent of the system. Testing
elaborates on the requirements with detailed tests that measure how the system supports the requirements.
- The Development
discipline creates incremental builds of the system that the Test discipline
evaluates. In each iteration, testing provides objective feedback. Effective
testing enables developers to focus on implementing new functionality and
improving the design of the system.
- The Project Management discipline plans the overall project and the scope of work
for each iteration. The Test discipline provides an objective measure of progress,
which enables adaptive planning.