Test Driven Development: By Example

by Kent Beck

Paperback, 2002

Status

Available

Call number

005.14

Collection

Publication

Addison-Wesley Professional (2002), Edition: 1, 240 pages

Description

Clean code that works--now. This is the seeming contradiction that lies behind much of the pain of programming. Test-driven development replies to this contradiction with a paradox--test the program before you write it. A new idea? Not at all. Since the dawn of computing, programmers have been specifying the inputs and outputs before programming precisely. Test-driven development takes this age-old idea, mixes it with modern languages and programming environments, and cooks up a tasty stew guaranteed to satisfy your appetite for clean code that works--now. Developers face complex programming challenges every day, yet they are not always readily prepared to determine the best solution. More often than not, such difficult projects generate a great deal of stress and bad code. To garner the strength and courage needed to surmount seemingly Herculean tasks, programmers should look to test-driven development (TDD), a proven set of techniques that encourage simple designs and test suites that inspire confidence. By driving development with automated tests and then eliminating duplication, any developer can write reliable, bug-free code no matter what its level of complexity. Moreover, TDD encourages programmers to learn quickly, communicate more clearly, and seek out constructive feedback. Readers will learn to: Solve complicated tasks, beginning with the simple and proceeding to the more complex. Write automated tests before coding. Grow a design organically by refactoring to add design decisions one at a time. Create tests for more complicated logic, including reflection and exceptions. Use patterns to decide what tests to write. Create tests using xUnit, the architecture at the heart of many programmer-oriented testing tools. This book follows two TDD projects from start to finish, illustrating techniques programmers can use to easily and dramatically increase the quality of their work. The examples are followed by references to the featured TDD patterns and refactorings. With its emphasis on agile methods and fast development strategies, Test-Driven Development is sure to inspire readers to embrace these under-utilized but powerful techniques. 0321146530B10172002… (more)

User reviews

LibraryThing member tuke
I must have read this back when it came out because I remember some of the jokes. This is a fascinating book about TDD, esp. if you read it now, given the maturation of the development model. On p. 199 there is a tantalizing section on "Application" TDD, where in a paragraph Beck anticipates BDD --
Show More
and how hard BDD can be if you don't properly rope in stakeholders as collaborators. I don't think we've figured that one out yet.

The book is a weird mix. First there's a section where Beck uses TDD to evolve an interface for handling money operations in different currencies. The section is a bit of a cheat, though, because first off Beck notes that he's done the "money" implementation 3 times in production, six times in print, and in live talks (p. 82): So the notion that he is somehow figuring out a problem or design with his TDD is pretty doubtful. He also notes in passing as he is working towards an implementation of a Sum class that it looks like a Composite pattern (p. 74) . . . that's right. He basically had the whole architecture in his head and is just kind of playing around. The section is also problematic because there's no complete source listing of the end product. Nowadays, it would be nice to have a full-blown commit list in github. On the other hand, it's all Java, and you have to wonder if it would take so long in, say, Ruby or Python.

Then there's a section on TDD'ing a Python xUnit. This section is quite forgettable. It's supposed to be "meta" and show you how you can TDD anything, but, really, it's pretty boring.

Then comes Part III: TDD Patterns. This bears close reading and has lots of little bits of advice, but you had better already be a "patterns" person. There are some interesting bits that show how far we've come from Java (for example: I can't imagine every doing a "self shunt" (p. 145) in Ruby.

We have really come a long way.

So: I recommend this for wisdom and for remembering the history. But if you're new to TDD I'm not sure this is the right place to start anymore.
Show Less
LibraryThing member orcpac7
I found this book an approachable read for learning the how, what, when, why's of test-driven-development. Mr. Beck has both the knowledge to impart and the skills to communicate the concepts and practice of test drive development.

Language

Original language

English

Original publication date

2002-11-18

Physical description

240 p.; 7.3 inches

ISBN

0321146530 / 9780321146533

UPC

785342146530
Page: 0.4758 seconds