Skip to main content

Acceptance criteria guide

How to write acceptance criteria

Acceptance criteria define when a feature is done. Written well, they eliminate guesswork for developers, give QA a clear target, and prevent the endless “is this done?” debate.

What are acceptance criteria?

Acceptance criteria are specific conditions that a feature must meet to be accepted by the Product Owner. They bridge the gap between user stories and what developers actually build.

Why they matter

Without clear acceptance criteria:

Developers interpret requirements differently than intended

QA does not know what to test

Features are declared done before they actually work

Teams argue about what was agreed

Two formats

Pick the format that matches the complexity of what you’re describing. Both are valid; use them in combination on the same ticket if it helps.

Format 1

Checklist

Simple bullet points. Good for straightforward features where the behavior is clear without needing to spell out context or triggers.

User can upload a profile photo (JPG, PNG, WebP, max 5MB)

Photo is displayed within 3 seconds of upload

Error message shown if file exceeds size limit

Previous photo is replaced, not duplicated

Format 2

Given / When / Then (Gherkin)

Behavior-driven. Great for complex flows and QA automation. Forces you to spell out the starting state, the action, and the expected result.

The format

GIVEN [initial context]
WHEN [the action or event]
THEN [the expected outcome]

Example
Given

a user is on the profile page and is logged in

When

they upload a file larger than 5MB

Then

an error message ‘File size must be under 5MB’ is displayed and the file is not uploaded

What makes a good acceptance criterion

Good acceptance criteria share four properties. Check each one before adding criteria to a ticket.

1

Testable

Can a QA engineer write a test case from it? If yes, it is good.

2

Specific

‘User can see their profile’ is bad. ‘User can see their display name, photo, and email on the profile page’ is good.

3

Outcome-focused

Describes what happens, not how it is built.

4

Edge cases covered

What happens when the input is empty? Too long? The network is down?

Common mistakes

Most weak acceptance criteria fall into one of three patterns.

UI implementation details

Wrong

‘The button should be blue’

Fix

This is design, not acceptance criteria. Acceptance criteria describe behavior, not appearance.

Vague language

Wrong

‘The page loads fast’

Fix

‘Fast’ means different things to different people. Write ‘Page loads in under 2 seconds on a 4G connection’ instead.

Missing negative cases

Wrong

Only describing the happy path

Fix

What happens when things go wrong? Cover failed states, empty states, and error conditions.

For your role

Acceptance criteria are a shared responsibility, but each role has a different job to do with them.

PM/POProduct Manager / Product Owner

Write acceptance criteria before sprint planning. Items without criteria should not enter a sprint.

BABusiness Analyst

Use Given/When/Then for complex business rules and edge cases where behavior needs to be unambiguous.

QAQA Engineer

Acceptance criteria are your test cases. If criteria are missing, block the story.

Next steps

Apply in the Agile workflow

See how acceptance criteria fit into sprint planning, backlog refinement, and the definition of done inside a real Agile team.

Agile workflow guide