[Book] Lessons learned in software testing
Posted: Wed Jan 23, 2008 1:41 pm
This book contains 293 "Lessons". Each seems to be meant for people with certain experiences and certain problems; some very broadly defined, others more tightly. So, how do I grade 293 lessons? One way would be to average them, another to pick on the worst (from my point of view). I choose to pick out the ones that hit me the hardest; the best from my point of view.
I've been a developer, a tester, a test manager, and am now a grad student studying testing with Dr. Kaner. This book was the proximate cause of the last. If I had had this book a couple of years ago, I believe I would have done a much better job as test manager, and my project would have succeeded better with our customer. This is the second best book on testing that I've ever read.
By the time I saw Lesson 31, I had already learned it the hard way. "A Requirement is a quality or condition that matters to someone who matters." It doesn't matter what the requirements document says; you ignore the opinion of someone who matters at your peril. I did.
Lesson 57: "Make your bug report an effective sales tool." My bug reports developed a pretty good reputation with most of the developers, so I quit paying as much attention to putting convincing arguments in them. Then, we got some new senior developers. I was back at square one without quite realizing how I got there. Don't do that.
Lesson 235: "Staff the testing team with diverse backgrounds." When I became test manager, I looked for people like me: computer science degree with developer experience. Well, such people don't work as testers, especially for the location and money we offered. I first hired a young woman with Army training. Later, I figured out how lucky I had been; she was one of the two best testers who worked for me. I learned a lot about my blind spots from her pointing them out to me. I'd hate to have tried to do the job without her or many of the other people very different from me (and her) that I hired.
Lesson 240 "During the interview, have the tester demonstrate the skills you're hiring for." After having a lot of bad results from traditional interviewing, we wrote a series of tests and gave the appropriate one (testing, SQL, C++, etc.) to each candidate. Afer that, we found our rate of bad hires was down sharply. We hired several people whom we would not have hired based on our traditional interview questions; almost all turned out well.
What am I learning? Lesson 17: "Studying epistemology helps you test better." I hope so; I'm studying it. Lesson 76: "Always report nonreproducible errors; they may be time bombs." I'm keeping more lists of these now. No good results yet. Lesson 266: "Learn Perl." Yep, there's more than one way to do it.