The Enterprise Architect team designs the test environment based on the production environment blueprint and future test requirements. Designing and building a new test environment exactly like production would not be feasible for the Enterprise Architect team given the amount of burden it would have on the overall infrastructure and operations costs. All the stakeholders would have to discuss and take a judicious call on this activity.
The support team performs day to day operational activities and aims at maximizing the overall value of the quality by ensuring maximum availability of test environments to the testing team. Test environment support team should always follow the process standards and look for continuous improvements.
c) The Good, The Better and The Best – Program Governance & Continuous Improvement
The success of an enterprise level test environment is based on how robust the program governance model is. The Governance team will have to understand the business requirement at the early stage of the release and plan accordingly. An effective program governance team will understand the business requirement better and align the test phases with test environment proactively. The key activities for program governance team are to -
- Define the enterprise test environment strategy
- Plan, Steer and Review the best practices & Standardize at enterprise level
- Orchestrate and drive towards matured test environment model
- Manage the demand and ensure effective utilization of the test environment assets & resources
- Establish a COE for continuous improvement
3) Process Optimization and Operations Excellence
a) Consolidation, Simplification and Reuse – Test Environment Assets Utilization
The traditional approach of adding more and more hardware and software without exploiting the existing capacity and requirement burdens an organization with both cost and operational issues. Consolidating environment estate is an exercise which consists of working information of all assets, owners, contact details, vendor details, physical location details, etc
This is a tedious exercise and till date one of the biggest challenges at the enterprise level. However this is a ‘one-off’ activity, after which test environment team would have to perform the review periodically. After consolidating the assets, the organization will have to focus on creating application constellation based on patterns and should know how to simplify the test environment landscape. Sharing test environments and ensuring that resources, skills knowledge and assets are reused will minimize the operations cost.
b) Improving efficiency – Process optimization and standardization
In most cases, the reason for a poor quality product is because the Test Environment Management wasn’t given the highest priority. Another important reason for poor output is due to the undefined process that the Test Environment Management goes through. This is unlike the Production Environment where processes are defined and thus implemented efficiently.
To efficiently manage the test environments, it has become necessary to define, implement and adhere to the best practices. Few organizations have reached the highest level of maturity by replicating best practices adopted from production environments and measuring the performance of the Test Environment Management service by using metrics and enforcing SLAs for continuous improvements and better accountability.
c) Thinking Ahead – Demand Forecasting and Capacity Planning
Demand forecasting and capacity planning are big challenges for most organizations since there is no visibility on the test environment estate and the availability of environment usage trends. In most cases, environment unavailability is due to poor or no assessment on demand forecasting and capacity planning. The central program governance team will have to take ownership and assist the other stakeholders by providing the right information like -
- Projects Funnel
- Historic data for same size of project or release (trends)
- Existing capacity
d) Working together – Orchestration through Collaboration
In many organizations, cross team collaboration is the biggest challenge that affects the on time environment provisioning, incident resolution and results in multiple environmental conflicts and delays. The test environment team will have to maintain skilled resources to orchestrate test environment activities by collaborating with other teams and business units. The support team has to -
- Define, implement and manage access to test all test environments (White List)
- Develop batch jobs to support the Test Environment Management including automation where practical and effective
- Define and establish maintenance windows for Test Environment Management including upgrades to the technology and application stacks and patches as needed and approved
- Perform environment bookings, provision tracking, incident resolution support, etc.
- Clean and Refresh the test environments
e) An Early Bird Catches the Worm – Involve the Test Environment Team early on
The test environment team has to be involved at the earliest stage of the project and would have to collect the detailed requirements. Otherwise lack of time, incomplete requirements and deficiency of owners would lead to the collapse of the team and thereby creating a chaotic situation.
- An effective Test Environment Management would require a well – structured requirement discussion, elaboration, validation and definition. This would ensure -
- The delivery of environment definition document
- Request for a new environment (in the case of a new environment build) design and build
- Shortening of the test environment provisioning time
- Right environment availability at the right time
f) The Right Test Data at The Right time – Managing Test Data
Test data management is an essential activity and occupies a vital role in managing test environments successfully. At an enterprise level, test data requests are not always limited to component or platform level. In most cases, the test data is a necessary requirement for E – 2 – E test case planning and generation. In such situations, fragmented test data cannot fulfill the test data requests.
The centralized test data management team should have specialists who are proficient in security compliance, business domain, database and overall knowledge on test scenarios. These specialists should also have the expertise in generating test data as per test requirements. The key functionalities of a successful test data management are to -
- Define and implement test data management process and procedures
- Identify tools for test data inquiry, generation, validation and obfuscation
- Plan and implement Test data mining, test data coverage, test data sharing (no collisions)
- Plan for Reusable test data and data archiving
a) Minimizing Dependencies – Automating Test Environment Activities.
Most of the activities across test environment lifecycle can be automated by using a single tool or through multiple tools. Well proven tools are available for auto provisioning, auto deployments and test data management. To improve the turnaround time for test environment provisioning, few organizations have put their money on automation strategies like Cloud technology and Service Virtualization.
By automating the provisioning process on cloud, the organization can fulfill ad-hoc environment requests and ensure ‘on – time’ test environment availability with lesser cost and effort.
A new organizations have succeeded in automating day to day Test Environment Management activities like test environment booking, incident management, asset management, knowledgebase management and service request fulfillment. Automation of design, build, manage and refresh test environments is a key enabler for the organization to manage the test environments effectively.
Having understood the challenges of test environment, it becomes essential for an organization to establish a best in class practice at the enterprise level; thus marking the onset of the transformation. The recommendations mentioned earlier will ensure that the organization achieves an elegant Test Environment Management model and in the long run, will enhance quality. It guarantees effective utilization of assets and resources with the availability of the right test environment at the right time. This will not only help in reducing the cost to operations but also improve quality.
As organizations embark on a journey of establishing a dedicated test environment management service; they will have to perform due-diligence and follow the above recommendation in a phased manner. To ensure success, organizations will have to invest more on test environments so as to implement the best practices and automate activities.