The document discusses how organizations can leverage cloud capabilities for product testing. It outlines the benefits of using cloud testing such as reduced costs, on-demand access to resources, and the ability to test at scale. It also addresses challenges like sharing resources and test environment deployment. The document proposes a step-by-step approach defined by Impetus Technologies to effectively adopt cloud testing based on their test engineering maturity model.
Dev Dives: Streamline document processing with UiPath Studio Web
Leveraging Cloud for Product Testing- Impetus White Paper
1. Leveraging Cloud Capabilities
for Product Testing
W H I T E P A P E R
Abstract
In this white paper, Impetus focuses on how the power of
the Cloud can be harnessed to address the software product
testing challenges faced by organizations.
The paper discusses Cloud Computing capabilities and why
organizations need to consider the Cloud for testing.
It also talks in detail about how a testing team can actually
utilize the strengths and benefits that the Cloud offers and
the characteristics an application must have, to qualify for
Cloud-based testing.
Impetus Technologies, Inc.
www.impetus.com
2. Leveraging Cloud capabilities for product testing
2
Table of Contents
Introduction...........................................................................................................3
Why Cloud for Testing?..........................................................................................3
Is Cloud useful for me during testing?...................................................................4
Challenges in adoption of Cloud for Testing..........................................................6
Operational challenges in Cloud adoption ............................................................7
Step by step approach to leverage cloud capabilities ...........................................8
Summary..............................................................................................................10
3. Leveraging Cloud capabilities for product testing
3
Introduction
Cloud Computing is a model that enables convenient, on-demand access to a
shared pool of configurable computing resources, such as networks, servers,
storage, applications and services. These resources can be rapidly provisioned
and released with minimal management effort or service provider interaction.
Of late, there has been a lot of hype surrounding Cloud Computing and intensive
deliberation on how its capabilities can be exploited.
Every organization, from start-ups, SMEs to the large ones, is considering the
utilization of the Cloud in their product strategies. The Cloud is being adopted
and harnessed for various functionalities in a product development life cycle,
key among them is also software testing.
CXOs, test directors and managers have one big priority today—reducing the
time to plan, install, configure and validate complex test environments, while
improving the quality of testing.
Why Cloud for Testing?
Looking at the multi-faceted demands of the current market, its complexity and
the dynamic nature of the applications, it is obvious that product testing has
become a challenging endeavor. Product Testing teams need to validate highly
scalable requirements of distributed and component-based applications. Here
are some of the main reasons why one should consider cloud for testing.
• Product testing demands intensive capital investments in hardware. For
organizations that either don’t have resources or do not want to have a
direct and dedicated investment in testing infrastructure, the Cloud is
the perfect choice as it fulfills all test environment requirements and
demands.
If Cloud capabilities are exploited effectively, they can help in achieving
enough test coverage while bringing down investment and
configuration costs for any organization. The usage of right environment
for testing will also help in controlling the product costs by enabling
defect detection earlier in the life cycle.
According to a recent industry research, 30 percent of the bugs in
production are due to the incorrect test environment configurations.
The study also indicates that the efforts involved in fixing these defect
leakages are huge.
4. Leveraging Cloud capabilities for product testing
4
• Interestingly, test hardware is not utilized to its optimum capacity after
the software is launched into the market that results in wastage of
resources of any organization. With the Cloud-based rental and pay-as-
you-go model, the testing team is provided with a test lab for the
required timeframe and as soon as the testing is over, the resources are
decommissioned. This really helps organizations to save on capital
expenditure.
• Additionally, organizations can shorten the provisioning time as cloud
enables provisioning of test servers on an on-demand basis. Therefore,
the procurement time taken for test resources is reduced, which cuts
down other administrative costs as well. It is also important to consider
the costs involved in procuring the licenses of the tools. The cost of
tools typically increases with the number of users. Therefore, most
companies do not test applications for the expected number of users,
thereby resulting in their poor performance of the application on
production.
• Cloud Computing encourages elasticity in the application platform. This
implies that the actual resources used by the application may grow or
shrink based on the load on the application. The Cloud makes it possible
to test during the up-scaling and down-scaling of applications without
any intervention from the administrator.
• The Cloud also gives organizations an opportunity to collaborate
without boundaries. Geographically distributed testing teams can
additionally share the same environment and use it for testing
initiatives, 24x7. These environments can also be shared with the
development team for debugging purposes. With the Cloud, test
engineers can now say, “We have tested this software in a real
environment in the Cloud. Here's the defect and here's a link to the
environment which was used for testing.” The developer can access that
URL, to see where the defects are, and fix the same. The Cloud also
removes the back and forth pressure that is usually observed in a
traditional testing environment.
Is Cloud Useful for Me During Testing?
The question that most companies are faced with is, “Is Cloud useful for me
during testing?”
5. Leveraging Cloud capabilities for product testing
5
It has been noticed that the external events such as the Super Bowl, Cyber-
Monday, Tax Day, Valentine’s Day, a drop in the interest rate or in-fact, any
vague news about a celebrity, can suddenly drive unforeseen traffic to any web
application.
However, if the site hosting such applications becomes slow, or worse, crashes
under this load, it is safe to assume that it was not tested with enough users and
the Cloud can come in handy for testing needs.
Software products with complex computational workloads such as tightly
coupled, parallel processes, or the applications that are very sensitive to
network performance can also leverage the Cloud during testing.
Take the instance of Wall Street firms. These run thousands of instances of
complex Monte Carlo simulations at night to determine how to be ready when
the market opens. This implies that for some applications the economic and
agility benefits may be very strong and should be migrated quickly to the Cloud.
In case of the tightly integrated applications with fairly stable usage patterns, it
may not make sense to move to the Cloud.
The Cloud can also play a pivotal role in scenarios where an organization wishes
to leverage its hardware infrastructure and computing resources to perform
testing like performance, load, stress and compatibility for regular applications.
6. Leveraging Cloud capabilities for product testing
6
The Cloud is useful if organizations are looking to test High Performance
Computing (HPC) applications or HPC style workloads. These companies would
usually be operating in verticals such pharmaceuticals, oil exploration, industrial
and automotive design, and media and entertainment.
No matter what the need, organizations must determine the exact reasons why
they have to move to the Cloud and when they have to make this move.
Challenges in Adoption of Cloud for Testing
There are several challenges that organizations can encounter while embracing
the Cloud for software testing. These include:
• Sharing of resources and test environments: The first major pain point
is sharing of resources and test environments. The sharing of the
infrastructure becomes a problem when the same stack of resources is
being accessed by different teams that often results in resource
deadlocks.
• The deployment of builds on various nodes: This is another
problematic area. If the build is deployed manually and on a large
number of nodes, it will involve additional effort in installing the build
on every other node by the testing team. Even the deployment of
testing tools can create problems.
• Execution of test suites on different clusters: A significant challenge is
the execution of test suites on different clusters and monitoring this
activity. As the suite is executed on various nodes, keeping an eye on
the execution status and arriving at a legible consolidated result set
from a cluster of machines becomes a difficult task. The management of
test data with clusters getting up-scaled and down-scaled is another
problem.
7. Leveraging Cloud capabilities for product testing
7
Operational Challenges in Cloud Adoption
Apart from the challenges discussed in the previous section, there are other
operational challenges that are faced by the organizations due to cloud
platforms.
Interoperability: Each public cloud provider has its own architecture,
operating model and pricing mechanism and offer very little
interoperability. This poses a big challenge for companies when they need
to switch vendors. Vendor lock-in, regulatory compliance, privacy, and
security, are among a few customer concerns related to the public Cloud.
Frequent updates: It is also seen that Cloud vendors update their APIs and
release their builds very frequently. This in turn places a demand on the
product teams to keep a check on these changes, and get their products
validated for the Cloud vendors’ builds, as well.
Monitoring: The improper use of Cloud-based test environments can result
in higher costs. Even though some vendors offer pay-as-you-go Cloud
services, this approach can be expensive if the resources are not controlled,
monitored and used efficiently.
System maintenance/updates: Additionally, performance of the Cloud can
have an impact, as sometimes the services are disrupted due to
maintenance or updates by Cloud vendors. As public Clouds are shared by
numerous users, there may be cases where a company might have to wait
for the required bandwidth.
Security: Security is also another critical factor that needs to be addressed.
Recently, the Sony site was hacked and the data of about 100 million user
accounts was compromised. This was the second-biggest data theft to occur
in the US and was carried out using Amazon's EC2 Cloud. Therefore,
security, related to data integrity, is a major concern.
However, despite these bottlenecks, there are several benefits of harnessing the
power of the Cloud and its infrastructure to ensure the correctness of product
architecture, its implementation and configuration.
8. Leveraging Cloud capabilities for product testing
8
Step by Step Approach to Leverage Cloud
Capabilities
Impetus Technologies has designed a custom test approach that can help
organizations to adopt the Cloud for their product testing needs. The test
approach was derived from Impetus’ test engineering maturity model (TEMM),
which defines the key testing activities that are necessary to rightly test any
software product. The model helps resolve the ambiguities that arise during
Software Product Testing.
9. Leveraging Cloud capabilities for product testing
9
The Impetus defined model aims to provide a definitive direction to achieving
better product quality, through a focus on business goals, risks, time and costs.
The model serves as a benchmark for any type of testing, including functional
and nonfunctional testing and its defined set of activities can show the way to
an organization’s testing teams.
According to Impetus, companies can adopt its step-by-step approach to
leverage Cloud capabilities as showcased in the figure below.