Cloud testing is a form of software testing in which web applications use cloud computing environments (a “cloud”) to simulate real-world user traffic.
Cloud testing uses cloud infrastructure for software testing. Organizations pursuing testing in general and load, performance testing and production service monitoring in particular are challenged by several problems like limited test budget, meeting deadlines, high costs per test, large number of test cases, and little or no reuse of tests and geographical distribution of users add to the challenges. Moreover, ensuring high quality service delivery and avoiding outages requires testing in one’s datacenter, outside the data-center, or both. Cloud Testing is the solution to all these problems. Effective unlimited storage, quick availability of the infrastructure with scalability, flexibility and availability of distributed testing environment reduce the execution time of testing of large applications and lead to cost-effective solutions.
Cloud Models
There are three models of Cloud Computing.
- Infrastructure as a Service (IaaS): This is the most fundamental layer which forms the building block of the cloud. It mainly comprises of physical resources such as Storage, Network devices, computing servers, etc. All these computing resources are available on demand, where a user pays for it as per his usage.
- Platform as a Service (PaaS): The central layer in the cloud Is the platform. Here there is no control over the underlying infrastructure, but you can access the deployed applications. Hence this provides the entire run-time environment on demand which could be a development or a test environment. Hence in this model, most commonly you would have a VM that contains the complete environment like OS, required middleware, etc. available when you need it.
- Software as a Service (SaaS): The topmost layer here is the application layer, which will generally visible to any user. Here, applications/products are available to the users on demand via the internet. Hence instead of having to acquire the license for a particular user, this proves to be the most cost-effective way of making sure that the license is always in use. Examples of this are Gmail, Google Docs, Photoshop, etc.
Types of Cloud
There are 3 types of cloud formations namely Public, Private and Hybrid clouds:
- Public clouds are the ones, where the services are available to everyone, where the resources are allocated and provisioned dynamically as per the request.
- Private clouds are generally managed within firewall rules of a particular organization and are available only to the users within the company.
- Hybrid clouds are a mixture of both private and public clouds. Organizations can decide what services they want to expose to everyone and what services they want to expose only to the users within the organization.
Testing the Cloud
- SaaS or Cloud-oriented Testing: This type of testing is usually performed by cloud or SaaS vendors. The primary objective is to assure the quality of the provided service functions offered in a cloud or a SaaS program. Testing performed in this environment is integration, functional, security, unit, system function validation and Regression Testing as well as performance and scalability evaluation.
- Online based application testing on a cloud: Online application vendors perform this testing that checks performance and Functional Testing of the cloud-based services. When applications are connected with legacy systems, the quality of the connectivity between the legacy system and under test application on a cloud is validated.
- Cloud-based application testing over clouds: To check the quality of a cloud-based application across different clouds this type of testing is performed.
Types of cloud testing
- Stress – Stress Test is used to determine ability of application to maintain a certain level of effectiveness beyond breaking point. It is essential for any application to work even under excessive stress and maintain stability. Stress testing assures this by creating peak loads using simulators. But the cost of creating such scenarios is enormous. Instead of investing capital in building on-premises testing environments, cloud testing offers an affordable and scalable alternative.
- Load – Load testing of an application involves creation of heavy user traffic, and measuring its response. There is also a need to tune the performance of any application to meet certain standards. However a number of tools are available for that purpose.
- Performance – Finding out thresholds, bottlenecks & limitations is a part of performance testing. For this, testing performance under a particular workload is necessary. By using cloud testing, it is easy to create such environment and vary the nature of traffic on-demand. This effectively reduces cost and time by simulating thousands of geographically targeted users.
- Functional – Functional testing of both internet and non-internet applications can be performed using cloud testing. The process of verification against specifications or system requirements is carried out in the cloud instead of on-site software testing.
- Compatibility – Using cloud environment, instances of different Operating Systems can be created on demand, making compatibility testing effortless.
- Browser performance – To verify application’s support for various browser types and performance in each type can be accomplished with ease. Various tools enable automated website testing from the cloud.
- Latency – Cloud testing is utilized to measure the latency between the action and the corresponding response for any application after deploying it on cloud.
Cloud Testing Steps
Companies simulate real world Web users by using cloud testing services that are provided by cloud service vendors such as Advaltis, Compuware, HP, Keynote Systems, Neotys, RadView and SOASTA. Once user scenarios are developed and the test is designed, these service providers leverage cloud servers (provided by cloud platform vendors such as Amazon.com, Google, Rackspace, Microsoft, etc.) to generate web traffic that originates from around the world. Once the test is complete, the cloud service providers deliver results and analytics back to corporate IT professionals through real-time dashboards for a complete analysis of how their applications and the internet will perform during peak volumes.
Guidelines
- Understanding a platform provider’s elasticity model/dynamic configuration method
- Staying abreast of the provider’s evolving monitoring services and Service Level Agreements (SLAs)
- Potentially engaging the service provider as an ongoing operations partner if producing commercial off-the-shelf (COTS) software
- Being willing to be used as a case study by the cloud service provider. The latter may lead to cost reductions.