I was recently challenged by James Thomas of EuroSTAR fame to try condensing my thoughts and putting across ideas related to testing in as short a way as possible, à la Twitter’s 140 characters. After the initial questioning of what he was implying regarding my previous thoughts, I started to settle down into the idea.
Twitter has never quite grabbed me as a social media platform in the way that it clearly has for some, or in ways that other platforms have, although I’m the first to admit I’m not exactly “down with the kids” when it comes to technology and social media in particular. I had to ask a colleague to explain What’s App to me a few months ago, as I’d never heard of it. I have little against Twitter, beyond what doesn’t appear to be the most convenient way to hold a public discussion resulting from a post, and have never felt comfortable recording my entire life and/or thoughts in there. If I had, perhaps the challenge of condensing ideas would have come more natually, but as it was, the more I thought about thinking concisely, the more I realised why I wasn’t suited to Twitter.
After concluding that Twitter might not be the way forward for the challenge, and realising I was no longer constrained to just 140 characters, I felt momentarily unleashed before the new realisation that I now needed a topic.
Our company runs frequent brown bag lunches where we meet for a presentation, discussion or challenge over sandwiches, soup and other reheated leftovers. We don’t constrain ourselves to topics solely within the domain in which we work and as such, we often venture into some intriguing areas to which we wouldn’t normally be exposed. There’s something nice about short introductions to ideas that won’t necessarily change your life but will certainly keep you entertained and give you something to think about. I guess that’s why the TED Talks are so successful.
Shortly after the challenge was made, we met over lunch to reflect on CEWT #3, a Cambridge-based testing workshop. There are a number of these workshops across the UK and Europe, with topics covering things like “Models for Thinking”, “Communicating testing during software development” and many others, providing a great opportunity for testers from different companies to get together and discuss ideas.
One of the questions posed for discussion at CEWT #3 was “What is Testing Anyway?” which resulted in a number of people attempting to define testing, as well as explaining how they’ve reached their definitions. I’m not normally one for definitions, instead preferring to dive straight into the realities and practicalities of getting on and doing things, but a challenge is a challenge and I had a need for a topic. So… what is testing? An easy question in theory but a difficult one to answer, especially concisely.
While some explained their interpretation of testing by detailing some testing tasks (examples so often being the key to explaining something difficult to someone who doesn’t understand), a number took on a definition both within CEWT and spilling out onto social media.
I felt that derivations of definitions got somewhat bogged down in attempting to describe the precise yet wide ranging number of tasks that we as testers usually consider to constitute testing. Even for those of us doing it for a decade or so, sometimes tasks that come along or that we take on naturally as testers are hard to pigeon-hole into being a testing task or non-testing task. Fallout from the talks on Twitter resulted in a nice way of including all the different tasks by comparing it to another activity:
@andersdinsen “…code is poetry, but what is testing?”
@DavidHogberg “Testing is reading that poetry with different intonation, speed, volume etc. And observing effect.”
I wanted a definition that didn’t exclude the things we do as middlemen getting people together, determining what’s important to be examined, making our own calls, working out who we need to talk to, introspection, etc. This lead me to the core part of my answer – all of these things are information gathering for me or for someone else to acquire. The benefit of more information, in my eyes, is providing a better understanding but not a complete understanding. Back in 1973, Hetzel said “Testing is the process of establishing confidence that a program or system does what it is supposed to.” I have a number of problems with that including: how do I know what it’s really supposed to do and, even if I did, would I ever have “confidence”? There is always uncertainty, even after testing, in the same way that there are always more bugs so it’s not a case of establishing certainty but instead of reducing uncertainty.
There’s another definition I like, taken from Arborosa which is by Trish Kloo who said “…testing […] is an approach that lets people get the information they need at the time they need it, in order to make timely decisions”. I think there’s a nice crossover there with uncertainty and also covers one of the main thoughts in my mind I have when testing – I’m providing information for others to make their own, more informed, decisions.
Another angle I wanted to include, although much easier to put down into words, was that testing almost always isn’t some simple job of following pre-defined steps to reach a black or white pass/fail type answer. It’s an artform – it’s hard to define. Tell me how to paint a masterpiece or compose some music that sends chills up your spine. There’s just no way to pin that down precisely, although we can talk at length about the component parts. I think it’s important to highlight that our jobs as testers aren’t trivial and that there’s both a professional skill and a knack to doing the job.
Lastly, while I wanted to talk about us working in software, that misses a key point – we don’t just test the product, we also test the processes and the people (to some extent – perhaps it’s more their ideas, quirks and human frailties) involved in the processes. Referencing the environment around it, to me, includes the processes and people as well as the product. Of course, I could talk about it being technology-centric or something similar-centric, but calling it science-centric makes a pleasing contrast with the “art” and so made for an easy choice.
So, here’s my condensed, concise and considered answer to “What is testing?”:
Testing: the art of reducing uncertainty in a science-centric environment.
Thought-provoking, revolutionary, ground-breaking and tester-life changing it may not be, but it’s still the end of my challenge and I’m happy with it. Time to take it to Twitter?
N.B. I’m well aware of the irony of this post, given both its length and topic of trying to be more concise.