How is Testing Cloud Based Applications Different From Testing on Premise Applications in QA Clouds
The cloud has been a unique revolutionary force which has driven enterprises, market analysts and end users go "gung ho" about it because of the impact that it has created as an Infrastructure as a Service (IaaS), Software as a Service (SaaS), Platform as a Service (PaaS). Besides this, the Cloud also comes with various deployment models like the private, public, federated and virtual private clouds, making it highly flexible and versatile from a standpoint of meeting business requirements successfully.
I have started to see organizations beginning to adopt clouds for their QA needs primarily for two reasons - either they have a stream of cloud based applications rolling out which they want to validate or to overcome their existing QA infrastructure limitations. Often organizations ask me questions like "Does our testing methodology need to evolve when we need to test applications on the cloud?" and "how is cloud testing different from traditional testing?"
Well let's look at providing some answers to these commonly posed questions.
Testing On-Premise Applications in QA Cloud
Organizations turn to cloud based QA environments to overcome their existing QA infrastructure limitations. In such a scenario, the traditional/on-premise resident applications are tested by deploying them on QA clouds. The cloud is leveraged as an infrastructure-as-a-service (IaaS) model, which is predominantly availed in a private or a public cloud deployment model. The testing methodology would not vary in these cases when on-premise applications need to be tested for functional, performance and security requirements. The QA cloud provides resources for a production like infrastructure and testing tools needed for planning the capacity for an on premise application's performance testing. When an on-premise application is being tested on the cloud, it would also need a performance benchmarking exercise, where the performance of the application in an on-premise production environment or in an on-premise staging environment is benchmarked against the performance of the application in a pre-production QA cloud.
Testing Cloud based Applications in QA Cloud
Organizations use different forms of clouds (IaaS, SaaS, PaaS), and in various combinations, to roll out cloud based applications to gain a competitive edge. Testing cloud based applications include three scenarios :
1) A portion of application is migrating into the cloud,
2) An application has been completely migrated onto the cloud and
The testing methodology has to evolve in all these scenarios and would need to take into account the virtualized infrastructure, network, application business logic, data and end-user experience. Testing cloud based applications requires business workflow testing, exceptions mechanisms, simulating failure scenarios and disaster recovery scenarios. When we include cloud and enterprise application integration scenarios also, then testing would also need to include comprehensive integration testing, API testing and billing mechanism testing (in case of SaaS applications). Scenarios that involve partial or complete migration of an application into the cloud need to be tested for data migration, data security and data privacy. The focus of testing cloud based applications needs to include validating the accuracy of cloud attributes like multi-tenancy, elasticity, security, availability, interoperability and metering in multi-instance loaded environment. Security validation would call for cross site scripting, script injection, user access & roles testing, cookie & session isolation testing and multi-tenancy isolation testing.
We need to remember that there is no single or ideal approach for cloud testing. This is primarily due to the fact that when an organization embarks onto cloud testing, various factors like the cloud architecture design, non-functional and compliance requirements, etc., need to be taken into account to ensure successful and complete testing.