What is Test Environments Management?
Wikipedia describes it like this: Test Environment Management (TEM) is a function in the software delivery process that aids the software testing cycle by providing valid, stable, and usable test environments to execute test scenarios or replicate bugs.
To take this one step further, we'd describe it as follows:
Test Environment Management is the function of understanding your Test Environments* and applying that knowledge, with appropriate governance and services to ensure that each testing environment is available for IT Projects, the DevTest community, and the overall software development lifecycle.
Common Testing Environments
*IT & Test Environments, that may include:
- Development Environments, for development.
Tip: It is not uncommon for developers to have their Testing Environment on their operating system. However, later phases of testing generally benefit from people sharing the testing environment.
- System Testing Environments, for isolated system tests.
- Integration Testing Environments, to check connectivity.
- User Acceptance Test Environment, for business sign-off.
- Performance Testing Environment, for performance tests.
Tip: The Performance Testing Environment is often the most expensive test environment due to its need for extra resources to accommodate Performance Tests like Stress, Volume & Load Testing.
- Security Testing Environment, for pen-testing.
- Staging Environment, a test bed for a final walkthrough &
- Production Environment
One could also say:
- Testing environments are necessary for software development and testing before changes are made to the production environment. Note: Changes made in testing environments should not impact or affect production systems.
- Testing environments are, or should be, built to match as closely as possible the structure, configuration, data, and code of production. Testing environments are created for various purposes such as performance testing, user acceptance testing (UAT), integration testing, etc.
- Test Environments management is the process of handling the creation, destruction, and maintenance of these test environments. This process can be manual or automated. Automated test environment management tools can save time and effort by provisioning and configuring a Testing Environment on demand.
Test Environment Management is a broad subject and covers many facets often including:
- Configuration Management
Configuration management (CM) is a systems engineering process for establishing and maintaining consistency of a product's performance, functional, and physical attributes with its requirements, design, and operational information throughout its life. The CM process is widely used by hardware engineers, software engineers, and system engineers. Configuration Management is ultimately a way of understanding what your production environment and testing environment look like.
- Test Environment Planning & Coordination
The Test Environment Management (TEM) process is responsible for the management and scheduling of test environment events. This includes changing, deploying, and configuring test environments. TEM also ensures that all testing-related activities are carried out in a coordinated and timely manner.
- Test Environment Booking Management
Capturing the demand of Development Teams, Software Testing Teams, and Projects to ensure early fulfillment of testing environment requirements and avoidance of systems not being fit for purpose and/or the risk of contention.
- Test Environments Service Support
Avoiding the chaos in our Non-Production Environments by ensuring production environment ITSM-like controls. For example Change, Incident & Support ticketing.
- Test Environment Status Accounting & Reporting
Providing real-time test environment insights so we can value stream and continuously improve our Test Environment protocols.
- Test Data Management
The process of managing our test data so our test environments can better support software testing. And, where possible avoid using production data and introducing unwanted data security concerns.
- Test Environment & Lab Orchestration
Promoting standardizing our test environment operations through Standard Operating Procedures(SOPs) / Runsheets and use of Test Environment automation.
TEM is a critical process for any organization that relies on software development and testing. Without proper management, test environments, or your test bed, can quickly become chaotic and unusable.
TEM ensures that our testing environments are available when needed, consistent with production environments, and properly configured for the type of testing being conducted. TEM also includes Test Data Management, to ensure that test data is properly managed and secured. TEM is a complex process, but proper management is essential for any organization that relies on software development and testing.