This is a book about testing. Wait — keep reading! I promise it's different than the polarizing rhetoric that divides the developer community.
I’ve been approached by developers for years who have asked for help becoming better testers. They see me as a pragmatic voice within this heated debate. I use testing every day. My code is clean. I haven't used a debugger to verify my code since 2004. But I also know that testing can suck. You write twice as much code and only half of it runs in production. If you're not used to testing, your pace of work is slow. Unbearably slow. Which can be incredibly frustrating and expensive in this "time is money" industry. And while testing can help mitigate bugs, it will never completely eliminate the risk. The harsh reality is that your users will always be better at finding bugs than you.
You probably already know a little bit about the mechanics of testing. Like the types of tests — unit tests, integration tests, functional tests, and acceptance tests. You want to use test driven development (TDD) to slowly build up a suite of tests while writing your code, but you just can't seem to make the transition. You want to test more and can likely list off the string of benefits to having tests — how much safer it is to refactor, how much less stressful deployments are, how easy it is to figure out which team member is responsible to for introducing a test failure, and how continuous integration helps to make sure that the test suite works in more than one environment. You've read books, skimmed blog articles, watched screencasts, and attended conference talks, but when you look at your daily work flow, for some reason testing isn't in it.
What's the holdback? Talking about mechanics does nothing if you can't figure out how to make it work into your every day life. Testing is a habit, and building habits is hard. This book will look beyond the "should I or shouldn't I" argument of testing, and discuss techniques about starting to:
- Make testing part of a daily routine
- Build a second nature impulse
- Use tests to solve problems
While also NOT:
- Feeling like you write twice as much code and get half as much done
- Rewriting the entire test suite when something small changes
- Testing frivolous things
Once you read this book, you'll have a clear roadmap of small behavioral changes you can immediately implement to help build your testing habit.