Definition

Acceptance Criteria

The specific conditions a feature or user story must meet to be accepted by stakeholders.

Full Definition

Acceptance criteria are the predefined conditions that a software feature, user story, or deliverable must satisfy to be accepted by the product owner, stakeholders, or end users. They define the boundaries of a feature — what "done" looks like in concrete, verifiable terms. Acceptance criteria transform vague requirements like "the search should be fast" into testable statements like "search results must load within 2 seconds for queries returning up to 10,000 results." They serve as a contract between the development team and stakeholders about exactly what will be delivered.


Characteristics of effective acceptance criteria:
  • Specific: Clear enough that two people would agree on whether the criterion is met
  • Measurable: Can be objectively verified through testing — not based on subjective judgment
  • Achievable: Technically feasible within the constraints of the project
  • Relevant: Directly related to the user story or feature they belong to
  • Testable: Can be translated into one or more test cases for verification


Common formats for acceptance criteria:
  • Given-When-Then (BDD style):
  • Given [context/precondition]
  • When [action is performed]
  • Then [expected outcome]
  • Example: "Given a logged-in user with items in their cart, When they click Checkout, Then they should be directed to the payment page with the correct total displayed"


  • Checklist/Rule-based:
  • The form must validate email format before submission
  • Error messages must appear within 500ms
  • The feature must work in Chrome, Firefox, and Safari
  • Passwords must be at least 8 characters with one uppercase and one number


  • Scenario-based:
  • Describe specific usage scenarios that must work correctly
  • Include both positive (happy path) and negative (error handling) scenarios


The role of acceptance criteria in testing:

Acceptance criteria are the primary source for deriving test cases. Each criterion should map to at least one test case that verifies it. When testers write test cases from acceptance criteria, they provide a direct link between what was requested, what was tested, and whether it passed — this is the foundation of requirements traceability. During test execution, testers use acceptance criteria as the benchmark for pass/fail decisions. During UAT, stakeholders verify the system against acceptance criteria before giving sign-off.


Common mistakes with acceptance criteria:

The most prevalent error is writing acceptance criteria that are too vague. "The system should be user-friendly" or "Performance should be acceptable" are not acceptance criteria — they're wishes. Without specificity, developers don't know what to build, testers don't know what to verify, and stakeholders will inevitably be disappointed because their mental model of "user-friendly" differs from everyone else's. Another common mistake is writing acceptance criteria after development is complete, turning them into a retroactive justification for what was built rather than a specification for what should be built. Acceptance criteria must be defined and agreed upon before development begins. Teams also frequently write acceptance criteria that only cover the happy path, ignoring error handling, edge cases, and non-functional requirements.


Best practices:
  • Define acceptance criteria during refinement/planning, not after development
  • Write criteria collaboratively — involve the product owner, developer, and tester (the "Three Amigos")
  • Include both functional criteria (what the feature does) and non-functional criteria (performance, accessibility, security)
  • Keep criteria independent — each criterion should be verifiable on its own
  • Limit to 5-10 criteria per user story — too many suggests the story is too large and should be split
  • Use acceptance criteria as the definition of done for the story — if all criteria pass, the story is complete

Examples

  • 1.User Story: "As a customer, I want to filter products by price range" — Acceptance Criteria: (1) Price filter shows min/max inputs, (2) Results update within 1 second of applying the filter, (3) Products outside the range are excluded, (4) Filter persists when navigating between pages, (5) Clearing the filter restores all products
  • 2.Given a user uploads a CSV file with valid data, When processing completes, Then all records should be imported with a success message showing the count — and given a CSV with invalid rows, when processing completes, then valid rows should be imported and invalid rows listed in an error report with line numbers and reasons
  • 3.Acceptance criteria for a password reset feature: reset link expires after 24 hours, link can only be used once, user must set a password meeting complexity requirements, user receives confirmation email after successful reset, old password no longer works after reset
  • 4.Non-functional acceptance criteria for a reporting page: the report must load within 3 seconds for datasets up to 100,000 records, the page must be accessible via keyboard navigation, the export function must support CSV and PDF formats, and the page must work in all supported browsers
  • 5.Sprint review acceptance criteria checklist: product owner reviews each criterion in a live demo, marks each as Accepted or Rejected with comments, and rejected criteria are returned to the backlog with clarifying notes for the next sprint

In BesTest

BesTest enables linking test cases directly to acceptance criteria through the requirements traceability module. Each acceptance criterion can be defined as a requirement with linked test cases, and the coverage dashboard shows exactly which criteria have been verified and which are pending. The significance-based coverage model ensures high-impact criteria receive proportionally thorough testing.

See Acceptance Criteria in Action

Experience professional test management with BesTest. Free for up to 10 users.

Try BesTest Free