Michael Bolton‘s brilliant description of why software testing is a rare skill!
If we’re going to get any better at testing, we have to understand that there are actual skills of software testing, and we have to set about learning them. Most of the discussion around testing comes unencumbered by mention of key testing skills like critical thinking, systems thinking, scientific thinking. There is no mention of ontology (what we think we know), or epistemology (how we know what we know), or cognition. I can read through (and attend) presentation after presentation without ever hearing about risk, oracles, coverage, context, learning, exploration, heuristics, or skepticism. Other than from a handful of students of Jerry Weinberg (and it’s a small handful), I almost never hear about serious discussion about quality, or value, the idea that we develop software for people to use, that decisions about quality are political and emotional. I hear quite about about processes and tools, but these are made central to the conversation. We’re told to apply them, but there’s typically little reference to judgement and skill and context in applying them. By contrast, the Agile Manifesto itself de-centres processes and tools, negotiated contracts, and following a plan. I wish people would pay more attention to that.
For example, for those who thought that “exploratory testing” is a fancy name for “playing around with the computer”, I’d ask you to look here: http://www.developsense.com/resources.html#exploratory
All that adds up to the fact that testing is a complex, organic, cognitive activity, rather than a rote, bureaucratic, clerical one. Testing is, as James Bach puts it, far more than a bar glowing green or red with news of the trivial.