Performance Testing in the Cloud and From the Cloud

Writing by Ralph Decker on Tuesday, 1 of September, 2009 at 9:53 am

The resources for cloud computing are generally made available through applications with web interfaces that provide functionality to allocate, configure, and maintain the resources. Hence cloud computing adds some ambiguity to the systems hosting your applications causing some concerns around performance and security. And for this reason any cloud integration should have a comprehensive performance testing plan.

Firstly have an end to end understanding of the application performance; ranging from knowing the requirements to understanding the impact on the systems. And with cloud some additional unknowns that need to be considered and planned for are response times, impact on the systems and most importantly the shared resources.

Once deployed into the Cloud, the only practical testing model is the external testing model – that is driving load into the application from a secondary location over the internet. This can easily provide information about response time compared to traffic or load. There will be a few hurdles to work out with the impact on the systems, but you can get a pretty good indication if carefully planned and coordinated. To measure and understand the impact of traffic on computer systems you must understand the environment and the infrastructure, generate realistic traffic, analyze the capabilities and the limitation of the system under test, and find the remedy for performance related defects.

The cloud is a shared environment. This must be taken into consideration for performance aspects of your applications that you deploy into the cloud. Few considerations in this regard are, who you are sharing the resources with, how much of resource is being consumed, how it is impacting the performance of your application, and is usage and performance consistent.

Performance monitoring is going to be essential to assure that your application remains responsive. Constant and on-going monitoring is a good way to verify that the performance continues to remain stable. For this you need to monitor over time, watch for degradation, do changes in performance correspond to changes in your application. Unexplained changes in performance may be attributed to, shared resources and cloud provisioning tool

Several factors that can lead to inadequate performance testing are, lack of requirements, lack of understanding the fundamentals of performance testing, misinformation provided by tool and simulator vendors, limited budget or funding and enormity of the task.

The application system evolved as per the organizational and end user need. It eventually became an integral part of business, banking, trading, shopping, and even entertainment, demanding perfect performance. Testing in the cloud adds testing capabilities that were not available in the past like multiple geographic locations, lots of unique real IP addresses, to formulate traffic patterns. Most performance testing clouds are built out in controlled cloud environments. To perform a controlled cloud testing, access to the full systems, know where the load originates- IP Address, geographic locations, control the distribution of the load, use same test system/systems for retesting, perfect coordination of the user traffic, and correlate the load with end-user response times and the impact of the systems under test.

Comments (2)

Category: Cloud Computing, Performance Testing, Software Testing

Approach to Cloud Testing

Writing by Sateesh Nallam on Friday, 14 of August, 2009 at 5:03 am

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.

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.

Comments (5)

Category: Cloud Computing, Industry, Software Testing

Hone your skills its cloud all the way

Writing by AppLabs on Monday, 8 of June, 2009 at 12:19 pm

Cloud computing, though is a viable alternative, firms get skeptic when security, reliability and manageability come into the picture. Hence a rigorous testing is mandated. So testers hone your skills, cause Gartner predicts that by 2012 80% of fortune 1000 enterprises will pay for some cloud computing service, while 30% of them will pay for cloud computing infrastructure.

Leave a comment

Category: Software Testing, Uncategorized