The Art of Software Testing
Travelling to the Share conference (share.org) in Orlando I’ve achieved something I have never done before. I started, and finished a book during the flight. And proudly it wasn’t a small book of pictures, it was a book on Software Testing.
Having previously not given it much attention, the book was laying around my office for a while. Recently, I was on the hunt for some information and rather than go straight to the mother of all search engines, I decided to be old-school and check out the books on my shelf.
Flicking through a few I stopped on one that gave me exactly what I was after. In fact, it appeared to me that within its contents were lessons that every Tester should be aware of. It hit me, “Where has this book been all my life?”.
The answer was easy; “Sitting on a shelf”. After all, the book which was written by Glenford J. Myers has been in publish for the last 30 years.
It’s called “The Art of Software Testing”.
I remember back to the time I became a Tester and was tasked with writing my first Test plan. Having an air of confidence I began looking at the specification and realized I didn’t really know what I was doing. After all, I hadn’t formally been trained in Test.
The least someone could have done was hand me this book!
The version I read was an original print. I’ve found out that there’s a second edition printed in 2004 that contains an extra two chapters on “Extreme Testing” and “Testing Internet Applications”. However, the bulk of the book appears to be unchanged and that’s what I’m discussing here.
My thoughts on each chapter:
Chapter 1 - A Self-Assessment Test
Has a simple example that effectively shows why the default sizing of one Developer to one Tester is an invalid estimating technique.
Chapter 2 –The Psychology and Economics of Program Testing
There’s some great Test principles. Parts of this chapter should be read by project managers i.e “Do not plan a testing effort under the tacit assumption that no errors will be found”.
Remember: “Testing is the process of executing a program with the intent of finding errors”
Chapter 3 – Program Inspections, Walkthroughs, and Reviews
Really liked the detailed code inspection techniques. The checklist could be moved to an appendix to make the chapter easier to consume.
Chapter 4 – Test-Case Design
This chapter should be read by anybody new to Test.It contains techniques that can form an effective test planning strategy. I’m curious how much can be performed with modern test case generation tools (for languages like COBOL, PL/I, C and Java).
Chapter 5 – Module Testing
There’s a really good workable example of the the techniques discussed in Chapter 4.
Chapter 6 – High-Order Testing
A revolution on the definition of System Test, and you know what, it feels right. I wonder what the world would be like if everyone had gone this way 30 years ago.
Chapter 7 – Debugging
There’s some great questions for post-analysis of problems.
Chapter 8 – Test Tools and Other Techniques
Most of the tools are not relevant to modern languages, but the techniques are. It would be interesting to see an updated version of this list.
Conclusion:
In finishing the book I truly felt like I had learned something. I’m sure others would do too. It seems there’s an opportunity to create a Testers bibliography for which “The Art of Software Testing” belongs on that list.
Aside from some references to aging languages, everything in this book is comprehensively relevant today. In fact, it scares me to consider what might have been re-invented over the last 30 years by people who have not read this book.
Which of the unread books on my shelf I should read next? ![]()
Tags: books, fundamentals, software, techniques

February 29th, 2008 at 14:18
When the student is ready, the master will appear : )