Test-driven development (TDD) involves writing an executable test before the solution code. Unit TDD focuses on first writing a small unit test and using that to drive development of a small solution fragment. Similarly, 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 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.
A closely related concept is known as example-driven development; this is essentially the same as acceptance TDD, but emphasizes that the concepts and tools are used primarily in the context of examples, rather than full requirements clarification.
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: