The NIST estimates that poor testing costs the US economy $60 billion annually. This book gives teams straightforward and proven ways to introduce unit testing into their process, resulting in higher quality and fewer bugs.
All over the world, software teams are using unit testing both to verify their code and as a way of helping them design better code. This book is unique in the way it covers two aspects: showing developers both how to test and helping them determine what to test.
Review By: Noreen Dertinger 03/12/2010As the title implies, Pragmatic Unit Testing In C# with NUnit, focuses on unit testing techniques in an agile software development environment. This edition is aimed primarily at programmers using C# with NUnit; a Java specific edition is available to programmers using JUnit. Although the two editions published (C# or Java) contain code examples that are specific to those particular languages, the material and ideas discussed can be adapted to unit testing related to application development being done with other programming languages.
Through a combination of prose and practical (non-code based) examples, where warranted, this book does a good job of teaching important unit testing concepts and principles. At the same time the book also gives the reader an introduction to the NUnit testing tool. The code examples provided enhance the benefits of working through this book but are not absolutely essential in order to derive maximum value from reading it. Some of the concepts covered are encountered by both programmers and testers. Fundamental examples include boundary conditions and repeatability of tests. As a software tester, I found Pragmatic Unit Testing helpful and interesting to read. I took note of several ideas that will help enhance my testing techniques. The book also has helped me better understand some of the underlying causes of some of the more complex bugs I encounter in testing.
Pragmatic Unit Testing In C# with NUnit is concise (less than 200 pages) and well written in an approachable but not oversimplified manner. I believe that it provides a solid overview for any non-programmer who needs to learn more about unit testing. For programmers, this book provides beginners a valuable compendium of approaches and makes a good quick reference for the more experienced programmer.