Acceptance Criteria Examples for Testable Requirements

ยท 7 min read

Acceptance criteria are the short, checkable statements that decide whether a requirement is done. Write them as lines that are either true or false, from the point of view of the user or the system, and keep one check per line. There are three common formats: a plain checklist, Given/When/Then scenarios and a rule list. Below are examples of each, and how to choose.

What acceptance criteria are for

A requirement says what the software must do. Acceptance criteria say how someone will check that it does. Without them, "done" becomes a negotiation at the end of the work: the developer thinks a feature is finished, the client expected something else, and both are reasonable.

Three people use the criteria:

The criteria also make the estimate more honest. A requirement such as "users can export reports" can mean an afternoon or a month. Three criteria that name the formats, the size limit and the time it may take show which one you are pricing. If you are still deciding what belongs in the requirement itself, start with functional requirements examples.

Three formats compared

Format What it looks like Best for Weak spot
Checklist A short list of true-or-false statements Most requirements; reviews with non-technical people Can hide an order of steps or a failure path
Given/When/Then A scenario with a starting state, an action and a result Behaviour that depends on state, rules with exceptions, anything a tester will automate Long when overused; easy to write vague steps
Rule list "Always", "never" and "only when" statements Business rules, permissions, limits Does not show the sequence of what happens

You can mix formats in one project. Pick per requirement, not per document.

The same requirement in all three formats

The examples use Fieldwise, an invented field-service app for technicians. The requirement is "A technician records work done, parts used, photos and a customer confirmation, then closes the visit."

As a checklist

As Given/When/Then

Scenario: Technician closes a visit with a confirmation
  Given a visit with status "In progress"
  And the technician has added work done and one photo
  When the technician records the customer's confirmation and closes the visit
  Then the visit status becomes "Closed"
  And the closed visit is sent to the dispatch system

Scenario: Closing without a confirmation
  Given a visit with status "In progress"
  When the technician tries to close the visit without a customer confirmation
  Then the visit stays "In progress"
  And the app shows which field is missing

The keywords come from Gherkin, the language used by Cucumber. Its reference describes Given steps as setting the initial context of the system, When steps as an event or an action, and Then steps as an expected outcome (Gherkin reference). Keep the outcome observable from outside: what the user sees or receives, not which table was updated.

As a rule list

For this requirement the checklist is the quickest to read, the scenarios are the clearest for the failure case, and the rules are the cleanest for permissions. A practical routine is to write the checklist first and expand only the lines that cause arguments.

Here is how requirements look as records when the criteria are kept with them. The project is invented, and each record has an ID, a type, a priority and a status:

Requirements table from the Fieldwise example report, invented project: five requirements with ID, type, MoSCoW priority and status

Examples by requirement type

Acceptance criteria are not only for functional requirements. Each type needs a different kind of check.

Functional: password reset

Non-functional: speed

Non-functional: availability offline

Constraint: data location

For the non-functional side, non-functional requirements examples has more patterns with numbers and conditions.

Common mistakes

Review checklist

Before the requirements go to sign-off, check each Must and Should:

The discovery phase checklist asks the first of these questions about requirements. It is part of a longer list of questions to answer before a discovery is signed off:

Requirements section of the discovery phase checklist: questions about testable requirements, acceptance criteria for every Must, links to goals, non-functional needs, priorities and contradictions

You can use the full discovery phase checklist as a starting point, and the software requirements document template shows where acceptance criteria sit among the other sections of a requirements document. If a priority question comes up while you write them, the MoSCoW prioritization guide explains how to sort Musts from Shoulds.