Discipline: Test
This discipline defines the minimal set of tasks required to plan, implement, run and evaluate the testing of a system.
Relationships
Main Description

The purpose of this discipline is to:

  • Find and document defects.
  • Validate and prove the assumptions made in design and requirement specifications through concrete demonstration.
  • Validate that the software product works as designed.
  • Validate that the requirements are implemented appropriately.

A good test effort is based on the philosophy of test early and test often. In addition, it is driven by questions such as:

  • How could this software break?
  • In what possible situations could this software fail to work predictably?

Testing challenges the assumptions, risks, and uncertainty inherent in the work of other disciplines, and addresses those concerns using concrete demonstration and impartial evaluation.

The Test discipline is related to the other disciplines in the following ways:

  • The Requirements discipline captures requirements for the software product, which is one of the primary inputs for identifying what tests to perform.
  • The Analysis and Design discipline determines the appropriate design for the software product, which is another important input for identifying what tests to perform.
  • The Implementation discipline produces builds of the software product that are validated by the Test discipline. Within an iteration, multiple builds will be tested - typically one per test cycle.
  • The Project Management discipline plans the project and the necessary work in each iteration. Described in an Iteration Plan, this artifact is an important input used when you define the correct evaluation mission for the test effort.
  • The Configuration and Change Management discipline controls changes within the project. The test effort verifies that each change has been completed appropriately. Test assets are kept under configuration management.