I’m a tester; I break things. I’ve heard and said it many, many times. It’s the standard way people describe testing. Quite apart from making testing sound like a simple, easy job (worthy of a blog post in and of itself), it’s a dangerous terminology.
It suggests that the product is ok, until the testers have their wicked way with it – that the testers are malicious little buggers who try to make the product do things it’s not meant to, and then make it fall over. The very terminology leads to fallacies of thought:
- Developers can think that they’ve passed the product to test, good to ship.
- Managers can think that because the testers haven’t broken the product, it’s good to ship.
- Everyone can think that the testers have stopped the product shipping successfully.
- Bugs get rejected, because people think that no true user would do that.
In reality, the product given to the testers is not good. It’s given to them already broken; a haunted house with booby traps galore. The testers aren’t rampaging lunatics with sledge-hammers; they’re the housing inspectors sent to find those traps before the general public are allowed in. Except that software products are a lot more complicated and much less easily perfected than a house, so there are a lot more dark holes for the bugs to lurk and deciding where and how to shine the torches around to light them up is slower and more complicated.
So, I’m going to try and change my default language. I’m a tester. I investigate things. In my vicinity, stones get turned over and creepy crawlies come to light. When there might be a can of worms around, I’m the one wielding the tin-opener. But I no longer claim to break things.
 Picture of the Joker, by arthurforzus on deviantart. I don’t know him; I was just looking for pictures of the Joker with appropriate permissions and thought it was rather good.