Planning how to test baselines

Typically, software development teams perform several levels of testing. An initial test, known as a validation test, checks to see that the software builds without errors and appears to work as it should. A more comprehensive type of testing, such as regression testing, takes much longer and is usually performed by a team of software quality engineers.

When you make a new baseline, you need to lock the integration stream to prevent developers from delivering additional changes. This allows you to build and test a static set of files. Because validation tests are not exhaustive, you probably do not need to lock the integration stream for a long time. However, more extensive testing requires substantially more time.

Keeping the integration stream locked for a long time is not a good practice because it prevents developers from delivering completed work. One solution to this problem is to institute the following practice:

  • Create a development stream to be used solely for extensive testing.
  • After you create a new baseline that passes a validation test, your testing team can rebase the designated testing development stream to the new baseline.
  • When the baseline passes the next level of testing, promote it.
  • When you are confident that the baseline is stable, make it the recommended baseline so that developers can rebase their development streams to it.