Testing: paths of resistance

A bite size blog post

I’m fascinated with the great emphasis that has been placed on speed of software delivery. The landscape for development and distribution of new products and new features has altered so dramatically over recent years that it is easy to feel slightly intoxicated by the possibilities, both as someone working in the field, and as a consumer of the products and services that have emerged.

Perhaps due to my natural scepticism, I find myself questioning some of the received wisdom around rapid delivery. I wrote an article earlier this year about the relationship between speed, frequency and quality.

I also feel uncomfortable about the narrative that has emerged around testing which is often characterised as a ‘bottleneck’ rather than a valuable part of development; helping teams recognise and deliver value, and identifying potential problems for businesses and customers.

Thinking of testing as a bottleneck inevitably leads to discussion about how testing time can be reduced. Conversations naturally move on to how and where tools and automation might help, but there are also implications for the mindset associated with testing. To keep moving forward at pace, the tendency is to opt for the path of least resistance.

Those activities which are seen to quickly provide some kind of result, or a means of evaluation, are more highly valued. This typically means adopting an approach which focuses on confirmation (of requirements or acceptance criteria) and / or which repeats a set of checks for regression of code.

If the goal is to reduce time spent testing, then the aspects of testing which can take more time come under greater scrutiny; activities which might require greater effort and therefore represent paths of greater resistance.

Yet, the true value of testing (and of testers) lies in many of these activities – considering the purpose of changes and the people these changes might affect, analysing the risks these changes present, creating conditions (including the passing of time) which allow for investigation of those risks, exploring for potential problems that might only occur in less frequently used features or less common actions.

This is not to say that investing further time, money and effort in testing is always the right course of action. Production monitoring, analysis of customer behaviour and responses can provide businesses with valuable information to make decisions about their products and services.  This might be appropriate in some cases. In other cases such an approach can be disastrous, as people using the recently implemented UK Universal Credit system discovered.

If something is worth doing, it is worth doing well and if testing is worth doing, then doing it well means allowing time to analyse, prepare and perform, rather than facilitating rapid delivery by following the path of least resistance.