Refactoring: Improving the Design of Existing Code
by Martin Fowler; Kent Beck; John Brant; William Opdyke; Don Roberts
xUnit Test Patterns: Refactoring Test Code
by Gerard Meszaros
Working Effectively with Legacy Code
by Michael Feathers
Website Optimization
by Andrew B. King
Java Power Tools
by John Ferguson Smart
How We Test Software at Microsoft®
by Alan Page; Ken Johnston; Bj Rollison
Handbook of Usability Testing: How to Plan, Design, and Conduct Effective Tests
by Jeffrey Rubin; Dana Chisnell; Jared Spool
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
Average Amazon.com® Rating: ![]()
![]()
![]()
![]()
Based on 32 Ratings
Another silly development fad... - 2008-10-26
Reviewer Rating: ![]()
![]()
![]()
![]()
![]()
TDD "By Example" is a book that tries to persuade you to write tests before writing the code the tests test. In the first six chapters, the author takes you through an example of generating code through this method. Along the way, he makes several pertinent points:
1. His method has never been empirically studied to see if it helps or severely hurts the efficiency of the software development process (though the author is very interested to hear from anyone who finally DOES study his method, since he didn't have the time to do so himself, being too busy dreaming up new development processes to inflict on us).
2. His tedious, non-linear, haphazard, time-wasting (ed: my words) method is not meant to be followed precisely, but only meant to allow you to say you CAN do it that way. He makes this point numerous times. Fantastic dude, thanks. :/
I predict that this book will be purchased by software project managers both actual and wanna-be all throughout the software industry, and inflicted as a requirement on otherwise productive and smart engineers for several years to come. The final result will be projects woefully behind schedule, leading to inevitable 24-hour/7 day crunches, thereby twice punishing the engineers, and resulting in the whole silly process being dropped in the end.
Having said all this, I give the book two full stars: the english grammar is correct, and the punctuation well placed. The book is easy to understand, making it quite simple to dislike the content thereof.
2 pages drawn out to 200 pages of bs - 2009-02-26
Reviewer Rating: ![]()
![]()
![]()
![]()
![]()
Remember back in college when you would come up with 2 pages of good material then bs it into 5 to meet the length requirement? This guy does it to make a 200 page book.
Test-Driven Development is not very complicated. You can fully understand it just reading the wikipedia article on it. This book doesn't explain much more than that. There are a ton of examples for just about any situation you can think of inside this book, but any decent programmer could just look at an example or two online and be just as well off.
This book would be most helpful to someone who has just started learning programming on their own (no degree or job experience), but this book is mostly just a waste of time.
Really not that good. - 2008-12-16
Reviewer Rating: ![]()
![]()
![]()
![]()
![]()
I was expecting quite a lot from this book, because it has been recommended so many people and organizations. However this was a disappointment. I feel TDD is important topic and way to go, but this book is not the one I would recommend to anyone. It's kind of reference book, but quite poor one.
Extremely important software development practices - 2008-10-12
Reviewer Rating: ![]()
![]()
![]()
![]()
![]()
Excellent book, well paced and informative. You should really go through the examples as you read those sections (part 2), even if they feel a little obvious, because if you are new to TDD you will pick up some insights. I particularly liked the Patterns section (Part 3), as it introduced some new patterns as well as talked about familiar patterns in the light of TDD.
If you are a software developer, you must put this powerful tool (TDD) in your toolbox.
intriguing ideas, irritatingly presented - 2008-06-29
Reviewer Rating: ![]()
![]()
![]()
![]()
![]()
The book's scope is well-defined and its methodology (including a running "task list" that is updated at the end of each chapter with strikeouts and new items) is innovative. But it falls sadly short in execution.
The text is overloaded with cutesy digressions that only serve to obscure the topic at hand and irritate the reader. No "Head First" title, this. To read this book is to wish over and over that its author had had the humility to submit it to another editor's series rather than launching it under his own.
Still, there is no other book quite like it on this subject, and I can certainly recommend it for extended bookstore browsing. You may find you are less sensitive than me to Beck's assaults on clarity, in which case by all means go forth and buy.
Top Level Categories:
Software Engineering
Sub-Categories:
Software Engineering > Testing and Debugging
Some information on this page was provided using data from Amazon.com®. View at Amazon >