Wednesday, 18 May 2016

Performance testing through the cloud



Performance has been the most important quality attribute with respect to the business efficiency and user acceptance. In terms of modern cloud based solutions, the response times and utilization rates required are crucial from the end users point of view. 



Performance testing is not only important for traditional IT systems, but also for cloud in various respects. Clouds are highly attractive IT systems. They are highly scalable. With increasing number of users, it utilizes a greater number of computers in order to ensure high performance. Performance testing has always been dependant on sophisticated tools. 

It needs to generate high volumes of test data to create a substantial workload and be more realistic. Hence, performance testing requires a complex and expensive test infrastructure.
    
The cloud is perfectly suitable in providing this type of infrastructure. So, even if the components behind performance testing are independent of the location of the system under test, the process itself benefits considerably from  cloud. 

The different kinds of interaction between cloud and testing can be mapped into four types. As per utilization cloud can be distinguished into four types:

-      Cloud as system under test: The cloud itself as a software product needs to be tested. This implies that the cloud itself as a system under test is deployed and executed within the cloud.

-      Cloud as testware utility: The cloud or services which accessible via the cloud can be utilized for testing other other IT systems.

-      Cloud as test environment: A software product or an application can be executed within cloud for testing purposes. Here the system under test is deployed and tested within the cloud, but subsequent operations may not be continued inside the cloud.

-      Cloud as test logistics: Here the cloud is used as a service in the sense of its typical cloud characteristics.

The cloud is becoming increasingly important as a production platform. Hence systems are now directly developed directly in the cloud. As cloud computing continues to develop, performance and load based testing can be counted as cloud offerings. Cloud based testing changes the way tests are performed.  Cloud based testing services change the testing methodologies of http and https applications through its following three characteristics:

-      Testing at scale: the cloud based testing provides a cost-effective means of testing applications at scale as compared to lab environment that can only simulate a small subset of the production environment. Thus, cloud based testing can test the application against the actual number of expected users.

-      Testing globally: Could bast testing enables testing the application on a global scale, thereby recreating the regions from which the users are accessing the application. This is usually done through partnerships with other cloud providers which allow customers to run loadtests constituting millions of concurrent users from different continents.

-      Testing production apps: Could testing can also be used for testing production apps. Testing in production implies testing at maximum capacity. Different problems then arise which do not show up in medium capacity.     This gives us a realistic picture of of what can actually go wrong and the potential adjustments that can be made before they occur.

Conclusion:

Cloud testing can be utilized as IaaS, PaaS or SaaS regarding the type of service the cloud provides. They are not necessarily independent, but can they can be modeled into a layered architecture as per requirement. Generally, clients use  SaaS via Web Browsers, Mobile apps and thin clients. Companies like Google, Netsuite, salesforce.com have been the real drivers behind the cloud computing revolution.