Specification by example is a powerful technique to help clarify detailed requirements. This workshop teaches you how to apply specification by example to bridge the communication gap between stakeholders and implementation teams, build quality into software from the start, design, develop and deliver systems fit for purpose.
Acceptance TDD involves writing one or more systems-level acceptance tests (or “customer tests”) for a customer-centric feature, before the solution. This brings together product management, developers, and testers at the start of each iteration to clarify and align on the iteration goals and requirements, by speaking a common, useful, and relative unambiguous language: requirements as executable tests. This is enabled with free open source technologies such as FIT and Robot, both which support creating keyword-driven table-based executable tests. Thus, acceptance TDD is primarily a method that brings together the stakeholders early on to clarify requirements through examples as executable tests. The traditional lines between requirements and tests become blurred – in a good way.
In this hands-on, skills-rich workshop, you will learn the method of specification by example and acceptance TDD, including how to approach requirements-as-tests and tests-as-requirements, the different kinds of FIT or Robot tests, how developers, product management and testers can work together from the start, and how to connect FIT or Robot tests to the underlying system.
If it is delivered as a short 1-day course, the emphasis will be on specification by example, and only discussion of mapping to executable ATDD technologies; in the 2-day version, it includes hands-on definition of executable acceptance tests.
You will leave with practical skill in doing acceptance TDD and example-driven development, and a new vision of how to do requirements, testing and development.
Discussion, presentation, Q&A, workshop exercises
Anyone involved in learning, sharing or executing requirements or tests for systems development: product management, developers, testers, technical leaders.
Intermediate: This course introduces concepts and techniques that the attendee will apply during the workshop.
general involvement in systems development as a product manager, tester, or developer
Upon completion of this course, students should be able to: