Growing Object-Oriented Software Guided by Tests
|Published:||Oct 22 2009|
|Posted:||Apr 06 2015|
|Book size:||4.27 MB|
Foreword by Kent Beck "The authors of this book have led a revolution in the craft of programming by controlling the environment in which software grows.' --Ward Cunningham 'At last, a book suffused with code that exposes the deep symbiosis between TDD and OOD. This one's a keeper.' --Robert C. Martin 'If you want to be an expert in the state of the art in TDD, you need to understand the ideas in this book.'--Michael Feathers Test-Driven Development (TDD) is now an established technique for delivering better software faster. TDD is based on a simple idea: Write tests for your code before you write the code itself. However, this "simple" idea takes skill and judgment to do well. Now there's a practical guide to TDD that takes you beyond the basic concepts. Drawing on a decade of experience building real-world systems, two TDD pioneers show how to let tests guide your development and 'grow' software that is coherent, reliable, and maintainable. Steve Freeman and Nat Pryce describe the processes they use, the design principles they strive to achieve, and some of the tools that help them get the job done. Through an extended worked example, you'll learn how TDD works at multiple levels, using tests to drive the features and the object-oriented structure of the code, and using Mock Objects to discover and then describe relationships between objects. Along the way, the book systematically addresses challenges that development teams encounter with TDD--from integrating TDD into your processes to testing your most difficult features. Coverage includes Implementing TDD effectively: getting started, and maintaining your momentum throughout the project Creating cleaner, more expressive, more sustainable code Using tests to stay relentlessly focused on sustaining quality Understanding how TDD, Mock Objects, and Object-Oriented Design come together in the context of a real software development project Using Mock Objects to guide object-oriented designs Succeeding where TDD is difficult: managing complex test data, and testing persistence and concurrency
While developers and IT organizations increasingly acknowledge the importance of software testing, few know how to proceed -- especially when it comes to testing advanced object-oriented software systems. In this book, two leading O-O test researchers and consultants outline a start-to-finish methodology for testing: what to test, why to test it, how to test it, who should do the testing, and when. The book is organized around a task orientation, encompassing testing models; testing components, systems and subsystems; and planning for testing. The authors review the unique challenges associated with object-oriented software testing, offer practical insights into testing priorities, introduce each leading testing technique, and walk step-by-step throu...
Elements of Reusable Object-Oriented Software
* Capturing a wealth of experience about the design of object-oriented software, four top-notch designers present a catalog of simple and succinct solutions to commonly occurring design problems. Previously undocumented, these 23 patterns allow designers to create more flexible, elegant, and ultimately reusable designs without having to rediscover the design solutions themselves. * The authors begin by describing what patterns are and how they can help you design object-oriented software. They then go on to systematically name, explain, evaluate, and catalog recurring designs in object-oriented systems. With Design Patterns as your guide, you will learn how these important patterns fit into the software development process, and how you can leverage t...
The Demeter Method with Propagation Patterns
This ground-breaking book presents a complete methodology for adaptive programming in any object-oriented programming language. Lieberherr's adaptive method signals a new approach to object-oriented program design that goes beyond object encapsulation and hard-coded navigation paths to achieve more flexible interactions among objects. Programmers using this method work at a higher, schematic level of abstraction; graph notation represents the class structure and a propagation pattern language tells how to distribute meaningful methods - including navigation - across the structure. Using this method, programmers can easily adapt and modify programs as they evolve. This book can be used with any object-oriented programming environment, or with the Deme...
2007 - 2018 © eBooks-IT.org