Developers will to varying degrees test their code to ensure that it works correctly and is robust.

However, the unit-tested components needs to be tested as a whole in more formalized testing before launching a new solution.

A test manager can devise suites of test cases, each verifying that the solution behaves as intended in a unique scenarios. Since most test runs change the state of the system, the order in which they are executed should be planned carefully.

To create predictable and repeatable states that set the scene for each test case, the system often needs to be loaded with equally carefully devised test data to ensure the correct state before executing a test case.