Often I am asked this question about books on software testing and usually my recommendation has been same over years. I am not truly a great fan of reading software testing books to understand this art and probably other practitioners might agree, for testing is learnt over time and rather perfected over time but I am a great fan of reading in general. Its not really as simple as maths (or as difficult as some would like to incorrectly put it) which can be explained and contained with in predictable results out of time tested formulas, its more of a evolution which happens over time.
Anyway, coming back to basic question on what are the good books on software testing. My suggestion would limit to three books viz.
- 1. Roger Pressman’s book on software engineering
- 2. Cem Kaner’s “Testing Computer Software”
- 3. Rex Blacks’ “Critical Testing Processes”
Lets take them one by one.
Pressman is a theoretical book which gives you the academic part of software testing. This book is actually about software engineering in whole and talk about Software Development Life Cycle (SDLC) in detail, the various models, and then it describes each aspect of software engineering in detail, right from gathering requirements to actual installation at user’s place.
There is one chapter on software testing which covers all definitions of various kinds of testing,
bug life cycle, test planning, test estimation, reporting and everything else. Everyone must read this chapter to familiarize oneself with terms, acronyms and general tricks of the trade. Its not a great book for someone who has been practicing testing for a while but its a must read for all those beginners who do not the difference between white box and black box testing.
I tried to search this on google and I get the following link and I guess this is the edition.
http://www.amazon.com/Software-Engineering-Practitioners-Roger-Pressman/dp/007301933X
The second book is my favorite for its written by a practitioner and there is not much academic oriented content in this book. The basic philosophy of Cem Kaner is that a good tester is someone who not only finds lots of good bugs but also gets them fixed. This book is easy to read, its not inundated by definitions and graphs and is interesting. Cem Kaner talks about the skills which you need to become a good tester, some level of process information and the overall philosophy of software testing. Unlike Roger’s book, one would need to read the whole book and its worth it. I read that quite a while back so I dont remember more finer details but I would love to read it sometime in future and if I do then I will share my learnings.
Cem has his own website and you can find lot of other valuable information there, here is the link http://www.kaner.com/index.html
The 3rd book is the most difficult to read but arguably the most thorough one. Rex is a serious methodical guy, I met him while he was here to give some lecture at Adobe and he seemed very professional. This book takes you through the whole testing cycle which Rex went through for one of this real projects. It has actual lists, XLS format information for writing test cases, sample test plans, reporting details and so on. This is a little verbose book and can get difficult as you move but very useful. I personally dont like this book too much but If I have to teach someone I would rather use this book then any of the above two.
My personal favorite remains Cem Kaner.
Thanks for reading till this point and if you do read any/all of these, please do share your thoughts.
Your list of Software testing books can’t be complete without “Exploiting Software:
How to Break Code by Greg Hoglund and Gary McGraw”. Check http://www.exploitingsoftware.com/
Oh, would see that. Also I guess I never saw your blog before, pretty rich and big but it takes a while to load.
thanks