Testing is a vital part of the end to end release cycle as it acts to assure the quality of the change that will be made to the production environment, yet is very much dependent of the quality of the environments that it uses. Environment management is a critical function for assuring the quality of releases.
Are you having trouble with changes to your production environment?
Are your releases causing major incidents or not realising the benefits that you want?
Are you identifying defects late on in your delivery cycle?
Do you spend a lot of time investigating and reworking your releases?
Failures of changes and releases can cause significant issues for the business that is the recipient of them. Delays in the provision of new functionality, or major incidents as a result of a release, can cause businesses to lose reputation or competitive edge. Testing is a vital part of the end to end release cycle as it acts to assure the quality of the change that will be made to the production environment, yet is very much dependent of the quality of the environments that it uses.
Testing teams today are challenged with unstable, fragmented environments, due in part to the pace of ever-changing business needs, and the majority of testers’ time can be wasted on fixing issues with their environments, or troubleshooting defects that are the result of environmental issues. Establishing the right controls for the management of the testing environment is an essential component of an effective and efficient software testing process.
In most projects, test environments tend to be managed by a combination of resources from development and production support teams, with no dedicated ownership. Due to a lack of accountability, there is no clear guidance on how the environments have to be configured, managed and maintained, emphasising the need for a test environment management strategy.
Today, ineffective management of test environment services coupled with a lack of ownership leads to significant business issues, including delivery delays, defects in releases and major incidents causing service outages. This is exacerbated by partially implemented agile methodologies, intended to deliver change quickly, but reliant on more traditional release and operational processes.
Given the importance of software in today’s organisation, providing businesses with a competitive edge, it is essential for organisations to have test environments that they can rely on.
It is ideal to have at least one production-like test environment with all the interfaces and connectivity available in it, including all necessary components to build and run the application, in which testing can be carried out prior to production go-live.
Consistent environments can be achieved in a variety of ways:
- All environments, as part of the delivery cycle, should use the same components (system, software) to maintain consistency with the production environment (although sometimes this is not realistic, due to costs and the requirement to carry out parallel development and testing).
- Consistency across all environments used for development, build and unit test, with any variations clearly documented with the implications for testing understood and communicated.
- Maintain version control of all components (server, workstation configurations etc.)
- Conduct technical check of applications to ensure the environment stability after every deployment, and update all design and architecture documentation appropriately.
- Centralized storage of the development packages, to ensure that the deployed packages are all sourced from a single place.
- Developing a strategy to support multiple versions of same components released as part of parallel releases.
- Automate deployment activities (server, application etc.) to reduce the risk of errors that are inherent in manual activities
- Identifying and documenting all application dependencies, and ensuring that interfaces are either replicated or stubs are provided to support integration testing
- Tracking changes to the environments and utilising a robust dedicated change management process for the test environments that links to the production change processes.
In order to provide the necessary glitch-free, standardised test environments organisations must invest in dedicated Test Environment Management (TEM) team. This will ensure that the correct test environments can be up and running as, and when, required, and provide the controls so only those who should be accessing the environments do so.
TEM is a function in the software delivery process which aids the software testing cycle by providing a validated, stable and usable test environment to execute the test scenarios or replicate and investigate defects.
The activities that the TEM function will undertake include:
- Maintaining a central repository of all test environments, including current versions and connectivity details
- Allocation of test environments to teams as required.
- Creation of new test environments as required.
- Monitoring of all test environments to ensure they are available and performing as expected
- Liaising with project teams to ensure that there is appropriate cost control in place for test environments
- Deleting / updating outdated test environments, recovering resources
- Automation of all activities, including provisioning, deployment and data load activities
- Preliminary investigation of issues on the environment and coordination of issue resolution
- Analysing data for environment issues, identifying trends and taking pro-active steps to resolve issues / co-coordinating for a long-term fix.
Implementing resource management, strategic planning, process optimisation and automation, as part of a Test Environment Management strategy, will help organisations to improve cost effectiveness of solution deployments, while enhancing quality of production releases, leading to increased customer satisfaction, and providing the business with a competitive edge.
If you would like to find out how iCore can help you implement or improve your Environment Management or your Service Transition function, then get in touch on 020 3821 1252 or email info@icore-ltd.com.