liveBook · Manning

Acceptance criteria

As explained in BDD in Action, Second Edition

An acceptance criterion is a condition that a feature or user story must satisfy to be accepted as complete.

A story such as “require a secure password” sounds clear until the team asks which passwords count as secure and what happens when one is rejected. Acceptance criteria turn such questions into conditions that stakeholders, testers, and developers can use to decide whether a feature is complete. They clarify the story’s scope and boundaries, expose assumptions, and give implementation and testing a shared target. section 5.2.3 section 6.2

Start with a short, provisional list of criteria on a story card or backlog item; do not expect it to be exhaustive. Shortly before implementation, discuss examples and counterexamples with business stakeholders, testers, and developers. Use their answers to refine the rules and agree on observable outcomes. The criteria can then become scenarios: Given a context, When something happens, Then an expected outcome follows. section 5.2.3 section 6.0 section 3.4

A password rule changes under scrutiny

An initial list requires at least eight characters, a digit, punctuation, and an error message for insecure passwords. Discussion raises questions about letter case and what feedback is useful. A table of proposed passwords and expected results helps the team test its assumptions; a later table distinguishes weak, medium, strong, and very strong passwords, and marks which are acceptable. The examples make the rule more precise than the initial bullets. section 6.2

Password

Strength

Acceptable

secret

Weak

No

password

Weak

No

password1

Weak

No

aBcdEfg1

Weak

No

qwertY12

Weak

No

dJeZDip1

Medium

Yes

SeagullHedgehog

Strong

Yes

SeagullHedgehogCatapult

Very strong

Yes

Compare password examples by both assessed strength and acceptability; the rows make the intended boundary available for discussion. section 6.2

Where worthwhile, automate agreed scenarios as executable specifications. They guide development, check completion, and run again after changes to catch regressions. Automation is a choice, not a requirement for every criterion: some scenarios remain manual, while others fit unit or integration tests better. Choose a test level that matches the behavior: visible password-strength feedback suits a web test, whereas classifying many passwords suits a code-level test. section 2.3.6 section 8.0 section 10.2.3

Keep criteria current when requirements change. If users now need four upcoming trains rather than two, change the scenario first: its failure shows the gap between requested and implemented behavior. For a missed bug, add a criterion that reproduces it before fixing it. Passing tests can show implemented criteria, but green results alone do not prove an entire feature is ready when other criteria remain pending or unautomated. section 3.7 section 16.2.2

How BDD in Action, Second Edition covers it

How deep it goes
Traces provisional notes through collaborative examples, scenarios, automation, test-level choices, and maintenance without requiring every criterion to be automated.
Examples
Uses password-strength tables, train-departure scenarios, and pending authentication scenarios to expose boundaries, changes, and unfinished work.
What it assumes
Assumes a feature or User Story to discuss, while teaching how initially incomplete criteria become clearer through concrete examples.
What you can do after
Practice/perform collaborative refinement of criteria, then use scenarios to judge completion and identify gaps when requirements change.
How it connects
Links User Stories, business rules, Given–When–Then scenarios, executable specifications, regression testing, and feature coverage.

Also explained in

Compare how 6 books explain acceptance criteria →

Related concepts

This explainer was generated by Manning's knowledge graph from the text of BDD in Action, Second Edition. The section links point to the parts of the book it draws on.