Founder
What is Acceptance Criteria?
Acceptance criteria (AC) define when a user story is "done." They:
- Specify expected behavior
- Create testable requirements
- Align stakeholders and developers
The GIVEN-WHEN-THEN Format
The most common format:
GIVEN [context/precondition]
WHEN [action/trigger]
THEN [expected outcome]
Example
GIVEN I am a logged-in user
WHEN I click the "Export" button
THEN a CSV file downloads with my data
AND the file name includes today's date
Rules for Good Acceptance Criteria
Rule 1: Be Specific
Bad: "The page loads quickly" Good: "The page loads in under 2 seconds on 3G connection"Rule 2: Be Testable
Can QA verify this? If not, it's not a good criterion.
Bad: "The design looks professional" Good: "The button uses primary color #EA580C with 8px border-radius"Rule 3: Cover Edge Cases
Don't just test the happy path:
GIVEN I submit the form with an invalid email
WHEN the validation runs
THEN an error message "Please enter a valid email" appears
AND the email field is highlighted in red
Rule 4: Include Error States
GIVEN the API is unavailable
WHEN I try to save my changes
THEN a retry option appears
AND my changes are saved locally
Common AC Mistakes
Mistake 1: Too Vague
Bad: "User can log in" Good:GIVEN I am on the login page
WHEN I enter valid credentials and click "Log In"
THEN I am redirected to the dashboard
AND my session is active for 24 hours
GIVEN I enter an incorrect password
WHEN I click "Log In"
THEN I see "Invalid email or password"
AND I am not logged in
Mistake 2: Too Technical
AC should be readable by non-technical stakeholders. Avoid implementation details.
Mistake 3: Missing Non-Functional Requirements
Include performance, accessibility, security where relevant:
AND the action completes within 500ms
AND the button is keyboard accessible
AND the data is encrypted in transit
Using AI for Acceptance Criteria
AI can help generate initial AC from user stories:
- Identify edge cases you might miss
- Suggest non-functional requirements
- Maintain consistent format
This article was generated by SeoMate - AI-powered SEO content generation.



