Testing Infrastructure


The testing infrastructure consists of the testing activities, events, tasks and processes that immediately support automated, as well as manual, software testing. The stronger the infrastructure the more it provides for stability, continuity and reliability of the automated testing process.
The testing infrastructure includes:
• Test Plan
• Test cases
• Baseline test data
• A process to refresh or roll back baseline data
• Dedicated test environment, i.e. stable back end and front end
• Dedicated test lab
• Integration group and process
• Test case database, to track and update both automated and manual tests
• A way to prioritize, or rank, test cases per test cycle
• Coverage analysis metrics and process
• Defect tracking database
• Risk management metrics/process (McCabe tools if possible)
• Version control system
• Configuration management process
• A method/process/tool for tracing requirement to test cases
• Metrics to measure improvement

The testing infrastructure serves many purposes, such as:
• Having a place to run automated tests, in unattended mode, on a regular bases
• A dedicated test environment to prevent conflicts between on-going manual and automated testing
• A process for tracking results of test cases, both those that pass or fail
• A way of reporting test coverage levels
• Ensuring that expected results remain consistent across test runs
• A test lab with dedicated machines for automation enables a single automation test suite to conduct multi-user and stress testing

It is important to remember that it is not necessary to have all the infrastructure components in place in the beginning to be successful. Prioritize the list, add components gradually, over time, so the current culture has time to adapt and integrate the changes. Experience has proven it takes an entire year to integrate one major process, plus one or two minor components into the culture.

Again, based on experience, start by creating a dedicated test environment and standardizing test plans and test cases. This, along with a well-structured automated testing system will go a long way toward succeeding in automation.