views:

416

answers:

5

So I've recently read Test Driven Development by Kent Beck, which I found interesting (although it felt a bit light on details) and I've started using unit tests in my programming which I'm really enjoying the added peace of mind about code quality versus ad hoc testing, although I'm not at the stage of doing full fledged TDD (yet).

I'd like a more in depth text on software testing specifically on writing useful tests and how to make sure that as much of the code as possible is being exercised by the automated tests.

+2  A: 

xUnit Test Patterns is packed with examples for different testing scenarios. I'd also recommend Testing Computer Software for its background information on creating test plans, writing bug reports, etc., but the examples are getting a bit dated.

Bill the Lizard
+2  A: 

The Art of Software Testing [ISBN 0471469122] is a good introduction to the general topics of testing software. There's also a list of suggested further reading in the always excellent Code Complete [ISBN 0735619670] by Steve McConnell. I've only got the first edition handy but in the first edition the pages in question are 619 and 620.

Onorio Catenacci
+4  A: 

Recommending a book depends on what you want. From a unit testing perspective, Dave Astels' Test-Driven Development: A Practical Guide covered a lot of topics with an example, but it's gotten dated as well. Test Driven: TDD and Acceptance TDD for Java Developers by Lasse Koskela started off great but then accelerated enough that it makes a better overview book than an in-depth book, I found. The Pragmatic Programmers' book on Pragmatic Unit Testing in Java with JUnit has some basic things about unit testing, and provides some basic heuristics for test design. It's a bit simplistic in some ways, but a good starting point. Brian Marick's The Craft of Software Testing also covers a lot of unit testing related topics.

From the perspective of functional testing and other types of testing traditionally done by testers instead of developers, Lee Copeland's A Practitioner's Guide to Software Test Design covers a lot of techniques. Paul Jorgensen's SOftware Testing: A Craftsman's Approach also covers a lot of techniques. Software Quality Engineering: Testing, Quality Assurance, and Quantifiable Improvement by Jeff Tian explains some things better than other books I've looked at, so it might be worth looking at, as well. Finally, I also like Kaner, Bach, and Pettichord's Lessons Learned in Software Testing, which covers a lot of ground in small chapters.

Andy Tinkham
A: 

Here are the most appropriate books from my bookshelf

  • Critical Testing Processes - Rex Black
  • Surviving the Top Ten Challenges of Software Testing - William Perry, Randall Rice
  • Systematic Software Testing - Rick Craig, Stefan Jaskiel
not-bob
A: 

If you're doing any testing in Perl, you need Perl Testing: A Developer's Notebook by Ian Langworth and chromatic.

Andy Lester