The practice of agile software development requires a clear understanding of business needs. Misunderstanding requirements causes waste, slipped schedules, and mistrust within the organization. Developers can implement their perceived interpretation of requirements; testers can test against their perceptions. Disagreement about implementation defects can arise, when the cause is really a disagreement about the requirement. We show how acceptance tests decrease misunderstanding of requirements by both developers and testers. A testable requirement provides a single source that serves as the analysis document, acceptance criteria, regression test suite, and progress-tracker for any given feature.
In this session, we explore the creation, evaluation, and use of testable requirements by the business and developers. We examine how to transform requirements into stories – small units of work – that each have business value, small implementation effort, and easy to understand acceptance tests. We show how testers and requirement elicitors can work together to create acceptance tests prior to implementation.