Reading List


Apoorva suggests, “[H]ow about linking to any other test/dev blogs/sites/resources that you frequent, or feel would do good for beginners/seasoned testers as a read.”

I’ll do this in three parts: books permanently on my bookshelf, key blogs I track, and useful websites.

Books Permanently On My Bookshelf

Testing

  • Testing Computer Software, Cem Kaner, Hung Quoc Nguyen, Jack Falk: This book taught me testing.
  • How to Break Software, James A. Whittaker: Short and sweet and jam-packed with simple ways to bring your app down in flames.

Software Design and Development

  • Agile Software Development, Robert C. Martin: Don’t let the title fool you – this book is mostly about a core set of principles on which your software designs should be founded.
  • Object Thinking, David West: One of the most important books when it comes to object-oriented design.
  • Object Design, Rebecca Wirfs-Brock, Alan McKean: More good OOD info.
  • Domain Driven Design, Eric Evans: And yet more.
  • Design Patterns
  • , Erich Gamma, Ralph Johnson, Richard Helm, John M. Vlissides: The famous Gang of Four design patterns book.

  • Head First Design Patterns, Eric Freeman, Bert Bates, Elisabeth Freeman: Sure, get the GoF book for a reference, but get this book first.
  • Patterns of Enterprise Application Architecture, Martin Fowler: Patterns 201, kind of.
  • Holub on Patterns, Allen Holub: If you can get over your shock, Allen has some very thought-provoking ideas about how software should be designed.
  • UML Distilled, Martin Fowler: The best UML reference I’ve found.
  • About Face: The Essentials of User Interface Design and The Inmates are Running the Asylum, Alan Cooper: Lots of good information here about how applications *should* work and the importance of understanding your customer.
  • User Interface Design for Programmers, Joel Spolsky: UI design explained. Joel’s revising and expanding this on his website, but the original is still worth reading.

Software Process

  • Agile Software Development, Alistair Cockburn: The best reference I’ve found on the many flavors of Agile.
  • Software Craftsmanship, Pete McBreen: I am proud to say I am a Software Craftsman.
  • The Pragmatic Programmer, Andrew Hunt and David Thomas. Which is to say I am a Pragmatic Software Craftsman.
  • Journey of the Software Professional, Luke Hohmann: This and Jerry Weinberg’s Becoming a Technical Leader (below) are required reading for anyone pursuing a technical path.

Thinking

  • Cracking Creativity and Thinker Toys, Michael Michalski: Great ideas for getting your creative juices flowing.

The Jerry Section

Pretty much anything by Jerry Weinberg is guaranteed to be good. My favorites:

  • Are Your Lights On?
  • Becoming a Technical Leader
  • An Introduction to General Systems Thinking
  • Secrets of Consulting
  • More Secrets of Consulting
  • What Did You Say? (with Charles N. Seashore and Edith Whitfield Seashore)
  • Weinberg on Writing

Blogs

Testing

  • Michael Bolton: Michael (no, not *that* Michael Bolton) is my favorite source of make-me-think-hard ideas in the testing world.
  • Jonathan Kohl: Jonathan is another deep thinker about testing coming from an Agile perspective.
  • James Bach: James doesn’t post very often, but when he does you can be sure it’ll be worth reading.

Others

  •  Joel Spolsky: Joel has something to say regarding just about every topic remotely related to software development.
  • Steve Pavlina: If you’re interested in improving your self – and every tester should be – Steve is a must read.
  • Kathy Sierra: Lots of good info about how to make great software.

Websites

*** Want a fun job on a great team? I need a tester! Interested? Let’s talk: Michael dot J dot Hunter at microsoft dot com. Great coding skills required.

Comments (6)

  1. Books I think you should add is:

    1. Refactoring: Improving the Design of Existing Code (This is one of my favourite books, I’m constantly reading parts of it again.)

    2. Applying UML and Patterns : An Introduction to Object-Oriented Analysis and Design and Iterative Development (This is a awesome book on OOA/D)

    3. Refactoring to Patterns by Joshua Kerievsky (I’ve found this book just build on what I’ve learned in the original Refactoring book)

    Cheers for the info you’ve already have on the list. It’ll come in handy…

  2. micahel says:

    Refactoring definitely should have been on my list – I guess I missed it because it’s borrowed out to someone right now. Refactoring to Patterns is also good. Applying UML and Patterns I’ll add to my to-read list!

  3. bughunter says:

    I would seggest to add Critical Testing Processes by Rex Black.

  4. anutthara says:

    The book "Lessons learned in software testing" by James Bach and Cem Kaner sounds promising. Any comments on that book?

  5. micahel says:

    Unfortunately I must report that I was very underwhelming by that book. Let me know if you find different!