In this intense one-day class, we explore the ATDD cycle of Discuss-Distill-Develop-Deliver and how it fits with other Agile practices including TDD, Continuous Integration, and Exploratory Testing. Along the way, we consider the collaborative nature of this practice, styles of tests that come out of it, and tools that support it.
About ATDD
In The Seven Habits of Highly Effective People, Stephen R. Covey names "Begin with the End in Mind" as the second of the seven habits. This habit applies not just to individuals, but also to software development teams. In Acceptance Test Driven Development (ATDD), the whole team (including the Product Owner) capture examples and expectations, then collaborates to distill these into acceptance tests that define the essence of "Done."Modern testing frameworks such as Fitnesse, Cucumber, Robot Framework, and others enable the team to express these acceptance tests in natural language. The resulting tests may read like traditional manual test scripts, but they’re actually automated. It’s not magic: agile-friendly frameworks connect the natural language tests with underlying test automation code. The end result is that the acceptance tests become executable requirements.
Agenda
- Overview of the whole cycle: Discuss, Distill, Develop, Deliver
- A mock User Story workshop (Discuss)
- Articulating expectations (Distill)
- Tools: comparing and contrasting Agile-friendly test automation tools
- Contrasting TDD and ATDD (Develop)
- ATDD in context: the rest of the delivery cycle (Deliver)
- Next steps
By the end of the day, participants have a solid grasp of the ATDD cycle, how natural language acceptance tests help to forge alignment and shared understanding, and how to select a test automation framework to support this practice.
Note: this is a demonstration based class, not hands-on tool training. No particular technical background is assumed. You will not be writing code in class. However, every class we teach is tailored to the people in the room. Thus we tailor the depth of focus on the tools and programming side of ATDD to the audience of each class. Want more nuts and bolts of implementation? Or would you rather have more focus on the collaborative requirements elicitation and team interactions? Either way we can accommodate you. Just ask.
