I wandered thinking how to test the Cloud

Does the title line sound like something that you have heard before? Yes, remember the English lessons you took during high school days. Yes, i have slightly modified the line "I wandered lonely as a cloud" from the poem "Daffodils" by William Wordsworth. So, what is this article about? Is it about introducing readers to English poets? No. This article is about "Cloud Computing", around which there is a huge buzz in the software industry today. Analysts predict cloud computing to form the next big wave in technology infrastructure and are also talking about lot of other terms such as SaaS(Software as a Service), PaaS(Platform as a Service) etc in conjunction with Cloud Computing.

Now, let me refrain from discussing about Cloud computing in detail since i am oblivious of the nitty gritties. However, i have limited exposure to SaaS, which i understand as a model in which software will be centrally located somewhere in the internet(cloud) as opposed to storing them in local machines.The basic idea is cut down the expenditure on hardware/software.

To give a simple example, lets say there are 3 star hotels in Chennai and all have their own software/hardware to manage their services. Now, Software as a Service is a model where a vendor comes and offers to manage the hardware/software for all these 3 hotels from his premises and thereby enables the hotels to use the software on a demand basis through virtualization and relieves from all the issues related to managing their own infrastructure. Certainly makes life easy, isn't it?

Now what are the challenges in the cloud world particularly when it comes to testing?

Configuration and Customization
Each of the hotel's software can have a different workflow and hence the vendor needs to make sure that when the user for "Hotel X" logs in, he is able to view only the screens pertaining to him. Customization should also be looked at from an Integration testing viewpoint

Security
The SaaS provider needs to ensure that the data of all his clients are maintained properly. He cannot afford to mess with the data.

Monetization
Since software will be used on a demand basis, the charges will be made as per the usage(something like electricity). So, testing also needs to take care of this aspect.

Performance Testing
Clear cut goals with respect to Response Time, Throughput, Maximum load supported should be identified and the same needs to be tested carefully.