BACKGROUND IMAGE: iSTOCK/GETTY IMAGES
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.
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.
What are the security issues at play?
A company's applications need to be secure, but so does the environment they are being tested and hosted on -- the cloud. Know what cloud vulnerabilities are and how to defend against 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.
If a company is testing mobile applications, they should look for a cloud provider that can service all user devices, locations, networks and scenarios. Good cloud providers will also offer reports on how a mobile application is performing so the customer can make appropriate alterations and improvements.
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 know and we will pass them along to one of our experts.
Mobile application testing techniques and tools
Mobile applications: Testing and monitoring using SaaS solutions
Adapting QA, testing to meet mobile application performance demand
Cloud application testing
More on cloud apps
More on AWS
How do you create a workable cloud test strategy?