You are on page 1of 3

Testing Considerations for Application Migration to Cloud

Computing
Cloud computing adds a new dimension to conventional models of testing services delivery.
Gartner highlights the five attributes of cloud computing as service-based, scalable and elastic,
shared, metered by use, uses internet technologies (1). Cloud computing characteristics such as
virtualization, on-demand scale up/down of infrastructure resources, self service capabilities and
pay per use pricing models are allowing cloud platform vendors to provide infrastructure and
software services at lower costs to organizations utilizing cloud computing services (2).

There is a growing trend of organizations taking up cloud computing initiatives to consolidate


infrastructure that is geographically spread in multiple data centers to a single cloud platform
vendor. Minimizing upfront infrastructure investment, ability to scale up/down quickly, high
availability and disaster recovery are the other key factors contributing to early cloud adoption.
Organizations are interested in having greater visibility into how infrastructure resources are
consumed, aligning infrastructure needs to actual demand and lowering infrastructure
management and support costs. Organizations should be aware of the application considerations
for migration to cloud platforms to ensure a smooth transition to cloud environment (3).

Testing considerations and focus areas


The following are the key considerations that are helpful in locating areas that would require
focus during test planning:

 Application changes and on-premise interfaces - Moving an application to the cloud


may require changes to the application to suit with the environment available on the
cloud platform. For example, if the application is running on Solaris on-premise and the
operating systems available on the cloud platform are RedHat Linux and Suse Linux, the
application will require additional testing on the cloud platform. In addition, requirements
such as authentication against on-premise active directory and new interfaces built with
on-premise systems lead to additional areas for application testing.
 Data migration - The data migrated from on-premise to cloud to take advantage of the
storage services available on the cloud platform for additional storage needs, backup and
archival requires new test cases to be developed as part of test planning.
 Security - Organizations may decide to enforce access to application features utilizing
on-premise user directories for authentication and authorization. In addition, web
applications being migrated from with-in the firewall to a public internet on cloud require
transport security mechanisms such as SSL. Data stored in cloud storage may have to be
encrypted for security and compliance needs. The best practice is to secure the data in
transit as well as the data at rest (4). Security testing of these new features has to be
incorporated in to overall test planning.
 Performance - The application needs to be load and stress tested on the cloud platform
to ensure that system response is as per SLAs. As cloud platforms are often used for
consolidating infrastructure in multiple regions to a specific region, special attention is
needed to ensure that system performance is at optimum levels. This will require testing
the latency in system response in comparison to response from on-premise environment
for taking appropriate steps for performance improvement.
 Scalability - Applications are usually migrated to cloud to take advantage of the
elasticity features provided by cloud platforms for quick ramp up/down of computing
resources to align with actual demand. The ability of the cloud environment to meet the
on-demand needs of the application requires careful planning of the test scenarios and
load for performance testing.
 Availability and Disaster Recovery - Load balancers and elastic computing features for
auto-provisioning play a critical role in ensuring high availability on the cloud. The
ability of the cloud environment to withstand peak load and server failures has to be
tested prior to releasing the application for producing use. Cloud platforms such as
Amazon EC2 allow placing multiple instances in different availability zones in a region
to protect applications from failure of a single location (5). The availability of the
application has to be tested by simulating the failure of an application instance in a
location. Also, data recovery mechanisms in place have to be tested for ensuring proper
disaster recovery.

Cloud computing aspects conducive to testing


Testing an application being migrated to a cloud platform requires the test environment to be
setup in the cloud environment. The following are some aspects of cloud computing that are
conducive for setting up test environments on cloud platforms:

 Reduce the lead-time for procuring infrastructure - Less time to provision


infrastructure resources using self-service interfaces
 Optimal use of hardware resources - In-house test environments require hardware,
which most of the time goes unused. With cloud, the resources can be scaled up or down
to keep pace with demand which leads to efficient utilization of resources
 Pay-per-use - With cloud, there is no need to budget for extra hardware. Additional
resources can be procured easily for the test environment using pay per use models

 Quick resource ramp-up - Cloud is ideal for quickly ramping up resources for the
following testing needs: Testing an application on multiple operating systems, multiple
browser types and multiple software versions (JVM, App Server etc.)

 Setting-up multiple test regions - Cloud makes it cost-effective for creating separate test
regions for system testing. Often, minimal infrastructure is enough for testing functional
aspects of an app location. Large infrastructure needed to simulate production
environment can be procured quickly for the duration of testing
 Reduce software licensing costs - On-demand testing tools on cloud are cost effective
and the pay per use models provide relief from costly one-time licensing of testing tools
(6)

Enhancements to Testing Methodology for Cloud Testing


The enhancements proposed to the conventional software testing methodology are based on our
experience with deploying and testing J2EE, .Net applications, and commercial as well as open
source packages on Amazon EC2 and Microsoft Azure cloud platforms.
A typical cloud testing methodology is comprised of the following phases: Test Planning, Test
Design, Cloud Setup, Test Execution, Remediation and Closure. The methodology for testing
applications on the cloud platform requires additional activities in the following phases:

 Cloud Setup - The setup of test environment on the cloud requires familiarity of the
target cloud platform. Testing teams need training on key functions such as setting up a
cloud account, provisioning cloud resources (Virtual Machines (VMs), storage, load
balancers, software licenses). An understating of the cloud monitoring tools is essential to
monitor system response and resource usage.
 Test Execution - Based on the test requirements for the application, additional resources
may have to be procured for computing as well as storage. For example, performance
testing of the application will require a true representation of the production data for
effective results. It may also require additional VMs to simulate computing support for
handling larger loads. Testing application security will require understanding of the
firewall rules, routing of requests and data access rules.
 Closure - Cloud platforms provide storage at low cost and are ideal for archiving test
cases, test results and test data. The VMs used for testing can be saved as images in cloud
storage and can be restored later to recreate the test environment quickly for subsequent
releases. Once the testing phase is complete, all the cloud resources can be released to
keep the overall testing costs low.

Conclusion
Testing applications that are being migrated to the cloud requires a careful assessment of the
testing considerations from the perspective of what application changes are undertaken for cloud
deployment. This will help testing members in understanding application areas that need specific
focus during testing on the cloud platform. In addition, knowledge of the cloud platform
capabilities for scalability, availability and disaster recovery is useful for test planning. Testing
teams should get acquainted with the cloud platform for accessing the test environment,
monitoring and perform all test related activities. An understanding of the innovations cloud
computing brings to testing services, especially test environment on the cloud and cloud based
testing tools, will enable better utilization of the cloud computing capabilities by organizations
for effective gains.

References

1. Gartner Highlights Five Attributes of Cloud Computing,


http://www.gartner.com/it/page.jsp?id=1035013
2. The Five Characteristics of Cloud Computing, Maria Spínola, Cloud Computing Journal,
http://cloudcomputing.sys-con.com/node/1087426
3. Application Migration Considerations for Cloud Computing, Rajagopal Sattaluri, Cloud
Computing Journal, http://cloudcomputing.sys-con.com/node/1686320
4. Architecting for the Cloud: Best Practices,
http://media.amazonwebservices.com/AWS_Cloud_Best_Practices.pdf
5. Amazon Elastic Computing Cloud, Features - Multiple Locations,
http://aws.amazon.com/ec2/
6. HP and Amazon Web Services, http://aws.amazon.com/hp/