file that can be replayed against the same or an updated version of the software, allowing a comparison of identical test results. It is important to identify any difference to indicate if regression has occurred.
· CM can help track the baseline of test items (test plan, test design, test cases, test scripts, test results, etc.) so that it is clear which items go together. Effectively, these items can be treated as a release of test items for a project. This helps to improve the integrity of the test items as they relate to the requirements, code, and to each other (e.g., other test items) and can also decrease test effort.
· CM helps control the work on test scripts, which reduces the duplication of effort. Several people may be working on the same test script and copying over each other’s work, which can lead to missing tests. CM ensures that testers are aware of changes as they get version controlled.
· CM technology provides a common repository for test artifacts promoting a standard location. This also promotes reuse when new test items need to be generated, since previous test items can be more easily found.
Understanding that CM can help solve some of the control related challenges of test is a good start. Once we understand this, though, what can CM or test professionals do next?
Steps to Providing Test with Better Control
Test professionals should understand enough about the benefits of CM to request a CM capability to help their test team. CM professionals should be ready and willing to help test teams build a CM capability. When helping a test team build a CM capability, it should be approached in a similar manner to approaching a development organization. Test groups will need similar CM procedures and a CM technology. Below are tasks that may be considered in building a CM capability that is right for test. Many of these tasks are explained in much more detail in the book, “Software Configuration Management Implementation Roadmap”.
· Perform an SCM analysis of the test environment: Identify the needs of the test team. Determine if there is a test tool in place and learn what test items need to be tracked. In particular, learn which test items need to be associated with other test items. Identify if there are any CM procedures currently being used. This task helps provide an understanding of where the test team is today in relation to CM and where they would like to be.
· Develop a CM implementation plan: Based on input from an analysis, outline the tasks needed to build the desired level of CM capability for test. This task helps provide an understanding that this is a planned project with expectations of participation and levels of effort.
· Help select a CM technology: Based on requirements for a CM tool, help the test team to identify the best CM tool. If there is an existing CM infrastructure within the organization, division, or group that can be shared and it fits the Test team’s needs, then consider using this to save time and effort from implementing a CM infrastructure (in fact, it will save considerable time and effort).
· Define a label convention and branching & merging process/procedure. This helps the testers identify the latest (or baselined set of) test items and provides a way to work on concurrent versions of a test item for parallel development needs.
· Define a SCM version control process/procedure: This helps the testers know the expected procedure and