BACKGROUND IMAGE: iSTOCK/GETTY IMAGES
As our organization shifts from on-premises hardware to cloud-based infrastructure, what changes can we expect in our software testing?
If you are building a software application in a cloud-based infrastructure, software developers will require the same capabilities they used for in-house development, just in the cloud. Resources include development, testing and production environments; the ability to manage source code, track bugs and share documentation; version control; functional, load and stress testing; and deployment.
There are a number of companies that offer cloud-based code repositories for both open source and commercial projects. In addition, you can find reasonably priced cloud-based bug-tracking software suitable for small development teams.
There is great promise in cloud-based testing of new software applications. This is because you can scale up or down without having to invest in the infrastructure to build out a full-scale test environment.
Let's say you want to test a platform that you expect to support 1,000 to 10,000 concurrent users (or maybe more), but you don't want to invest in that sort of infrastructure upfront. All you would need to do is purchase the compute resources as you need them and scale back when your tests are completed. With a cloud provider such as Amazon Web Services, you could easily and quickly set up a large-scale test environment for as long as you need, which would be very cost effective.
With cloud-based infrastructure, smaller companies might find that the bottleneck in their testing is the number of quality assurance professionals they can afford. There are crowdsourced testing services that smaller companies and even startups can take advantage of. These services have the testing resources and head count that can meet business requirements. Testing resources include functional coverage, regression testing, exploratory testing, usability testing and load testing. These crowdsourced services can even assist in the test and management of the plan.
There are advantages and disadvantages to shifting from on-premises to the cloud. One advantage of cloud is faster time to market. There are no infrastructure procurement hurdles, and human resources with the required skills for testing can be obtained on an as-needed basis. This saves companies upfront capital expenditures and the lag time involved in hiring specialized resources in-house.
The main disadvantages stem from the use of a shared environment. Watch out for possible security breaches, loss of control due to outsourcing and confidentiality issues. Overall, as an organization moves from in-house to the cloud, software development may require new tooling and techniques for software testing, but the final process should be far more cost effective than in-house development.