Many people agree that one important outcome of Behavior Driven Development is a set of regression tests to demonstrate the desired behavior and ensure that it is maintained over time. Then they often struggle to do so in a manner that remains maintainable as the system and the test code grows larger. Sometimes they even abandon their tests and start over, repeatedly.
In this book we demonstrate the changing needs as the application and suite of tests grow. We identify some of the patterns that help us manage the complexity over time.
The book uses an racehorse fortune-telling application, EquineHoroscope (https://github.com/gdinwiddie/EquineHoroscope) for illustration. The code is in Java, and the tests use Cucumber and JUnit. The IDE is Eclipse. The concepts and patterns, however, are useful in other languages and tools.
Some of the lessons:
- How and when to shift focus between business and programmer levels
- Extracting "helper" code out of test scenarios
- Giving meaningful shape to "helper" code
- Articulating layers of test code
The first publication coincided with the Agile Alliance Technical Conference 2016 in Raleigh, North Carolina. Attendees to my session on this topic (http://aatc2016.sched.org/event/5ycy/evolutionary-anatomy-of-test-automation-code-george-dinwiddie) were given a coupon code for a free copy of this book.
Since then, I've given talks at other conferences based on this material.