Thursday, March 21, 2013

Cloud Testing – Approach and Process


Small and medium-sized companies for fast secure and scalable IT infrastructure chose to migrate to Cloud Computing, a solution that would help organizations focus on their core business rather than worrying about the investment and maintenance of their business IT infrastructure. Though the solution offers significant benefits, it has its own challenges in terms of security, reliability, and manageability. To mitigate these risks, a rigorous testing is mandatory.

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 resources adroit in different testing skills.

Overview Small and medium-sized companies needed to have fast, secure and scalable IT infrastructure, in order to cope – up with 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. But the solution has its own challenges in terms of security, reliability, and manageability, which 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.

The strategies that testers need to follow while performing testing in a Cloud environment are:

Identify Applicable Testing Types

For this one needs to thoroughly understand cloud characteristics, the business characteristics and the risks/challenges involved.

Some of the quality risks of Cloud computing are Reliability, Flexibility, Multi-tenancy, Self-Healing, Pricing Band on SLA’s, and Location Independence; some of the inherited risks are Data Governance, Data Security, Virtualization Security, Reliability, Monitoring and Manageability. These risks with Cloud computing pose a threat to applications, hence the testing team must understand such threats and accordingly identify the additional amount of testing involved. Also, the team must understand the applicable Cloud models to be tested like Software-as-a-Service (SaaS), Platforms- 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.

The types of testing the team can perform while testing the Cloud are, System Integration Testing (SIT), User Acceptance Testing (UAT), Interoperability Testing, Compatibility Testing, Performance Testing, Load Testing, Stress Testing, Recovery Testing, Security Testing.

Selection of cloud 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, and choosing the right Cloud service provider - the selection of right infrastructure is critical to testing.

Special considerations

Certain general considerations that are common to cloud testing which the tester must focus are, supporting multiple browsers, user session management related issues, testing against security vulnerabilities, in a multi-tenant environment, restricting users to access their data only and so on.

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, which will cover additional testing, improve infrastructure, test environment and the test engineer’s skill set.

Some testing challenges in cloud computing:

  • Dependencies on the Internet – Applications are not installed locally in controlled environments. This makes it harder for testers to replicate the user environment.
  • Security- Since information travels through the Internet, testers have to perform security testing to make sure there is no data leakage when data is sent over the Internet. Wikileaks is an example of threats that we have to prepare for and test before the application can be released to customers.
  • Testing all layers – testing the network connection, server performance, database, and software application adds multiple layers to testing. Testers have to test the communication between the layers, test the connection between the elements, and also plan for the risks. What if the connection breaks mid-way? What if the server is down? What if the software crashes? Testers have to test beyond what they can physically control in their environment.

No comments:

Post a Comment