Through my previous blog in this series, we looked into the different strategic aspects of testing that need to be considered while migrating to the cloud. In this one, let us understand the three key structured processes that organizations can use as a quick checklist while migrating to cloud based testing.
1. Define a business case for migration:
- Understand operational and architectural risk and design. Assessment of current organizational readiness to adopt cloud is essential. This includes understanding organization’s standards and policies that may restrict utilizing the features of cloud. Similarly, it is important to know the cloud deployment model being selected (implementation models) and service model being preferred.
- Define the key drivers for cloud migration – reduction of CAPEX, faster time to market, offering self service capabilities to clients, increasing client base through global access etc., are some of the prime drivers. Your test metrics must be defined to measure adherence to these business drivers.
- Identify hurdles that can impact testing. For example, cloud based applications should follow SOA standards, if this requires changes to code / architecture; you should plan to review and modify test cases accordingly. Similarly, test environment management should be thoroughly planned (on demand provisioning, utilization, release and measuring cost of utilizing services / licenses). Benchmark of performance / response times should be revisited as they may differ once hosted on the cloud. SLA’s should be upfront defined for establishing trigger points for automatic scale-up and scale-down of infrastructure. Also consideration of data privacy standards is essential. Adequate consideration of time / effort required to make test cases cloud ready (cloud test cases should be de-coupled / independent of each other), modification of existing test process to suite cloud based deployment and testing, consideration of tools and their associated costs for cloud testing are equally important. Training team members on fundamentals of cloud deployment, basics of cloud environment and technology are necessary.
2. Implement cloud migration in a phased manner:
- Plan for additional time to cater to the needs of infrastructure set up / access rights, team training and test case re-design.
- Start small, plan for a Pilot and migrate gradually while measuring benefits and making modification to approach as you move to full-fledged cloud adoption. For critical applications, ensure detailed functional testing is done on in-house test environment along with cloud environment testing. This will eliminate costly failures while the team is getting accustomed to the new environment.
- Standardize cloud testing process once confidence is gained.
3. Plan and implement testing techniques:
- Usage of Boundary Value Analysis (BVA) test technique is recommended especially for designing and testing performance test scenarios. Specifically this technique will be handy when designing tests for validating automatic scale-up and scale-down tests of test environment.
- Failure Mode & Effect Analysis (FMEA) is an important technique to systematically prevent problems. Depending on situations, FMEA can be become an overkill, hence this technique will be used to validate failures of critical business scenarios. Steps to implement FMEA include, identifying possible failure modes, determining possible causes of failure or trigger points, determining impact of failure and validate that adequate measures exist to prevent the failure.
- Search, Create, Read, Update & Delete (SCRUD) is another technique used to test basic functions of persistent storage. Specifically useful in the context of cloud based applications that have significant data related read / write workflows and output based on analytics, SCRUD helps systematically validate E2E business workflows.
- Behaviour based testing or process simulation is another important technique that can be applied in the context of cloud based testing. Using this technique, a very important function / process in the application is deliberately failed and impact of that failure is analysed on all dependent function or process. Objective is to validate that the exception management scenarios kick off and the process recovers gracefully.
While BAU tests are run if the test infrastructure is already deployed on cloud, it is recommended that the above structured process is adopted for organization planning to migrate to cloud based testing.
Also, look out for my next blog on how test environments plays a major role while migrating to a cloud based testing.