Testing Services provides a platform for QA professionals to discuss and gain insights in to the business value delivered by testing, the best practices and processes that drive it and the emergence of new technologies that will shape the future of this profession.

« Collaborative Testing Effort for Improved Quality | Main | What are the challenges in SaaS Testing? »

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

3)    An application is completely built on the cloud itself

 

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.

Comments

Interesting indeed. Very nicely articulated post. I agree with you that 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. Thank you for sharing this post.

Cloud testing is the process of testing the performance, scalability and reliability of Web or mobile applications in a cloud computing environment. Testers can also scale application workloads to thousands or millions of concurrent users to find performance issues before the application goes live. compared to a traditional on-premises testing environment, cloud-based testing offers users pay-per-use pricing, flexibility and reduced time to market. Built-in collaboration tools allow geographically dispersed development teams to work in the cloud testing environment 24/7.

Post a comment

(If you haven't left a comment here before, you may need to be approved by the site owner before your comment will appear. Until then, it won't appear on the entry. Thanks for waiting.)

Please key in the two words you see in the box to validate your identity as an authentic user and reduce spam.

Subscribe to this blog's feed

Follow us on

Infosys on Twitter