Growing Object-Oriented Software, Guided by Tests - Steve Freeman, Nat Pryce (Addison-Wesley, 2010)