July 20, 2011

Recommended reading for testers

An old workmate of mine, Janesh,  got in touch to ask me for my recommendations of books on testing for his team. I’ve been meaning to write a few reviews of the books I’ve read or dipped into, so I’m glad of the push to encourage me to write a few lines on each.

Let’s start with the practical, hand-ons on testing books, then detour into books I’ve found inspirational and which provide background history on the topic of computing and software engineering. In a later post I’ll review books on project management and finish up with books which are designed to help you sharpen your thinking skills - because testing is all about thinking.

The practical books

Lessons Learned in Software Testing

Cem Kaner, James Bach, Bret Pettichord. 286 pages, 2002

If you only ever read one book on software testing, it should be this book. It’s divided up into very short articles (called lessons) of as little as one paragraph and no longer than a couple of pages, which distil the hard-won experiences of the authors into pithy, digestible nuggets of wisdom. I guarantee you’ll be a better tester after reading this book. There are almost three hundred lessons; some sample titles include “Report the problem clearly, but don’t try to solve it”, “‘Enough testing’ means ‘enough information for my clients to make good decisions’” and “Capture replay fails”. You may not agree with every lesson in the book, but that’s the author’s intention - they want to stir you up to get you to think critically about your craft and about how you can hone your skills as a tester.

Testing Computer Software

Cem Kaner, Jack Falk, Hung Quoc Nguyen, 479 pages, 1993

Four hundred and seventy nine pages of turgid. Despite being co-authored by one of the finest thinkers on testing, Cem Kaner, this book is exactly the sort of door-stop that gives testing the reputation it has as a boring job for boring people. Nonetheless, if you can get through a chapter without falling asleep, you’ll build up a solid foundation on which to extend your testing expertise. Maybe one to consider if you’ve drifted into testing (like a lot of us!) and have gaps in your knowledge that you know you need to fill. Don’t make this the first book on testing you read. You’ll never come back for more.

How to Break Web Software

Mike Andrews, James A Whittaker, 219 pages, 2006

Can’t remember how I found this book - I seem to remember it was recommended to me, but I can’t remember by whom. Whoever it was, thanks, because this is probably one of the most hands-on, practical books on testing I’ve read. It’s a bit dated now (it was published in 2006) - there’s a CD in the back flap - but it’ll introduce you to the wonderful world of white-hat hacking, which includes the joys of SQL Injection attacks, cross site-scripting and a whole host of other techniques which will make you realise just how little you actually know about security testing, and give you just enough tools and techniques to make you dangerous. Happy hacking!

Agile Testing

Lisa Crispin, Janet Gregory, 533 pages, 2009

This book is good, but it’s not as good as I was hoping. If you, your team or management are new to Agile, it’s a very helpful guide for testers on an Agile team. It depends what you’re looking for, though - if you want specifics of how to test, you won’t find them here - it’s more of an Agile project management book for testers.

Release It!

Michael T Nygard, 350 pages, 2007

This is a book for the tester who’s interested in the bigger technical picture.

If you think you’ve got a handle on your product’s scalability and fitness for production, read this book and shiver. It’s full of tales from the trenches of complex, multi-tier clustered systems that failed spectacularly on their first hours in production. This book outlines the many ways in which complex software can fail - and how to design, engineer and deploy your product differently to make it less prone to these kinds of failures.

The inspirational books

Hackers

Steven Levy, pages 455, 1984

Steven Levy’s classic 1984 portrait of the hackers, misfits and dreamers who shaped the world of computing as we know it today. Levy tells the story of the giants of computing when they weren’t quite so giant: Bill Gates, Richard Stallman, Steve Wozniak and Steven Jobs and a whole stellarium of lesser, but no less talented, hacking heroes. Evokes the feel of the computer labs at MIT in the 1960s superbly.

Where Wizards Stay Up Late

Katie Hafner, Matthew Lyon, 304 pages, 1996

A sober but nonetheless fascinating account of the people who built the Internet. What’s amazing about this book is that it feels as though you’re reading ancient history, but most of the protagonists in the book are still alive and still contributing to the state of the art.

Rebel Code

Glyn Moody, 343 pages, 2001

A flawed but fun read on the world of free software and in particular, Linux and its author, Linus Torvalds. Torvalds’ public spats with Andy Tanenbaum on the merits of monolithic versus microkernel operating system design are the stuff of legend, and retold well here. History has proved Torvalds right; we’re still waiting for the HURD to be ready for prime time - though of course the HURD wasn’t Tanenbaum’s baby.

The Soul of a New Machine

Tracy Kidder, 293 pages, 1981

Tracy Kidder’s outstanding nuts-and-bolts account of the race in the early 1980s by Data General to build a new minicomputer. It’s all here: the long hours, cut-throat business practices and sheer technical wizardry.  Probably the definitive account of the business of hardware engineering.

The Cuckoo’s Egg

Clifford Stoll, 356 pages, 1990

A brilliant account of a hacking attack on the Lawrence Berkeley network which Stoll was responsible for managing. This is pure thriller material - after detecting the intruder on the network, Stoll tells the story of the relentless hunt - over the course of a year - to catch the infiltrator.

More reviews to come; this should keep you in dead tree reading matter for a while! Do let me know what you think of any or all of these books and which ones you’d recommend for me.

Since discovering Alibris, the Amazon of second-hand books, I’ve been going a bit crazy ordering books - to the extent that I’m now in the lucky  position of having a considerable backlog of books to read. Books can be found on Alibris for as little as a Euro if you’re not fussy about having the cleanest possible copy. (I’m not.). As I finish the backlog, I’ll pop reviews up here. Take a look at this Flickr set to get a taste for what’s to come. Thanks for reading!


Previous post
Building testable software We’ve all worked with software which wasn’t designed with testing in mind; as developers and as testers, many of us will have been stung by this.
Next post
A cry for creativity I keep seeing entities getting created in our automated test harness with mind-numbingly tedious names like entity1, entity2, entity3. I’d love it