In my previous blog of this series, we looked into the three key structured processes that demystified the migration to cloud based testing. In this one, let us understand the role of test environments in such migrations.
In a cloud environment, due to the availability of infrastructure, it is best to have the test environment closely simulating the production environment. This includes hardware / software selection, systems integration (like CMS, DB systems, email systems, etc.) and a process definition for code update. It is recommended that versioned code is deployed on test environments, thoroughly tested and certified code moves to production environment. Similarly patches to production should first be tested on the test environment before deployment.
While migrating to the cloud for the first time, it is advisable to perform functional test of the applications on a non-cloud environment where all potential functional defects are rectified and then the code is deployed on the test environment on cloud. This helps in eliminating transition failures. Once the team has gained sufficient knowledge of the cloud environment, deployment process and the test process, non-cloud environment can be gradually eliminated.
As steps for test environment, following are some of the key aspects to be considered:
- Significant focus should be on data migration followed by migration to the new test environment
- Start with data migration tests – this will be governed by the same principles that govern the typical ETL testing. Focus on data quality, data corruption or data loss, data sensitivity, application performance and validation of conversion rules
- Run tests to validate interfaces to all systems are correctly configured (e.g.: email, CMS, etc.)
- Validate access to cloud environment through a series of tests focusing on authentication and authorization (roles and privileges)
- Configure administration of the test environment (rules of elasticity / scalability, notifications, deployment, tools access etc.)
- Run tests to ensure test team can access test environment without issues
- Ensure adequate attention is provided for Test environment provisioning, Test environment availability and Test environment maintenance
Cloud environment will significantly improve the capabilities of test environment management and boost overall testing capabilities.
Also, look out for my next blog, where I will share my experience of implementing a smarter approach to functional testing as part of the cloud hosting strategy.