Growing object-oriented software, guided by tests - Freeman, Steve; Pryce, Nat (The Addison-Wesley signature series, 2010)