EARS
Learn to write clear, testable requirements using the EARS format - Easy to understand, Atomically testable, Referenced and Specific
Last updated: 8/15/2025
EARS Format for Requirements
The EARS format is a structured approach to writing clear, testable requirements that every developer should master. EARS stands for Easy to understand, Atomically testable, Referenced and Specific. This format transforms vague feature requests into precise, actionable development tasks.
What is EARS Format?
EARS provides a systematic way to write requirements that are:
- Clear to all stakeholders including developers, designers and business users.
- Testable with specific acceptance criteria.
- Traceable through the development lifecycle.
- Unambiguous to prevent scope creep and misunderstandings.
The EARS Acronym Explained
E - Easy to Understand
Requirements should be written in plain language that anyone can understand, regardless of their technical background. Avoid jargon and complex terminology.
Poor example: "Implement OAuth 2.0 authentication flow with PKCE" Better example: "Users can log in using their Google or Microsoft account"
A - Atomically Testable
Each requirement should be independently testable. Break down complex features into smaller, testable units that can be verified individually.
Poor example: "Build a complete e-commerce system" Better example: "Users can add items to their shopping cart"
R - Referenced
Requirements should be traceable to business objectives and user needs. Each requirement should answer "why" it exists.
Poor example: "Add a search bar" Better example: "Add a search bar so users can quickly find products without browsing categories"
S - Specific
Requirements must be precise and detailed enough that developers know exactly what to build and testers know exactly what to verify.
Poor example: "Make it fast" Better example: "Search results should appear within 2 seconds for queries up to 50 characters"
User Story Structure
The foundation of EARS format is the user story structure:
As a [user role]
I want [functionality]
So that [benefit/value]
User Story Examples
Example 1: Password Reset
As a customer
I want to reset my password
So that I can access my account when I forget my credentials
Example 2: Product Search
As a shopper
I want to search for products by name or category
So that I can quickly find what I'm looking for without browsing through all items
Example 3: Order Tracking
As a customer
I want to track my order status
So that I know when my package will arrive
Acceptance Criteria
Every requirement needs specific acceptance criteria that define when it's complete. Use the Given-When-Then format:
Given [initial context]
When [action occurs]
Then [expected outcome]
Acceptance Criteria Examples
Password Reset Feature:
Given a user is on the login page
When they click "Forgot Password"
Then they receive an email with a password reset link
Given a user clicks the password reset link in their email
When they enter a new password
Then their password is updated and they can log in
Product Search Feature:
Given a user is on the product page
When they type "laptop" in the search box
Then they see all products with "laptop" in the name or description
Given search results are displayed
When a user clicks on a product
Then they are taken to that product's detail page
Writing Effective Requirements
1. Start with the User
Always begin by identifying who the requirement is for. Be specific about user roles and personas.
2. Focus on Value
Every requirement should clearly state the benefit or value it provides to the user.
3. Keep it Simple
Break complex features into smaller, manageable requirements that can be developed and tested independently.
4. Be Specific
Include specific details about functionality, performance, and constraints.
5. Make it Testable
Write requirements that can be verified with clear acceptance criteria.
Common Mistakes to Avoid
Vague Language
Avoid: "Make it user-friendly" Use: "Users can complete checkout in 3 clicks or less"
Missing Context
Avoid: "Add a button" Use: "Add a 'Save Draft' button so users can save their work without publishing"
Unclear Acceptance Criteria
Avoid: "It should work properly" Use: "Users receive a confirmation email within 5 minutes of completing their order"
Scope Creep
Avoid: "Build a complete CRM system" Use: "Users can create and edit customer contact records"
EARS in Practice
Before EARS
"Add user authentication"
After EARS
As a user
I want to log in with my email and password
So that I can access my personal account
Acceptance Criteria:
Given a user is on the login page
When they enter valid credentials and click "Login"
Then they are redirected to their dashboard
Given a user enters invalid credentials
When they click "Login"
Then they see an error message and remain on the login page
Benefits of Using EARS
- Reduced ambiguity - Clear requirements prevent misunderstandings
- Better testing - Specific acceptance criteria make testing more effective
- Improved collaboration - All stakeholders understand what's being built
- Faster development - Developers know exactly what to implement
- Easier estimation - Clear requirements lead to better time estimates
- Reduced rework - Specific requirements prevent scope changes
When to Use EARS
EARS format is ideal for:
- Feature requirements - New functionality being added to a system
- User stories - Agile development and sprint planning
- Bug fixes - Defining what needs to be fixed and how
- Enhancements - Improving existing functionality
- Integration requirements - Connecting different systems or services
Next Steps
After mastering EARS format, you'll be ready to:
- Create comprehensive Product Requirements Documents (PRDs)
- Write effective user stories for agile development
- Collaborate more effectively with stakeholders
- Build software that meets user needs precisely
Template
Use this template for writing EARS-compliant requirements:
**Requirement Title:** [Brief description]
**User Story:**
As a [user role]
I want [functionality]
So that [benefit/value]
**Acceptance Criteria:**
Given [initial context]
When [action occurs]
Then [expected outcome]
**Additional Notes:** [Any constraints, assumptions, or technical details]
Mastering the EARS format will transform how you approach requirements gathering and software development, leading to better products and more successful projects.