Discipline: Test
This discipline explains how to provide feedback about the maturing system by designing, implementing, running, and evaluating tests.
Relationships
Main Description

The purpose of this discipline is to:

  • Provide early and frequent feedback about whether the system satisfies the requirements
  • Objectively measure progress in small increments
  • Identify issues with the solution, increasing the probability that the system will behave correctly
  • 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 as possible

The Test discipline is iterative and incremental. It applies the strategy of "test early and test often" to retire risks as early as possible 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.