We've been building software for decades. And testing it for pretty much the same length of time. Over the years we've built up expertise and methods and approaches and heuristics and skills and theories and practices and communities and schools and courses and accreditations and conferences and blogs and, well, all the kinds of things you associate with a profession.
So why isn't testing easier?
Tongue somewhat in cheek, I've asked this question of other testers on several occasions recently, including at both the EuroSTAR 2015 and Cambridge Lean Coffees. Here's a selection of answers I received:
- Testing is easy. You just find out what the system is supposed to do and see whether it does it. (I loved Rikard Edgren's take on this.)
- The environment in which we test is constantly changing; perhaps at a rate faster than many testers are prepared to change.
- Testing is always bespoke to the particular software in its context.
Interestingly, although expecting it, I didn't get asked questions like these:
- easier compared to what? Or when? Or who?
- what do you mean by testing?
- why should testing be easier than, for instance, other problem-solving tasks involving people?
- perhaps it's only you that finds testing difficult?
Let's think about each of those briefly.
"Easier" might refer or apply to any number of things. Here's just a few:
- flexibility: of execution; in expectation from stakeholders; of who or what performs testing tasks; of tools that facilitate testing.
- knowledge: Dunning-Kruger; technical expertise; domain expertise; craft expertise.
- scope: where testing is to be applied; how and when testing is expected or permitted or enabled.
Testing is a movable feast. Here's a handful of things that might be relevant:
- what is considered testing changes over time.
- what testing could be necessarily changes over time, because the things that can be tested change over time.
- what testing is differs between contexts because of any number of contextual factors such as the people, budget, desire for quality, ...
Should testing be easier than other problem-resolution activities that depend on people?
- simply, in the general case, probably not.
- could software teams make testing easier? Yes, I think so.
- although whether that was an appropriate thing to do would depend on the usual kinds of considerations, including what the motivation for that action is.
Perhaps it's only me that finds testing difficult?
- my evidence from responses to asking others the question suggests not.
- these days I typically don't find thinking of questions difficult
- ... but the challenge of deciding where to look to ask questions, when to ask them and how, which ones to pursue, and with what techniques, remains an intellectually interesting one.
And I find that delightful: if that went away, I'd want (my) testing to be something else. But what about you?