Cloud computing has boomed in recent years, and the world of software development has caught on with the phenomenon. The technology might not be right for every enterprise, but cloud is not just a passing trend. Software testing in the cloud has opened up new opportunities for development and has also presented new challenges.

Here are some frequently asked questions for those looking to learn about cloud tools for software testing.

What are the benefits of testing and running enterprise software in the cloud?

Cloud tools possess some great options for developers and testers. They have the same basic capabilities as in-house testing and more. The key advantage is that testing in the cloud offers scalability.

It is important that developers evaluate testing in the cloud through the context of the company they work for.

Scalability allows companies of all sizes to handle larger projects than they normally could, but it is an even bigger advantage for small- and medium-sized businesses. Development teams can obtain the infrastructure to match additional testing staff services when an extra testing push becomes necessary. This saves companies time and money that would have been spent on equipment and personnel that might have only been utilized for a specific project and a short amount of time.

In addition to scalability, cloud infrastructure enables easier testing and monitoring of the production environment. Applications can be tested for the exact number of actual users. Extra testing for global applications is also possible. Internationalization and localization methods allow companies to detect where users are when they interact with an application and tailor the user experience accordingly. In addition, cloud performance testing done in the actual production environment provides development teams with a rich understanding of potential issues and needed fixes.

With the cloud, test teams don't have to wait on IT to begin working. In an article by Rob Barry, users reported that issues were solved faster once partnering with a virtual lab. A load is taken off quality assurance professionals when they no longer have to deal with physical machines or interfacing with IT. In addition, IT is able to spend more of their time addressing other -- potentially more important -- issues.

What are the risks or downsides?

The risks surrounding testing in the cloud revolve around responsibility and capability. There is a loss of control that comes when the tool is no longer in-house. Having an outside agency provision the development environments frees up IT, but it is only a positive if the vendor moves quickly to fix any issues. If problems are left unsolved, IT cannot come to the rescue because they do not have the machines in front of them.

While scalability is the prime advantage of cloud infrastructure, it also presents some unknowns. The scale rate needed for a given project may be unclear and could lead to higher costs. The convenience of creating new virtual machines without an official approval process could lead to unexpected expenses, especially if automated methods for scaling back down aren't in place. To prevent any issues that might arise from this, test teams can and should experiment with cloud services and research the cloud provider's policies regarding billing disputes.

Other cloud computing challenges involve functional testing and data management, security and privacy concerns, and potential availability issues. Organizations must decide which risks they are willing to face. For some, the financial cost of testing in the cloud might be too exorbitant. With any of the risks mentioned, it is important that companies understand the capabilities of cloud and know how to optimize them.

Decision makers should consider what data will be accessible in the cloud, particularly if it includes any customer information. Whatever security can be implemented on the company side, whether it is a firewall or something else, should be addressed.

How does a company pick a strong test tool?

Developers looking to adopt a cloud test tool should choose based on the strengths of cloud. Pick a tool based on ease of use and scalability, writes Sheryl Kitchen, Ph.D. Cost is tertiary, although its importance may vary company to company.

Theresa Lanowitz, founder and analyst of voke, told SoftwareQuality.com contributor Crystal Bedell a few things developers should look for when deciding on a test tools provider. Understanding licensing, knowing how to use the tool and trying it out before making a purchase will save companies time, money and frustrations.

One option for mobile development tools is Amazon Web Services (AWS). AWS tools offer many customer-friendly features, including auto-scaling. This function combats some of the unknowns that come with scalability. Microsoft Azure and Google provide similar performance with their mobile development tools, but do not cater to the customer as much as AWS does.

It is also important that developers evaluate testing in the cloud through the context of the company they work for. Decision makers should know what the corporation needs before jumping into using cloud testing tools. SoftwareQuality.com expert Yvette Francino recommends that companies first consider their availability requirements, performance needs and scalability needs.

What is the role of APM in cloud testing?

Application performance monitoring (APM) is an integral part of software testing. This process becomes more convoluted with the introduction of cloud computing. APM tools that tracked information about in-house applications have trouble gathering insight into applications that have been moved to the cloud. An APM tool built to work for cloud-hosted applications, however, may also work in-house. Therefore, if a company had an APM tool and migrated testing to the cloud, they likely need a new tool that can better monitor what is happening in the cloud.

Running a performance test through an APM tool also helps companies work out bugs before users encounter them, thus saving the organizations time and money in the long run. The value of APM is so apparent that some cloud vendors are starting to offer services that provide monitoring for the other cloud tools they offer. Amazon, for example, has Amazon CloudWatch, which monitors AWS resources.

What is an SLA and why is it important?

A service-level agreement (SLA) is a check on cloud providers because it binds them to a certain standard of performance and availability. For customers, SLAs are important for addressing security issues and solidifying the reliability and competence of a cloud provider. They help the customer know what to expect, and some even offer credit for an unmet benchmark.

Most SLAs are set in stone, but some can be tailored for specific companies and their needs. Francino recommends that a development team understand a potential cloud provider's SLA before committing to a cloud tool. They should know the pricing and performance expectations, and customize the SLA if possible.

Do you have any questions about software testing in the cloud? Let us knowand we will pass them along to one of our experts.

3 comments

Register

Login

Forgot your password?

Your password has been sent to:

By submitting you agree to receive email from TechTarget and its partners. If you reside outside of the United States, you consent to having your personal data transferred to and processed in the United States. Privacy

Please create a username to comment.

Testing in the cloud also means virtualization/abstracting away much of the hardware layer. That's good in that it allows the tester(s) to make an image and spawn dozens of duplicates for parallel testing with a simplified underpinning. It does, however, have a glaring issue, in that a lot of people still have dedicated machines, and those machines have a litany of variable hardware components. Virtualization doesn't give you the option of swapping out components to really see what happens on systems. Granted, if the system under test in the could is entirely meant to be in the cloud, then its not such a big deal. However, do realize that video cards, network cards, I/O controllers, etc. are not all 100% identical. it's still possible that your app may behave in ways your virtual environments don't take into account.

Hi Michael, thanks for the words of warning. Does the same thing go for Web applications, where most of the application lives on a server? I mean, assuming 1 app on 1 server we should be able to configure cloud servers so our test environments match that 1 production environment, right?

James, under most circumstances, web applications are not as hardware dependent as dedicated applications (think richly graphical video games). Most web applications that utilize common standards and tools (HTML5, CSS3, Flash, etc.) can certainly be spun up in a virtual environment, and from there, the interaction would be on par if not identical to being served from a dedicated hardware box. This does not include challenges related to multi database servers residing on different machine for redundancy for example, but even those can be put into virtualization schemes if configured and monitored correctly.