From the Author
Looking around, I realized that no one had written squarely on this topic. There are lots of great books by the likes of Bob Martin, Michael Feathers, Lasse Koskela, Kent Beck, Steve Freeman and Nat Pryce, Martin Fowler, Joshua Kierevsky, and others that address approaches to testing, the importance of testing, and so forth. In the process they show techniques for bringing code under test, but it's usually secondary to the points being made. The only exception to this is Michael Feathers' "Working Effectively with Legacy Code" but it has a very specific focus that necessarily limits the techniques discussed.