Six quick ways to lower the cost of software testing
By Aldo Rall, principal consultant, IndigoCube
As with many things, when it comes to developing software, cost has always been a sensitive (and sometimes contentious) issue. A recent study conducted by World Quality Report (see www.worldqualityreport.com) showed an increase in spending on software testing - from 18% in 2012 up to 23% in 2013. The report also found that businesses worldwide are increasingly demanding cost justification and optimisation of software testing on projects.
Although this seems simple enough, test professionals find it very difficult to justify the cost of testing. Testing by nature (if it is allowed to be) is a highly heuristic skill, with numerous intangibles that are difficult to quantify as metrics (and ultimately, cost). For the purposes of this article, we'll just focus on six quick ways (although more exist) to cut testing costs. The easiest place to start is to consider the reduction of waste in the test process and test activities without incurring risk, says Aldo Rall, principal consultant, IndigoCube.
1. Cut documentation to a minimum - Documenting tests, maintaining and reviewing them are labour intensive at best and pure drudgery at worst. It is also expensive to document reams of tests, with no apparent benefits. Some thoughts to consider here: Is it worth it to document every step that the tester needs to follow? Is the testing focused on getting a view of the quality of a product or documenting minutely detailed test steps (because the governance policy says so) in order to run a test?
2. Eliminate being "blocked" - Being or acting "blocked" by issues (a project or bug) outside testing is a gross waste of testing resources. Some testers stop the whole bus, and wait with folded arms if they are being blocked by one thing. Since it is impossible to test everything, testing will always have something else that needs to be done. Consider what else can be done to generate value and focus on that while you wait for something else to be unblocked.
3. Test early - This has been rhetoric for many years, but still holds true in today's development environments. It has been empirically shown that finding bugs earlier reduces cost over the project life cycle. There are a multitude of ways in which testing can happen earlier; some of these are: incremental feature-based releases, pair testing, static analysis and evaluations.
4. Eliminate context-switching - Switching contexts incurs costs. This cost lies in the time the person requires to close out one context, and engage with the next context. The more that happens, the less real work gets done on each individual context. This applies to testers who work on multiple projects. Sometimes it is not possible to eliminate it altogether, but consider having the context switching happen over natural break periods (think starting and stopping work for the day, or weekly or iterative cycles).
5. Ask the team to identify waste - One of the best places to start looking for waste is to ask the people who perform the work. Just because something has been done a certain way for 20 years, does not mean it is relevant (or cost effective) any more. The people who perform these tasks will be very quick to tell you where to really cut down on wasteful tasks or practices. To follow through, make sure these ideas are actually implemented!
6. Automate redundant processes - Setting up test environments, restoring databases or testing low-priority areas manually can very quickly become tedious and mind-numbing. The cost lies in the manual time spent on these activities. If you automate them, testers can focus on completing higher-value tasks with a greater return on investment.