When I started working in the software industry, software testing was non-existent in many companies and, in other companies, often only rudimentary testing was undertaken by the software developers themselves.
Thankfully software quality assurance has developed into a profession with a large and growing body of knowledge behind it, and an arsenal of powerful tools and techniques at its disposal.
However, I am still amazed at how little software testing goes on in some organizations. Why, in 2013, is this still the case?
Excuses, excuses, excuses
Many people who work in quality assurance will tell you that low quality has significant costs over the long term. However with longer term costs , often the case is “out of sight, out of mind;” it’s much easier to skimp and save on quality costs now and let the future work itself out (hopefully when someone else has to deal with the mess created).
But there are plenty of other reasons for not testing software to the extent that it should be tested:
- Lack of time
- Lack of staff resources
- Lack of hardware or virtual machines
- Lack of software or software licenses
- Delays and hassles in provisioning test environment a timely manner
- Resistance to invest time and money to set up a test environment that is only used periodically.
Unfortunately these conditions are the reality in many organizations today and even more-so in the belt-tightened economies of the post-global financial crisis (GFC). But wouldn’t it be great if there was some way to overcome all or most of these barriers in one fell swoop?
Cloud to the rescue
Cloud computing can be the solution to most of these problems.
The overall strategy is simple:
- Create virtual machine images of the test environment. (In some cases these can even be copies of the live environment, with data scrambling applied where necessary.)
- Deploy these images to the cloud, on an as-needed basis by using a cloud provider such as IBM SmartCloud Enterprise.
- Have your users do testing, run an automated suite of tests, or do both.
- After testing is complete, simply delete the virtual machine images, or just stop the image. Some cloud providers charge only a minimal amount to store non-active virtual machines.
The beauty of this strategy is that it is fast, flexible and cheap. The key benefits include:
- No up-front costs are involved for hardware or software licenses.
- You pay for only the computing resources (hardware, software, and bandwidth) that you use during the testing.
- After the initial VM (or multiple VMs) are created, they can be deployed in a matter of minutes.
- Deployment can be done without having to put in a request to your network admin team.
Really, the only problem that the cloud doesn’t solve is the availability and cost of human testers. My personal tip here is to consider outsourcing your human-powered testing through one of the online outsourcing marketplaces such as Freelancer or Elance, or one of the specialist testing services such as UTest.
So now you really have no excuse for not testing your software properly. Here’s to better quality software!