Cloud Computing and Testing Cloud based Applications
Cloud Computing is all about running your application in shared data centre. Cloud of online resources… comprises of SAAS, Platform as a service (PAAS), Infrastructure as a service (IAAS), Centralisation of data, applications and processing power.
Testing cloud based applications include three major scenarios :
1) Area of application is migrating into the cloud,
2) Application has been completely migrated onto the cloud
3) 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.
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.
Testing “Cloud” applications should be tested as though you would test any existing web application with a few added test cases to test the additional “Cloud” features depending on your application e.g.
Dynamic scaling – You would want to test that the application can dynamically scale up and down, with no loss of data and end user connectivity.
Automated provisioning – For apps that provision new services automatically when a new user signs up, you would want to test this process, as well as the reverse when a user leaves the service.
Device Synchronisation – If the service is like Dropbox, or iCloud, then there may be device to device synchronisation issues that need to be tested, particularly recovery situations when a sync is disrupted and incomplete and needs to be restarted.
Cloud computing has made available two very useful technologies to the masses
This creates new opportunities for testers to test quickly and efficiently. The challenges would be test around the edges of these services. Some of things to look are:
1.Elastic clouds (automatic provisioning of computing power and memory)
4.Synchronization (across devices and services)
There is no direct or ideal approach for cloud testing. To ensure complete testing, various factors like the cloud architecture design, non-functional and compliance requirements, etc. should to be taken care.
Please feel free to post queries or share your views related to above.