Book Review: ATDD By Example
The purpose of ''ATDD By Example'' was to be an introductory hands-on guide to implementing and successfully applying Acceptance Test Driven Development (ATDD) from zero.
After the first couple of pages the reader will be immersed in a specification workshop and in the next chapter facing cucumber scenarios and test automation code in Ruby. The author illustrates with a small web app example how to go about promoting shared understanding with examples and automating tests in a collaborative manner between testers and developers. Other good practices exemplified in this part of the book include the business focus when defining examples (thus avoiding detailing of the user interface interaction in the specifications) and applying the Test-Driven-Development (TDD) mantra (fail/pass/refactor) to evolve the test automation code.
The second part of the book then takes a turn into an outside-in development exercise using Fitness tests and automation in Java to drive domain code discovery. The exercise provides some insights on how to avoid diving straight into the production coding without a firmer knowledge of the domain and also how to combine TDD with ATDD. Unfortunately, too much attention to Fitness testing framework gory details tends to obscure those relevant insights and make for denser reading.
While this technical start might be engaging for developers or software engineers in test it also might alienate less technical readers. People such as functional testers, business analysts and product owners are all too important to drive an acceptance (test) driven approach to success in any team. Without them the ''acceptance'' part of the title loses its meaning and becomes an assumption of ''acceptance''.
The second half of the book discusses the principles of ATDD. Although occasionally referring to the examples in the first half of the book, many concepts and ideas are thrown in without real examples. Also occasionally examples in reference books get mentioned assuming the reader has read them which partially beats the point of an introductory book.
Nevertheless, this part of the book does a reasonable job of summarizing and/or pointing to several test-related practices required for any successful agile tester. From behavior-driven-development (BDD) to test design techniques to specification by example practices to clean test code and refactoring.
In the end ''ATDD By Example'' fails to be all things to all readers because it’s too superficial for experienced readers and too broad for novices to really get started. Readers might be better served taking the time to read books that address their specific area of interest within ATDD. Be it process improvement and development cost/failure reduction through Gojko Adzic’s ''Specification By Example'', understanding the gist of test-driven development with Kent Beck’s classic book, applying BDD using Cucumber, or simply what is agile testing all about.
About the Book Author
Markus Gärtner works as an agile tester, trainer, coach and consultant with it-agile GmbH, in Hamburg, Germany. HE founded the German Agile Testing and Exploratory workshop in 2011, and cofounded the European chapter of Weekend Testing in 2010.