A new PM just joined my team, and he scheduled time to come talk to me about the role
of testing in our product development. While thinking about what I would tell
him, the following (possibly unrelated) question popped into my head:
"What are the special or unique skills and contributions of a good tester?"
Right off the top of my head, three things occurred to me:
First, a good tester knows where the bugs are. This is related to what Windows
testing calls "test buckets" - good testers know to check for bad parameters, know
to check for multithreaded issues, run their tests long-haul and stress, and sometimes
for the hell of it they disconnect the network cable. A good tester has a voluminous
dictionary of possible attacks, and knows which ones are most likely to find problems
in particular scenarios.
Second, a good tester knows their tools. This means that they know how to use
MadDog, or WTT. It also means they know how to use the conceptual tools of the
testing trade; things like equivalence classes and pair-wise testing. They are
professionals who know the standard tools of their profession, and keep an eye out
for the new ones.
Third, a good tester takes and has responsibility in the software development process.
They can allow or block a product release. They can appropriately measure product
metrics, and use these to help drive product planning. They understand our software
development process, and do everything they can to make it run smoothly.