Cloud Testing aims to test applications in a cloud infrastructure. Cloud is the concept of making an application or platform available to users on the go. It can be thought of as a process of disseminating the resources using a network, with the help of remote servers, to enable storage, managing and processing of data.
The idea behind cloud is to break the shackles of being confined to a local storage with limited accessibility or managing capability. With the advent of cloud computing, development, testing and every other software application related activities have extended their reach to cloud based services/environment.
Cloud testing is the one in which applications use cloud environment for testing to perform real world implementations using cloud technologies and solutions. The role of testing is the same as in any other form of testing which aims at evaluating the performance of the application in question. Testing on cloud aims at security, availability, interoperability and recovery aspects of a web application.
Types of Cloud Testing :
- Cloud/Saas Oriented Testing : This testing is performed by vendors who provide cloud services. The objective is to assure quality of the services offered in a cloud. The testing may comprise of unit testing, regression testing, performance and scalability evaluation.
- Online based application testing on a cloud : This testing is aimed at online applications on a cloud with the use of heavy-traffic in a cloud set up.
- Cloud based application testing over clouds : This testing is to ensure quality once an application is deployed. The objective of this testing is to perform system level integration, function validation, scalability measurement with various cloud technologies.
Cloud Computing Testing Types :
- Stress :This kind of test is to ensure the degree of endurance of the system, that is, to what extent the system is able to perform under excessive pressure. Simulators are used to create peak load situations for conducting stress test.
- Load :Load involves creation of heavy traffic, to analyse the system's response to such load conditions.
- Performance :By performance testing we can analyse whether the system is able to deliver the expected function, and also to verify how far is it able to handle varying loads.
- Functional :This is to simply test the system in a cloud environment in accordance with the requirement specifications.
- Compatibility :This test is to check the system with various operating system environments. This can be done using cloud testing services.
- Browser Performance :Different browser platforms are used to check the compatibility of the application with the browser.
- Latency :It is the measurement of latency(speed) between the action and the corresponding response after deployment of the system on the cloud.
Tools for Cloud Testing :
Following are the various types of tools available for performing cloud testing of applications.
- Cloud Test - It is a cloud based application for web and mobile's performance and load tests.
- SOA Test - SOAtest tool is a product of Parasoft, intended for testing API-driven applications like cloud, mobile apps etc. It includes functional, regression, integration, system, security, simulation, run time error detection, web UI testing, web services compliance testing and load testing.
- HP LoadRunner - This is a test suite from HP. It is used for measuring system behaviour and performance under load. This tool is capable of simulating many users at the same time using application software. We can record the proceedings of the test and later analyse the performance of various components.
- Microsoft Azure - This platform is created by Microsoft enables building, deployment and management of applications and services through a global network of Microsoft's data centres.
Cloud Testing Challenges :
- Cloud Service Challenge - The major issue in accessing cloud services is that organisations are trying to directly access the cloud services rather than having a local storage. Cloud services should ideally be a local service than a remote service. There is also another issue of cloud service assurance, in order to assure timely delivery of services.
- Security Challenge - In cloud testing, data is transferred over the internet so it is prone to security attacks , so it is the duty of testers to ensure utmost security to protect leakage of data.
- Layered Testing Challenge - This challenge is about dealing with various layers of the cloud environment. In this cloud testing has many layers within it like database, checking server performance, network connection and software application. The second challenge lies in the fact that how the communication between the layers are maintained. Testers are required to test the communication between the layers and check if any risk is involved.
- Lack of universal standards and Limited Infrastructure - There lacks a standardised way of applying accessing or applying public cloud services. Each cloud service provider have their own architecture, operating models, pricing mechanisms. So it poses a problem when a company wishes to switch from one vendor to another.
- Obtain knowledge, guidance and staff expertise - Lack of expertise in using cloud testing services. The vendors that provide the cloud services, may not have the necessary staff to provide training. So implementing cloud testing without proper knowledge have been a challenge.
- Procuring cloud services on On-demand basis - Providing on-demand services is in itself a challenge as it involves cost and quantity issues. These cost issues are due to fluctuation in the costs which is associated with incremental cloud services. The second type of challenge is the dependency on applications, remotely installed. In case of applications being remotely installed, it is sometimes difficult to set up the same pattern of environment.
Objectives of cloud testing :
- The major objective of cloud testing is to ensure quality of cloud based applications by assessing their functional services, business processes, and system performance.
- To analyse a software application in a cloud based environment with respect to its performance, security, scalability and measurement in terms of economy.
- To check services offered by cloud environment.
- To test compatibility between the software application and various cloud based components, to ascertain their inter-operability.