I’ve been having a lot of conversations about QA lately. And one theme I hear come up frequently (from professional testers) is the idea that testing needs a “different mindset” than development. This is sometimes phrased as “developers are optimistic, testers are pessimistic.”
I’m going to step out on a limb today with a bold claim:
This is utter nonsense
To be blunt: Any developer who cannot, to a reasonable degree, ensure that the code he wrote works, has no business calling himself a developer, or accepting a salary for that role.
Would you hire a plumber who required a separate “plumbing tester” to come by and test their work after he fixed your leaking toilet?
Of course not.
How about an auto mechanic where their mantra was “Our mechanics are too optimistic to know if they replaced your break pads properly. So we have professional testers who do that part of the job”?
I’d also challenge the idea that qualified developers are really “optimistic” at all, in this sense.
If you want an interesting conversation about impossible corner cases, just ask a group of developers to design something. They’ll debate UUID collisions, or timezone offsets on Mars, or any other number of things that only exist in the realm of theoretical possibility, but can never possibly have an impact on your software system.
Of course, testers are still valuable. But this value comes largely from having someone dedicated to the task, not from a different, magical “pessimistic” mindset. Testing isn’t magic. My 9-month old son tests things all the time. And he’s perhaps the most optimistic person I know.