Tuesday, February 08, 2005

lament for a tester

Why does it have to be impossible to sell management on the concept of dedicated software testers? Testing is a vital part of the software development process, yet too many organizations (mine included) only pay lip service to the idea.

Around here, I feel that many hold the belief that software bugs are the programmer's fault and that they are to blame for producing faulty code. If you're of this mindset, here's a little excercise for you. Take 30 minutes and write a 2-5 page essay. Check and proofread it all you want. After that, hand it off to someone of equal or greater literary competence (no fair having your two-year-old appraise your work), and see if they can find any mistakes. Any at all; even a small one. Chances are quite high that they were able to find at least one mistake.

Even the best authors make mistakes in grammar, spelling, or punctuation; it's inevitable. That's why authors have editors and various other proofreaders. These people exist as a check to make sure the author (and the publisher!) doesn't embarass himself by publishing a novel rife with grammatical errors. Why then should writing code be any different?

Programmers make mistakes. As is the case with authors, this fact is inevitable. Don't ever believe that a programmer wants to produce shoddy code. That just doesn't make any sense. To a programmer, code is just like that novel is to the author. It's an achievement. Something to be proud of. But sometimes, the user behaves in ways that the programmer would never in his wildest dreams expect. They double click the mouse when a single click would suffice. They type passwords in with the caps lock key on. Users are all different and see things differently than programmers. Without a second set of eyes on our work, there will be bugs, and should be expected.

This is where testers come in. Testers should work closely with the programmers, helping to greatly reduce the chances that a bug will find it's way out into the open. Without a dedicated QA team, can you really hope to release anything that isn't of beta quality at best? Remember the old adage about a million monkeys on a million keyboards? That's what we need. We need testers to turn the caps lock key on; to type in 3,721 characters into a text box; to stand on their heads and recite the national anthem while drinking orange juice and clicking the mouse. Most of the time, it won't take that much effort to find a bug, but many times, the really interesting and elusive bugs take just this amount of dedication to find.

I could go on for pages more about the need for good software testers, but instead, I'm going to link to an article Joel wrote, that I find particularly fitting.

The Top Five (Wrong) Reasons You Don't Have Testers

No comments: