Quality Assurance

The Tester


Blue Heron Greg wasn't thrilled with his test database. Joe's conversion program worked fine and he was able to create a good test database for the new system from the old data. The problem was that it converted the whole production database, all 800,000 records of it, and all his tests were taking two hours to run. He was paring it down every day, but it was a slow process and he knew it was ultimately futile. By the time he had chopped it down to a usable size the testing period would be over.


Joe had always liked testing. He could still remember the little jolt of pleasure when the first test of his first program produced the now legendary, "Hello, world" line on the screen. Testing the big, complicated programs he wrote now was, of course, a different sort of thing. There was still a ghost of that old shot of pleasure when everything worked, but now he almost preferred having some bugs to be rooted out.


Debugging was like one of those games where they showed you two seemingly identical pictures and you had to spot the seven differences between the two. Joe had this beautiful, artistic picture in his mind of how his program worked and then there was the harsh, real-life picture of the fact that it didn't work that way. Some of the bugs were tough to find; after all, he had written the programs himself, the code looked right at the time, and it still looked right even when he knew there was a bug lurking in it. Eventually the light dawned (it really did feel like a flashbulb had just gone off), the bug scurried out from its hiding place in the logic, and Joe smacked it dead.


This new guy, Greg, however, was taking all the fun out of it. To begin with, Joe wasn't allowed to do his own QA testing. Greg tested everything himself in his own QA directory with his own database and his own copies of all the programs. Worse yet, every time Joe fixed a bug and wanted to re-test one of his programs he had to submit a "Test Request" form in which he was forced to list all the programs he wanted to test, why he wanted to test them, and what results he expected to see.


"Greg, you can't be serious," Joe moaned, "I've already filled out three of these silly forms and now I've got to fill out another one? Why don't you just let me do my own QA? It would go a lot faster."


"All you have to do is give me programs with no bugs in them and you won't have to fill out any more forms," Greg said. "And you know as well as I do that the idea isn't to see if you can run your own programs with your own homebrew database, it's to see if someone else can run them with production data."

* * * *

Peri Most programmers feel very protective and proprietary about their programs. If you've spent 10 hours a day for weeks or months creating this utterly beautiful, crystalline perfection of a program, you'd as soon turn it over to someone else to mess with as you would send your 6-year old daughter to the movies with some drooling pervert. It's important for Greg to realize these paternalistic tendencies in programmers. None of them think they're God's gift to the opposite sex, none of them think of themselves as glib conversationalists, and none of them think they're likely to make any "Ten Best Dressed" lists, but they all think they write great programs. They sincerely believe that any additions, deletions, or changes that anyone else makes to their program will make it worse.

Previous Section