skip to main content
Skip header Section
ATDD by Example: A Practical Guide to Acceptance Test-Driven DevelopmentJuly 2012
Publisher:
  • Addison-Wesley Professional
ISBN:978-0-321-78415-5
Published:06 July 2012
Pages:
240
Skip Bibliometrics Section
Bibliometrics
Skip Abstract Section
Abstract

With Acceptance Test-Driven Development (ATDD), business customers, testers, and developers can collaborate to produce testable requirements that help them build higher quality software more rapidly. However, ATDD is still widely misunderstood by many practitioners. ATDD by Example is the first practical, entry-level, hands-on guide to implementing and successfully applying it. ATDD pioneer Markus Grtner walks readers step by step through deriving the right systems from business users, and then implementing fully automated, functional tests that accurately reflect business requirements, are intelligible to stakeholders, and promote more effective development. Through two end-to-end case studies, Grtner demonstrates how ATDD can be applied using diverse frameworks and languages. Each case study is accompanied by an extensive set of artifacts, including test automation classes, step definitions, and full sample implementations. These realistic examples illuminate ATDDs fundamental principles, show how ATDD fits into the broader development process, highlight tips from Grtners extensive experience, and identify crucial pitfalls to avoid. Readers will learn to Master the thought processes associated with successful ATDD implementationUse ATDD with Cucumber to describe software in ways businesspeople can understand Test web pages using ATDD toolsBring ATDD to Java with the FitNesse wiki-based acceptance test framework Use examples more effectively in Behavior-Driven Development (BDD)Specify software collaboratively through innovative workshopsImplement more user-friendly and collaborative test automationTest more cleanly, listen to test results, and refactor tests for greater value If youre a tester, analyst, developer, or project manager, this book offers a concrete foundation for achieving real benefits with ATDD nowand it will help you reap even more value as you gain experience.

Contributors

Recommendations

Reviews

Robert L. Glass

This book truly bugs me. There are so many levels at which I dislike it that it's hard for me to write an objective review. Perhaps this negativism of mine is more about me than it is about the book. Bug number 1: I've always been troubled by test-driven development, despite the fact that it's a well-respected technique liked by many, especially in the agile programming world. Some time ago, I even wrote a column about why I dislike it. If you care to, have a look at [1] where I explain why. Bug number 2: The author seems to delight in taking a details-first, generalities-second approach to every topic. For example, in discussing requirements definition sessions, he describes a scenario where the customer presents a tidy, complete, definitive algorithm that the program is to implement, and the book spends a great deal of time deriving from that a series of (incomplete, nondefinitive) examples as a way of describing what the customers want. There is enormous opportunity here for letting things fall through the cracks created by the examples, when there were no cracks in the original customer statement. The author even uses a term, "specification by example," for what I would call a misbegotten approach. In addition, the first 126 pages of the book focus on some detail-level case studies, followed by 77 or so pages on the "principles" underlying the method espoused. I've never seen a book before where I so much wanted to shout, "This is wrong!" Bug number 3: The book relies heavily on some tools and techniques that are insufficiently described. For example, a tool called "Cucumber" is used to create automated test cases, without any prior explanation as to why that tool is appropriate, or what it specifically does. Bug number 4 (minor): The book re-fights some obsolete religious wars, such as when it says, "Of course the tester uses emacs, not vi." Bug number 5 (minor): A lot of the book relies on readers knowing terms and tools they may not know. For example, it describes FitNesse, another tool it advocates, as "a Wiki system in which tests can be defined in a hierarchical way using Wiki pages." Perhaps you know what that means. I don't! I did kind of like some of the foreword material by other authors. For example, Kent Beck lauds the book for "not being printed on intellectual tissue paper that falls apart at first contact with the moisture of reality," but then I like even more the old saying that "reality is the murder of a beautiful theory by a gang of ugly facts." Kent also offers a nice and concise description of what the book wants to be about: "[It] takes you from 'here's a feature I'd like' to 'how are we going to test that__?__'" But surely, in a world well populated by test-driven development books, there is one that improves on this one in lots of ways. Online Computing Reviews Service

Access critical reviews of Computing literature here

Become a reviewer for Computing Reviews.