White Paper
Approach to Cloud Testing
Last Updated: 7th May, 2009
Introduction
Small and medium-sized companies needed to have fast, secure and scalable IT infrastructure, in order to cope–up with their business needs. But these companies lack the ability to have this setup in-premise. The reason could be the huge capital investment that goes into the growing needs of the IT infrastructure, staff and the expertise to administer. This becomes a burden and prevents them from focusing on their core business. Hence, emerged the need to migrate to Cloud computing, a solution to rescue organizations to focus on their core business rather than worrying about the investment and maintenance of their business IT infrastructure. But the solution has its own challenges in terms of security, reliability, and manageability, which the organizations should focus on by rigorous testing. Third-party independent testing service providers with niche capabilities in the areas of performance testing, security testing, reliability testing, experience in virtualization technologies and investments in hardware infrastructure are better suited to do this work.
Identify the various types of testing to be performed Selection of cloud test environment Special considerations
Identify Applicable Testing Types
The main concern over cloud testing is to identify the applicable testing types for Cloud computing based applications. Identifying the type of testing to be performed requires an understanding of cloud characteristics and the risks/challenges involved. Organization’s testing department should target to simulate those challenges on the applications by choosing the right testing strategy.
Understanding the business characteristics of Cloud
computing presents a list of product risks to be focused. Reviews of the identified product risks provide a good insight into what type of testing needs to be performed.
Some of the quality risks of Cloud computing include
Importance of Cloud Testing
The traditional software testing performed for onpremise deployment may not be sufficient to certify in a cloud environment. On-premise deployed single-tenant applications will need to support multi-tenant in a cloud environment and it requires a change in our perspective to how we test the software. Migrating to a cloud environment requires an understanding of the new business needs and the inherited challenges associated with it. Accordingly, the scope of the software testing also needs to be widened to fully cover those business requirements and the inherited risks associated with cloud computing. In order to meet these testing requirements, organizations need to be equipped with additional resources. These include the additional infrastructure such as different testing skills required by test engineers to perform the job of testing in a cloud.
Reliability, Flexibility, Multi-tenancy, Self healing, Pricing Band on SLA’s and Location Independence.
The inherited risks associated with Cloud computing
poses a threat to applications and it is the responsibility of testing team to understand such threats and accordingly identify the additional amount of testing involved. Some of the inherited risks associated with Cloud computing include Data Governance, Data Security, Virtualization Security, Reliability, Monitoring and Manageability.
Understanding the applicable Cloud models to be
tested like Software-as-a-Service (SaaS), Platformas-a-Service (PaaS), Infrastructure-as-a-Service (IaaS) etc. The various services offered to customers via these models play an important role in deciding the applicable testing types to be used for Cloud testing.
Types of Cloud Testing
The following testing types are applicable in general for Cloud testing. S.No Type of testing
System Integration
Step-by-step Guide to Cloud Testing
Organizations benefit much if they document the test strategy before initiating the testing. Here is one such list with a focus on additional test resources required by organizations to be able to perform software testing in a cloud environment:
Target To ensure the developed cloud solution meets the functional requirements
1
Testing (SIT)
User Acceptance
Testing (UAT)
AppLabs.com
App_WhitePaper_Approach_to_Cloud_Testing_1v00 Page 2 © 2009 AppLabs
Interoperability
2
Testing
Compatibility
Testing
Performance Testing Load Testing
To ensure that migrating to alternative cloud service providers works well To ensure meeting the business requirements specific to cloud computing To ensure data recovery from crashes, hardware failures in a cloud environment To ensure meeting the Application/Data security requirements
Conclusion
To mitigate the risks and issues introduced by Cloud computing, the testing teams should develop a good strategy to test their applications in a Cloud environment that will help the organizations meet their business needs. The testing strategy should discuss the scope of software testing to meet the business requirements and characteristics of Cloud computing. The scope of software testing needs to be widened to cover additional testing to be performed and to improve infrastructure, test environment and test engineer’s skill set.
4
Stress Testing Recovery Testing
5
Security Testing
Choosing the Test Environment
The infrastructure requirements for test environment is another important consideration for Cloud testing. The two possible options for choosing the right test environment are:
Simulating in-house Cloud test environment Choose the right Cloud service provider
There are only few Cloud service providers available in the market today. Whether it is in-house setup or Cloud, the selection of right infrastructure is critical to testing.
Special Considerations
Apart from identifying applicable testing types, testing team must focus on general considerations that are common to Cloud testing. These are not the specific requirements of the application to be tested, but it becomes important by virtue of being in a Cloud environment. Here is the partial list.
Supporting multiple browsers User session management related issues Test against security vulnerabilities In a multi-tenant environment, restricting users to
access their data only Test engineer’s skill set also plays a vital role in meeting the Cloud testing requirements. A test engineer should possess the required knowledge on various types of testing as well as the tools used to perform testing.
AppLabs.com
App_WhitePaper_Approach_to_Cloud_Testing_1v00 Page © 2009 AppLabs