User Stories are widely accepted in agile projects for the documentation of requirements. Written in “Business” like language they describe the objective or feature that a person would like to utilise from the system. Acceptance Criteria go hand in hand with User Stories and are used to assess the delivered solution the users’ requirements. Acceptance Criteria define the conditions that must be met for solution to be accepted by the end user. They also written in “Business” like language. The below describes in more detail how Acceptance Criteria can be used to improve the quality of software solutions.

What do we want to achieve?

Quality application delivery with a simple way to assess and track quality/issue/bug.

How can we achieve this?

  • Define test/acceptance criteria which closely represent requirements for each user story right after requirements are agreed and signed-off.
  • Use simple test script format
Given = Pre-conditions
When = Action
Then = Result

 

An Example

User Story

As a new applicant, I need to provide my personal details so that I can be identified personally and more easily.

Test/Acceptance Criteria

Given I am a new applicant
and I have filled in <Title>, <First Name>, <Middle Name>, <Last Name>, <Gender>, <DOB>
When I click “Continue”
Then I get <Result>​

 

Title First Name Middle ​Name Last Name Gender DOB Result
NIL NIL NIL NIL NIL NIL Error. Title, First Name, Last Name, Gender and DOB are mandatory.
NIL Test NIL Test NIL NIL Error. Title, Gender and DOB are mandatory.
Sir Test test Test Female 1/01/1950 Error. Title and Gender do not match.
Mrs Test test Test Male 1/01/1950 Error. Title and Gender do not match.
Miss Test test Test Female 1/01/1900 Error. Date of Birth must be after 28/01/1901
Miss Test test Test Female Today Error. Age cannot be younger than 16 years old.
Miss Test test Test Female 1/01/1950 No error. Next step “Contact & Address Details” appears.

 

Advantages of using Acceptance Criteria

  • Simpler and more concise test script in a “Business” like language
  • Suitable to be reused for automated testing
  • Multiple test scenarios in one test script
  • Pre-prepared test data to assist testing
  • Easier bug logging