SlideShare a Scribd company logo
1 of 12
Download to read offline
Acceptance criteria
vs. Functional requirements
by Anna Dąbrowska
1. Who?
2. What?
3. Why?
User stories
Never go into development without the story or narrative having:
• priority
• story or narrative (depending on complexity)
• acceptance criteria
• knowing what the end to end test scenario is /are
• sign off from the customer for all of the above
• an estimate from iteration based on all of the above
What are Acceptance Criteria?
Acceptance Criteria are a set of statements, each with a clear pass/fail
result, that can be measured and specify both functional and non-
functional requirements.
Acceptance Criteria are the conditions that a software product must
satisfy to be accepted by a user, customer, or in the case of system
level functionality, the consuming system.
Why to write?
• Define the boundaries for a user story/feature
• Help the product owner answer what she needs
in order for this feature to provide value
(typically these are the minimum functional requirements)
• Help the team gain a shared understanding
of the story/feature (BEFORE development has started)
• Help developers and testers to derive tests
• Help developers know when to stop adding
more functionality to a story
*Icons are created by Nathanael Coyne (@nathanaelb).
How to write?
Good acceptance criteria:
• State an intent not a solution (e.g. “The user can choose an
account” rather than “The user can select the account from a
drop-down”)
• Are independent of implementation
• Are relatively high level (not every detail needs to be in
writing)
• Are SMART
• Have observable result
• Include actor/actions/environment/conditions/context
• Are written from user perspective
How not to write?
Watch out for
• Ambiguous language
• Subjective/Judgemental language (Better, Good, Allowable)
• Generalisations (All the time, Never, Everyone, Always)
• Observed behaviour that is not directly related to the story
currently under consideration
Methods to write
1. Scenario style approach
• Happy Path
• Alternative Path
• Bad Path
2. BDD style acceptance criteria
• Given <a condition>
• When <an event occurs>
• Then <expect this outcome>
When to write?
! Avoid is writing acceptance criteria after development has
started
WHAT is expected,
and not HOW the functionality will be implemented.
What. Not How
Functional requirements Acceptance criteria
Requirements are what you're
supposed to do in terms of given
story.
Acceptance Criteria are the agreed upon
measures to prove you've done.
Acceptance Criteria are defined as conditions
that a User Story must satisfy to be accepted
by a user, customer or other stakeholder.
Example. Try to write
Functional requirements
1. Site language corresponds to chosen one
2. Language can be changed
3. Default language icon appears in top right corner
4. English is a default language
5. Dropdown with list of languages appears by clicking on language flag in right
top corner
6. User can select language by clicking on corresponding one in drop-down
menu
7. Site content changes to selected language after user has clicked on its
name/icon in switching drop-down
8. List of languages and translations are grabbed from admin panel
As a user I want to switch application language so that I understand app
content
Example. Try to write
1. User can change site language
2. Site content corresponds to selected
language
3.Translation is correct and doesn’t contain
critical mistakes
4. Translated content doesn't break any specific
layout
5. No bugs of high and normal priority related to
switching languages remain open
Acceptance criteria
As a user I want to switch application language so that I understand
app content
Questions?

More Related Content

What's hot

Writing Effective User Stories
Writing Effective User StoriesWriting Effective User Stories
Writing Effective User StoriesJaneve George
 
Workshop - Writing Good User Stories
Workshop - Writing Good User Stories Workshop - Writing Good User Stories
Workshop - Writing Good User Stories Easy Agile
 
21 Story Splitting Patterns
21 Story Splitting Patterns21 Story Splitting Patterns
21 Story Splitting PatternsKent McDonald
 
User Story Mapping in Practice
User Story Mapping in PracticeUser Story Mapping in Practice
User Story Mapping in PracticeSteve Rogalsky
 
Introducing Agile User Stories
Introducing Agile User StoriesIntroducing Agile User Stories
Introducing Agile User StoriesRam Srivastava
 
Strategies to split user stories
Strategies to split user storiesStrategies to split user stories
Strategies to split user storiescpolc
 
Agile User Stories
Agile User StoriesAgile User Stories
Agile User Storieskahgeh75
 
Writing User Stories (04/2012)
Writing User Stories (04/2012)Writing User Stories (04/2012)
Writing User Stories (04/2012)Mai Quay
 
User Story Mapping Workshop (Design Skills 2016)
User Story Mapping Workshop (Design Skills 2016)User Story Mapping Workshop (Design Skills 2016)
User Story Mapping Workshop (Design Skills 2016)Bartosz Mozyrko
 
User Story Maps: Secrets for Better Backlogs and Planning
 User Story Maps: Secrets for Better Backlogs and Planning User Story Maps: Secrets for Better Backlogs and Planning
User Story Maps: Secrets for Better Backlogs and PlanningAaron Sanders
 
Agile Software Development Overview
Agile Software Development OverviewAgile Software Development Overview
Agile Software Development OverviewStewart Rogers
 
Agile Process Introduction
Agile Process IntroductionAgile Process Introduction
Agile Process IntroductionNguyen Hai
 
Agile practices using jira atlassian
Agile practices using jira atlassianAgile practices using jira atlassian
Agile practices using jira atlassianMichal Epstein
 

What's hot (20)

Writing Effective User Stories
Writing Effective User StoriesWriting Effective User Stories
Writing Effective User Stories
 
Workshop - Writing Good User Stories
Workshop - Writing Good User Stories Workshop - Writing Good User Stories
Workshop - Writing Good User Stories
 
21 Story Splitting Patterns
21 Story Splitting Patterns21 Story Splitting Patterns
21 Story Splitting Patterns
 
User Stories explained
User Stories explainedUser Stories explained
User Stories explained
 
Jira Agile
Jira AgileJira Agile
Jira Agile
 
How to write good user stories
How to write good user storiesHow to write good user stories
How to write good user stories
 
User stories in agile software development
User stories in agile software developmentUser stories in agile software development
User stories in agile software development
 
User Story Mapping in Practice
User Story Mapping in PracticeUser Story Mapping in Practice
User Story Mapping in Practice
 
Introducing Agile User Stories
Introducing Agile User StoriesIntroducing Agile User Stories
Introducing Agile User Stories
 
Strategies to split user stories
Strategies to split user storiesStrategies to split user stories
Strategies to split user stories
 
Agile User Stories
Agile User StoriesAgile User Stories
Agile User Stories
 
Effective user stories for your agile or Scrum team
Effective user stories for your agile or Scrum teamEffective user stories for your agile or Scrum team
Effective user stories for your agile or Scrum team
 
Writing User Stories (04/2012)
Writing User Stories (04/2012)Writing User Stories (04/2012)
Writing User Stories (04/2012)
 
Epics and User Stories
Epics and User StoriesEpics and User Stories
Epics and User Stories
 
Jira training
Jira trainingJira training
Jira training
 
User Story Mapping Workshop (Design Skills 2016)
User Story Mapping Workshop (Design Skills 2016)User Story Mapping Workshop (Design Skills 2016)
User Story Mapping Workshop (Design Skills 2016)
 
User Story Maps: Secrets for Better Backlogs and Planning
 User Story Maps: Secrets for Better Backlogs and Planning User Story Maps: Secrets for Better Backlogs and Planning
User Story Maps: Secrets for Better Backlogs and Planning
 
Agile Software Development Overview
Agile Software Development OverviewAgile Software Development Overview
Agile Software Development Overview
 
Agile Process Introduction
Agile Process IntroductionAgile Process Introduction
Agile Process Introduction
 
Agile practices using jira atlassian
Agile practices using jira atlassianAgile practices using jira atlassian
Agile practices using jira atlassian
 

Viewers also liked

Agile Acceptance Criteria How To
Agile Acceptance Criteria How ToAgile Acceptance Criteria How To
Agile Acceptance Criteria How ToPayton Consulting
 
Acceptance criteria reloaded
Acceptance criteria reloaded Acceptance criteria reloaded
Acceptance criteria reloaded Mauro Ferratello
 
IIT Academy: 204 User stories and acceptance criteria
IIT Academy: 204 User stories and acceptance criteriaIIT Academy: 204 User stories and acceptance criteria
IIT Academy: 204 User stories and acceptance criteriaSteven HK Ma | 馬國豪
 
Acceptance Criteria
Acceptance CriteriaAcceptance Criteria
Acceptance CriteriaSumeet Moghe
 
Acceptance Criteria with SpecFlow
Acceptance Criteria with SpecFlowAcceptance Criteria with SpecFlow
Acceptance Criteria with SpecFlowMarcin Floryan
 
Rt acceptance criteria by zas
Rt acceptance  criteria by zasRt acceptance  criteria by zas
Rt acceptance criteria by zaszaheer sajid
 
Jornal HOJE! - Edição 840
Jornal HOJE! - Edição 840Jornal HOJE! - Edição 840
Jornal HOJE! - Edição 840Jornal HOJE!
 
Zed innovation intro
Zed innovation introZed innovation intro
Zed innovation introZiv Kohav
 
QA Fest 2015 - Diana Dolina
QA Fest 2015 - Diana DolinaQA Fest 2015 - Diana Dolina
QA Fest 2015 - Diana DolinaDataArt
 
นิทาน
นิทานนิทาน
นิทานExitOfLove
 
180 blue dining room training
180 blue dining room training180 blue dining room training
180 blue dining room trainingBill Buffalo
 
“Разговоры на разных диалектах”, Артем Захарченко, DevPro
“Разговоры на разных диалектах”, Артем Захарченко, DevPro“Разговоры на разных диалектах”, Артем Захарченко, DevPro
“Разговоры на разных диалектах”, Артем Захарченко, DevProDataArt
 
Яна Пролис "Создаем Dream Team"
Яна Пролис "Создаем Dream Team"Яна Пролис "Создаем Dream Team"
Яна Пролис "Создаем Dream Team"DataArt
 
Constitucionalidad internet
Constitucionalidad internetConstitucionalidad internet
Constitucionalidad internetJoel Quintana
 
"В поисках эффективности: Slack и BitBucket", Юлия Писаревская, GoodSellUs
"В поисках эффективности: Slack и BitBucket", Юлия Писаревская, GoodSellUs"В поисках эффективности: Slack и BitBucket", Юлия Писаревская, GoodSellUs
"В поисках эффективности: Slack и BitBucket", Юлия Писаревская, GoodSellUsDataArt
 
Propiedad intelectual del soft ware
Propiedad intelectual del soft warePropiedad intelectual del soft ware
Propiedad intelectual del soft wareJoel Quintana
 
Александр Кашеверов — Коротко про WEB: HTML, CSS, JS.
Александр Кашеверов — Коротко про WEB: HTML, CSS, JS.Александр Кашеверов — Коротко про WEB: HTML, CSS, JS.
Александр Кашеверов — Коротко про WEB: HTML, CSS, JS.DataArt
 
Que es el internet programacion web
Que es el internet programacion webQue es el internet programacion web
Que es el internet programacion webDiego Rojas
 

Viewers also liked (20)

Agile Acceptance Criteria How To
Agile Acceptance Criteria How ToAgile Acceptance Criteria How To
Agile Acceptance Criteria How To
 
Acceptance criteria reloaded
Acceptance criteria reloaded Acceptance criteria reloaded
Acceptance criteria reloaded
 
IIT Academy: 204 User stories and acceptance criteria
IIT Academy: 204 User stories and acceptance criteriaIIT Academy: 204 User stories and acceptance criteria
IIT Academy: 204 User stories and acceptance criteria
 
Acceptance Criteria
Acceptance CriteriaAcceptance Criteria
Acceptance Criteria
 
Acceptance Criteria with SpecFlow
Acceptance Criteria with SpecFlowAcceptance Criteria with SpecFlow
Acceptance Criteria with SpecFlow
 
Rt acceptance criteria by zas
Rt acceptance  criteria by zasRt acceptance  criteria by zas
Rt acceptance criteria by zas
 
Jornal HOJE! - Edição 840
Jornal HOJE! - Edição 840Jornal HOJE! - Edição 840
Jornal HOJE! - Edição 840
 
Zed innovation intro
Zed innovation introZed innovation intro
Zed innovation intro
 
Boxwood Blight
Boxwood BlightBoxwood Blight
Boxwood Blight
 
QA Fest 2015 - Diana Dolina
QA Fest 2015 - Diana DolinaQA Fest 2015 - Diana Dolina
QA Fest 2015 - Diana Dolina
 
นิทาน
นิทานนิทาน
นิทาน
 
180 blue dining room training
180 blue dining room training180 blue dining room training
180 blue dining room training
 
“Разговоры на разных диалектах”, Артем Захарченко, DevPro
“Разговоры на разных диалектах”, Артем Захарченко, DevPro“Разговоры на разных диалектах”, Артем Захарченко, DevPro
“Разговоры на разных диалектах”, Артем Захарченко, DevPro
 
Яна Пролис "Создаем Dream Team"
Яна Пролис "Создаем Dream Team"Яна Пролис "Создаем Dream Team"
Яна Пролис "Создаем Dream Team"
 
Constitucionalidad internet
Constitucionalidad internetConstitucionalidad internet
Constitucionalidad internet
 
Media: Ancillary photos
Media: Ancillary photosMedia: Ancillary photos
Media: Ancillary photos
 
"В поисках эффективности: Slack и BitBucket", Юлия Писаревская, GoodSellUs
"В поисках эффективности: Slack и BitBucket", Юлия Писаревская, GoodSellUs"В поисках эффективности: Slack и BitBucket", Юлия Писаревская, GoodSellUs
"В поисках эффективности: Slack и BitBucket", Юлия Писаревская, GoodSellUs
 
Propiedad intelectual del soft ware
Propiedad intelectual del soft warePropiedad intelectual del soft ware
Propiedad intelectual del soft ware
 
Александр Кашеверов — Коротко про WEB: HTML, CSS, JS.
Александр Кашеверов — Коротко про WEB: HTML, CSS, JS.Александр Кашеверов — Коротко про WEB: HTML, CSS, JS.
Александр Кашеверов — Коротко про WEB: HTML, CSS, JS.
 
Que es el internet programacion web
Que es el internet programacion webQue es el internet programacion web
Que es el internet programacion web
 

Similar to Acceptance criteria

User Story Writing & Estimation For Testers By Mahesh Varadharajan
User Story Writing & Estimation For Testers By Mahesh VaradharajanUser Story Writing & Estimation For Testers By Mahesh Varadharajan
User Story Writing & Estimation For Testers By Mahesh VaradharajanAgile Testing Alliance
 
The Whole Story of The User Story
The Whole Story of The User StoryThe Whole Story of The User Story
The Whole Story of The User StoryXPDays
 
Thin Slicing the Technology Adoption Life Cycle
Thin Slicing the Technology Adoption Life CycleThin Slicing the Technology Adoption Life Cycle
Thin Slicing the Technology Adoption Life CycleKent Richmond
 
Xamariners - BDD + Mobile
Xamariners - BDD + MobileXamariners - BDD + Mobile
Xamariners - BDD + MobileXamariners
 
Олександр Твердохліб «How to make a user story done»
Олександр Твердохліб «How to make a user story done»Олександр Твердохліб «How to make a user story done»
Олександр Твердохліб «How to make a user story done»Lviv Startup Club
 
User stories writing - Codemotion 2013
User stories writing   - Codemotion 2013User stories writing   - Codemotion 2013
User stories writing - Codemotion 2013Stefano Leli
 
User Stories Writing - Codemotion 2013
User Stories Writing - Codemotion 2013User Stories Writing - Codemotion 2013
User Stories Writing - Codemotion 2013Fabio Armani
 
SDLC. BA Role
SDLC. BA RoleSDLC. BA Role
SDLC. BA Roleeleksdev
 
Scrum Process Overview
Scrum Process OverviewScrum Process Overview
Scrum Process OverviewPaul Nguyen
 
Agile methodology - Humanity
Agile methodology  - HumanityAgile methodology  - Humanity
Agile methodology - HumanityHumanity
 
Beyond "Quality Assurance"
Beyond "Quality Assurance"Beyond "Quality Assurance"
Beyond "Quality Assurance"Jason Benton
 
Usability Evaluation
Usability EvaluationUsability Evaluation
Usability EvaluationSaqib Shehzad
 
Creating Your Dashboard & Universal Measures with Userzoom – The Deep-Dive Ho...
Creating Your Dashboard & Universal Measures with Userzoom – The Deep-Dive Ho...Creating Your Dashboard & Universal Measures with Userzoom – The Deep-Dive Ho...
Creating Your Dashboard & Universal Measures with Userzoom – The Deep-Dive Ho...UserZoom
 
How to Write Great User Stories Today.pptx
How to Write Great User Stories Today.pptxHow to Write Great User Stories Today.pptx
How to Write Great User Stories Today.pptxAlanJamisonMBASPC
 
Software prototyping
Software prototyping  Software prototyping
Software prototyping Huda Seyam
 

Similar to Acceptance criteria (20)

User Story Writing & Estimation For Testers By Mahesh Varadharajan
User Story Writing & Estimation For Testers By Mahesh VaradharajanUser Story Writing & Estimation For Testers By Mahesh Varadharajan
User Story Writing & Estimation For Testers By Mahesh Varadharajan
 
The Scrum Guide
The Scrum GuideThe Scrum Guide
The Scrum Guide
 
User Stories Training
User Stories TrainingUser Stories Training
User Stories Training
 
CIS512_Topic1.pptx
CIS512_Topic1.pptxCIS512_Topic1.pptx
CIS512_Topic1.pptx
 
The Whole Story of The User Story
The Whole Story of The User StoryThe Whole Story of The User Story
The Whole Story of The User Story
 
Thin Slicing the Technology Adoption Life Cycle
Thin Slicing the Technology Adoption Life CycleThin Slicing the Technology Adoption Life Cycle
Thin Slicing the Technology Adoption Life Cycle
 
Xamariners - BDD + Mobile
Xamariners - BDD + MobileXamariners - BDD + Mobile
Xamariners - BDD + Mobile
 
Олександр Твердохліб «How to make a user story done»
Олександр Твердохліб «How to make a user story done»Олександр Твердохліб «How to make a user story done»
Олександр Твердохліб «How to make a user story done»
 
User stories writing - Codemotion 2013
User stories writing   - Codemotion 2013User stories writing   - Codemotion 2013
User stories writing - Codemotion 2013
 
User Stories Writing - Codemotion 2013
User Stories Writing - Codemotion 2013User Stories Writing - Codemotion 2013
User Stories Writing - Codemotion 2013
 
SDLC. BA Role
SDLC. BA RoleSDLC. BA Role
SDLC. BA Role
 
Scrum Process Overview
Scrum Process OverviewScrum Process Overview
Scrum Process Overview
 
Agile methodology - Humanity
Agile methodology  - HumanityAgile methodology  - Humanity
Agile methodology - Humanity
 
Defining tasks for User Stories
Defining tasks for User StoriesDefining tasks for User Stories
Defining tasks for User Stories
 
Beyond "Quality Assurance"
Beyond "Quality Assurance"Beyond "Quality Assurance"
Beyond "Quality Assurance"
 
Usability Evaluation
Usability EvaluationUsability Evaluation
Usability Evaluation
 
Creating Your Dashboard & Universal Measures with Userzoom – The Deep-Dive Ho...
Creating Your Dashboard & Universal Measures with Userzoom – The Deep-Dive Ho...Creating Your Dashboard & Universal Measures with Userzoom – The Deep-Dive Ho...
Creating Your Dashboard & Universal Measures with Userzoom – The Deep-Dive Ho...
 
How to Write Great User Stories Today.pptx
How to Write Great User Stories Today.pptxHow to Write Great User Stories Today.pptx
How to Write Great User Stories Today.pptx
 
Story writing
Story writingStory writing
Story writing
 
Software prototyping
Software prototyping  Software prototyping
Software prototyping
 

More from DataArt

DataArt Custom Software Engineering with a Human Approach
DataArt Custom Software Engineering with a Human ApproachDataArt Custom Software Engineering with a Human Approach
DataArt Custom Software Engineering with a Human ApproachDataArt
 
DataArt Healthcare & Life Sciences
DataArt Healthcare & Life SciencesDataArt Healthcare & Life Sciences
DataArt Healthcare & Life SciencesDataArt
 
DataArt Financial Services and Capital Markets
DataArt Financial Services and Capital MarketsDataArt Financial Services and Capital Markets
DataArt Financial Services and Capital MarketsDataArt
 
About DataArt HR Partners
About DataArt HR PartnersAbout DataArt HR Partners
About DataArt HR PartnersDataArt
 
Event management в IT
Event management в ITEvent management в IT
Event management в ITDataArt
 
Digital Marketing from inside
Digital Marketing from insideDigital Marketing from inside
Digital Marketing from insideDataArt
 
What's new in Android, Igor Malytsky ( Google Post I|O Tour)
What's new in Android, Igor Malytsky ( Google Post I|O Tour)What's new in Android, Igor Malytsky ( Google Post I|O Tour)
What's new in Android, Igor Malytsky ( Google Post I|O Tour)DataArt
 
DevOps Workshop:Что бывает, когда DevOps приходит на проект
DevOps Workshop:Что бывает, когда DevOps приходит на проектDevOps Workshop:Что бывает, когда DevOps приходит на проект
DevOps Workshop:Что бывает, когда DevOps приходит на проектDataArt
 
IT Talk Kharkiv: «‎Soft skills в IT. Польза или вред? Максим Бастион, DataArt
IT Talk Kharkiv: «‎Soft skills в IT. Польза или вред? Максим Бастион, DataArtIT Talk Kharkiv: «‎Soft skills в IT. Польза или вред? Максим Бастион, DataArt
IT Talk Kharkiv: «‎Soft skills в IT. Польза или вред? Максим Бастион, DataArtDataArt
 
«Ноль копеек. Спастись от выгорания» — Сергей Чеботарев (Head of Design, Han...
 «Ноль копеек. Спастись от выгорания» — Сергей Чеботарев (Head of Design, Han... «Ноль копеек. Спастись от выгорания» — Сергей Чеботарев (Head of Design, Han...
«Ноль копеек. Спастись от выгорания» — Сергей Чеботарев (Head of Design, Han...DataArt
 
Communication in QA's life
Communication in QA's lifeCommunication in QA's life
Communication in QA's lifeDataArt
 
Нельзя просто так взять и договориться, или как мы работали со сложными людьми
Нельзя просто так взять и договориться, или как мы работали со сложными людьмиНельзя просто так взять и договориться, или как мы работали со сложными людьми
Нельзя просто так взять и договориться, или как мы работали со сложными людьмиDataArt
 
Знакомьтесь, DevOps
Знакомьтесь, DevOpsЗнакомьтесь, DevOps
Знакомьтесь, DevOpsDataArt
 
DevOps in real life
DevOps in real lifeDevOps in real life
DevOps in real lifeDataArt
 
Codeless: автоматизация тестирования
Codeless: автоматизация тестированияCodeless: автоматизация тестирования
Codeless: автоматизация тестированияDataArt
 
Selenoid
SelenoidSelenoid
SelenoidDataArt
 
Selenide
SelenideSelenide
SelenideDataArt
 
A. Sirota "Building an Automation Solution based on Appium"
A. Sirota "Building an Automation Solution based on Appium"A. Sirota "Building an Automation Solution based on Appium"
A. Sirota "Building an Automation Solution based on Appium"DataArt
 
Эмоциональный интеллект или как не сойти с ума в условиях сложного и динамичн...
Эмоциональный интеллект или как не сойти с ума в условиях сложного и динамичн...Эмоциональный интеллект или как не сойти с ума в условиях сложного и динамичн...
Эмоциональный интеллект или как не сойти с ума в условиях сложного и динамичн...DataArt
 
IT talk: Как я перестал бояться и полюбил TestNG
IT talk: Как я перестал бояться и полюбил TestNGIT talk: Как я перестал бояться и полюбил TestNG
IT talk: Как я перестал бояться и полюбил TestNGDataArt
 

More from DataArt (20)

DataArt Custom Software Engineering with a Human Approach
DataArt Custom Software Engineering with a Human ApproachDataArt Custom Software Engineering with a Human Approach
DataArt Custom Software Engineering with a Human Approach
 
DataArt Healthcare & Life Sciences
DataArt Healthcare & Life SciencesDataArt Healthcare & Life Sciences
DataArt Healthcare & Life Sciences
 
DataArt Financial Services and Capital Markets
DataArt Financial Services and Capital MarketsDataArt Financial Services and Capital Markets
DataArt Financial Services and Capital Markets
 
About DataArt HR Partners
About DataArt HR PartnersAbout DataArt HR Partners
About DataArt HR Partners
 
Event management в IT
Event management в ITEvent management в IT
Event management в IT
 
Digital Marketing from inside
Digital Marketing from insideDigital Marketing from inside
Digital Marketing from inside
 
What's new in Android, Igor Malytsky ( Google Post I|O Tour)
What's new in Android, Igor Malytsky ( Google Post I|O Tour)What's new in Android, Igor Malytsky ( Google Post I|O Tour)
What's new in Android, Igor Malytsky ( Google Post I|O Tour)
 
DevOps Workshop:Что бывает, когда DevOps приходит на проект
DevOps Workshop:Что бывает, когда DevOps приходит на проектDevOps Workshop:Что бывает, когда DevOps приходит на проект
DevOps Workshop:Что бывает, когда DevOps приходит на проект
 
IT Talk Kharkiv: «‎Soft skills в IT. Польза или вред? Максим Бастион, DataArt
IT Talk Kharkiv: «‎Soft skills в IT. Польза или вред? Максим Бастион, DataArtIT Talk Kharkiv: «‎Soft skills в IT. Польза или вред? Максим Бастион, DataArt
IT Talk Kharkiv: «‎Soft skills в IT. Польза или вред? Максим Бастион, DataArt
 
«Ноль копеек. Спастись от выгорания» — Сергей Чеботарев (Head of Design, Han...
 «Ноль копеек. Спастись от выгорания» — Сергей Чеботарев (Head of Design, Han... «Ноль копеек. Спастись от выгорания» — Сергей Чеботарев (Head of Design, Han...
«Ноль копеек. Спастись от выгорания» — Сергей Чеботарев (Head of Design, Han...
 
Communication in QA's life
Communication in QA's lifeCommunication in QA's life
Communication in QA's life
 
Нельзя просто так взять и договориться, или как мы работали со сложными людьми
Нельзя просто так взять и договориться, или как мы работали со сложными людьмиНельзя просто так взять и договориться, или как мы работали со сложными людьми
Нельзя просто так взять и договориться, или как мы работали со сложными людьми
 
Знакомьтесь, DevOps
Знакомьтесь, DevOpsЗнакомьтесь, DevOps
Знакомьтесь, DevOps
 
DevOps in real life
DevOps in real lifeDevOps in real life
DevOps in real life
 
Codeless: автоматизация тестирования
Codeless: автоматизация тестированияCodeless: автоматизация тестирования
Codeless: автоматизация тестирования
 
Selenoid
SelenoidSelenoid
Selenoid
 
Selenide
SelenideSelenide
Selenide
 
A. Sirota "Building an Automation Solution based on Appium"
A. Sirota "Building an Automation Solution based on Appium"A. Sirota "Building an Automation Solution based on Appium"
A. Sirota "Building an Automation Solution based on Appium"
 
Эмоциональный интеллект или как не сойти с ума в условиях сложного и динамичн...
Эмоциональный интеллект или как не сойти с ума в условиях сложного и динамичн...Эмоциональный интеллект или как не сойти с ума в условиях сложного и динамичн...
Эмоциональный интеллект или как не сойти с ума в условиях сложного и динамичн...
 
IT talk: Как я перестал бояться и полюбил TestNG
IT talk: Как я перестал бояться и полюбил TestNGIT talk: Как я перестал бояться и полюбил TestNG
IT talk: Как я перестал бояться и полюбил TestNG
 

Recently uploaded

ERP For Electrical and Electronics manufecturing.pptx
ERP For Electrical and Electronics manufecturing.pptxERP For Electrical and Electronics manufecturing.pptx
ERP For Electrical and Electronics manufecturing.pptxAutus Cyber Tech
 
How to Improve the Employee Experience? - HRMS Software
How to Improve the Employee Experience? - HRMS SoftwareHow to Improve the Employee Experience? - HRMS Software
How to Improve the Employee Experience? - HRMS SoftwareNYGGS Automation Suite
 
Big Data Bellevue Meetup | Enhancing Python Data Loading in the Cloud for AI/ML
Big Data Bellevue Meetup | Enhancing Python Data Loading in the Cloud for AI/MLBig Data Bellevue Meetup | Enhancing Python Data Loading in the Cloud for AI/ML
Big Data Bellevue Meetup | Enhancing Python Data Loading in the Cloud for AI/MLAlluxio, Inc.
 
ARM Talk @ Rejekts - Will ARM be the new Mainstream in our Data Centers_.pdf
ARM Talk @ Rejekts - Will ARM be the new Mainstream in our Data Centers_.pdfARM Talk @ Rejekts - Will ARM be the new Mainstream in our Data Centers_.pdf
ARM Talk @ Rejekts - Will ARM be the new Mainstream in our Data Centers_.pdfTobias Schneck
 
Cybersecurity Challenges with Generative AI - for Good and Bad
Cybersecurity Challenges with Generative AI - for Good and BadCybersecurity Challenges with Generative AI - for Good and Bad
Cybersecurity Challenges with Generative AI - for Good and BadIvo Andreev
 
Streamlining Your Application Builds with Cloud Native Buildpacks
Streamlining Your Application Builds  with Cloud Native BuildpacksStreamlining Your Application Builds  with Cloud Native Buildpacks
Streamlining Your Application Builds with Cloud Native BuildpacksVish Abrams
 
20240319 Car Simulator Plan.pptx . Plan for a JavaScript Car Driving Simulator.
20240319 Car Simulator Plan.pptx . Plan for a JavaScript Car Driving Simulator.20240319 Car Simulator Plan.pptx . Plan for a JavaScript Car Driving Simulator.
20240319 Car Simulator Plan.pptx . Plan for a JavaScript Car Driving Simulator.Sharon Liu
 
OpenChain Webinar: Universal CVSS Calculator
OpenChain Webinar: Universal CVSS CalculatorOpenChain Webinar: Universal CVSS Calculator
OpenChain Webinar: Universal CVSS CalculatorShane Coughlan
 
eAuditor Audits & Inspections - conduct field inspections
eAuditor Audits & Inspections - conduct field inspectionseAuditor Audits & Inspections - conduct field inspections
eAuditor Audits & Inspections - conduct field inspectionsNirav Modi
 
Top Software Development Trends in 2024
Top Software Development Trends in  2024Top Software Development Trends in  2024
Top Software Development Trends in 2024Mind IT Systems
 
Optimizing Business Potential: A Guide to Outsourcing Engineering Services in...
Optimizing Business Potential: A Guide to Outsourcing Engineering Services in...Optimizing Business Potential: A Guide to Outsourcing Engineering Services in...
Optimizing Business Potential: A Guide to Outsourcing Engineering Services in...Jaydeep Chhasatia
 
Fields in Java and Kotlin and what to expect.pptx
Fields in Java and Kotlin and what to expect.pptxFields in Java and Kotlin and what to expect.pptx
Fields in Java and Kotlin and what to expect.pptxJoão Esperancinha
 
React 19: Revolutionizing Web Development
React 19: Revolutionizing Web DevelopmentReact 19: Revolutionizing Web Development
React 19: Revolutionizing Web DevelopmentBOSC Tech Labs
 
Vectors are the new JSON in PostgreSQL (SCaLE 21x)
Vectors are the new JSON in PostgreSQL (SCaLE 21x)Vectors are the new JSON in PostgreSQL (SCaLE 21x)
Vectors are the new JSON in PostgreSQL (SCaLE 21x)Jonathan Katz
 
How Does the Epitome of Spyware Differ from Other Malicious Software?
How Does the Epitome of Spyware Differ from Other Malicious Software?How Does the Epitome of Spyware Differ from Other Malicious Software?
How Does the Epitome of Spyware Differ from Other Malicious Software?AmeliaSmith90
 
Generative AI for Cybersecurity - EC-Council
Generative AI for Cybersecurity - EC-CouncilGenerative AI for Cybersecurity - EC-Council
Generative AI for Cybersecurity - EC-CouncilVICTOR MAESTRE RAMIREZ
 
Deep Learning for Images with PyTorch - Datacamp
Deep Learning for Images with PyTorch - DatacampDeep Learning for Images with PyTorch - Datacamp
Deep Learning for Images with PyTorch - DatacampVICTOR MAESTRE RAMIREZ
 
Understanding Native Mobile App Development
Understanding Native Mobile App DevelopmentUnderstanding Native Mobile App Development
Understanding Native Mobile App DevelopmentMobulous Technologies
 
AI Embracing Every Shade of Human Beauty
AI Embracing Every Shade of Human BeautyAI Embracing Every Shade of Human Beauty
AI Embracing Every Shade of Human BeautyRaymond Okyere-Forson
 

Recently uploaded (20)

ERP For Electrical and Electronics manufecturing.pptx
ERP For Electrical and Electronics manufecturing.pptxERP For Electrical and Electronics manufecturing.pptx
ERP For Electrical and Electronics manufecturing.pptx
 
How to Improve the Employee Experience? - HRMS Software
How to Improve the Employee Experience? - HRMS SoftwareHow to Improve the Employee Experience? - HRMS Software
How to Improve the Employee Experience? - HRMS Software
 
Big Data Bellevue Meetup | Enhancing Python Data Loading in the Cloud for AI/ML
Big Data Bellevue Meetup | Enhancing Python Data Loading in the Cloud for AI/MLBig Data Bellevue Meetup | Enhancing Python Data Loading in the Cloud for AI/ML
Big Data Bellevue Meetup | Enhancing Python Data Loading in the Cloud for AI/ML
 
ARM Talk @ Rejekts - Will ARM be the new Mainstream in our Data Centers_.pdf
ARM Talk @ Rejekts - Will ARM be the new Mainstream in our Data Centers_.pdfARM Talk @ Rejekts - Will ARM be the new Mainstream in our Data Centers_.pdf
ARM Talk @ Rejekts - Will ARM be the new Mainstream in our Data Centers_.pdf
 
Cybersecurity Challenges with Generative AI - for Good and Bad
Cybersecurity Challenges with Generative AI - for Good and BadCybersecurity Challenges with Generative AI - for Good and Bad
Cybersecurity Challenges with Generative AI - for Good and Bad
 
Streamlining Your Application Builds with Cloud Native Buildpacks
Streamlining Your Application Builds  with Cloud Native BuildpacksStreamlining Your Application Builds  with Cloud Native Buildpacks
Streamlining Your Application Builds with Cloud Native Buildpacks
 
Salesforce AI Associate Certification.pptx
Salesforce AI Associate Certification.pptxSalesforce AI Associate Certification.pptx
Salesforce AI Associate Certification.pptx
 
20240319 Car Simulator Plan.pptx . Plan for a JavaScript Car Driving Simulator.
20240319 Car Simulator Plan.pptx . Plan for a JavaScript Car Driving Simulator.20240319 Car Simulator Plan.pptx . Plan for a JavaScript Car Driving Simulator.
20240319 Car Simulator Plan.pptx . Plan for a JavaScript Car Driving Simulator.
 
OpenChain Webinar: Universal CVSS Calculator
OpenChain Webinar: Universal CVSS CalculatorOpenChain Webinar: Universal CVSS Calculator
OpenChain Webinar: Universal CVSS Calculator
 
eAuditor Audits & Inspections - conduct field inspections
eAuditor Audits & Inspections - conduct field inspectionseAuditor Audits & Inspections - conduct field inspections
eAuditor Audits & Inspections - conduct field inspections
 
Top Software Development Trends in 2024
Top Software Development Trends in  2024Top Software Development Trends in  2024
Top Software Development Trends in 2024
 
Optimizing Business Potential: A Guide to Outsourcing Engineering Services in...
Optimizing Business Potential: A Guide to Outsourcing Engineering Services in...Optimizing Business Potential: A Guide to Outsourcing Engineering Services in...
Optimizing Business Potential: A Guide to Outsourcing Engineering Services in...
 
Fields in Java and Kotlin and what to expect.pptx
Fields in Java and Kotlin and what to expect.pptxFields in Java and Kotlin and what to expect.pptx
Fields in Java and Kotlin and what to expect.pptx
 
React 19: Revolutionizing Web Development
React 19: Revolutionizing Web DevelopmentReact 19: Revolutionizing Web Development
React 19: Revolutionizing Web Development
 
Vectors are the new JSON in PostgreSQL (SCaLE 21x)
Vectors are the new JSON in PostgreSQL (SCaLE 21x)Vectors are the new JSON in PostgreSQL (SCaLE 21x)
Vectors are the new JSON in PostgreSQL (SCaLE 21x)
 
How Does the Epitome of Spyware Differ from Other Malicious Software?
How Does the Epitome of Spyware Differ from Other Malicious Software?How Does the Epitome of Spyware Differ from Other Malicious Software?
How Does the Epitome of Spyware Differ from Other Malicious Software?
 
Generative AI for Cybersecurity - EC-Council
Generative AI for Cybersecurity - EC-CouncilGenerative AI for Cybersecurity - EC-Council
Generative AI for Cybersecurity - EC-Council
 
Deep Learning for Images with PyTorch - Datacamp
Deep Learning for Images with PyTorch - DatacampDeep Learning for Images with PyTorch - Datacamp
Deep Learning for Images with PyTorch - Datacamp
 
Understanding Native Mobile App Development
Understanding Native Mobile App DevelopmentUnderstanding Native Mobile App Development
Understanding Native Mobile App Development
 
AI Embracing Every Shade of Human Beauty
AI Embracing Every Shade of Human BeautyAI Embracing Every Shade of Human Beauty
AI Embracing Every Shade of Human Beauty
 

Acceptance criteria

  • 1. Acceptance criteria vs. Functional requirements by Anna Dąbrowska
  • 2. 1. Who? 2. What? 3. Why? User stories Never go into development without the story or narrative having: • priority • story or narrative (depending on complexity) • acceptance criteria • knowing what the end to end test scenario is /are • sign off from the customer for all of the above • an estimate from iteration based on all of the above
  • 3. What are Acceptance Criteria? Acceptance Criteria are a set of statements, each with a clear pass/fail result, that can be measured and specify both functional and non- functional requirements. Acceptance Criteria are the conditions that a software product must satisfy to be accepted by a user, customer, or in the case of system level functionality, the consuming system.
  • 4. Why to write? • Define the boundaries for a user story/feature • Help the product owner answer what she needs in order for this feature to provide value (typically these are the minimum functional requirements) • Help the team gain a shared understanding of the story/feature (BEFORE development has started) • Help developers and testers to derive tests • Help developers know when to stop adding more functionality to a story *Icons are created by Nathanael Coyne (@nathanaelb).
  • 5. How to write? Good acceptance criteria: • State an intent not a solution (e.g. “The user can choose an account” rather than “The user can select the account from a drop-down”) • Are independent of implementation • Are relatively high level (not every detail needs to be in writing) • Are SMART • Have observable result • Include actor/actions/environment/conditions/context • Are written from user perspective
  • 6. How not to write? Watch out for • Ambiguous language • Subjective/Judgemental language (Better, Good, Allowable) • Generalisations (All the time, Never, Everyone, Always) • Observed behaviour that is not directly related to the story currently under consideration
  • 7. Methods to write 1. Scenario style approach • Happy Path • Alternative Path • Bad Path 2. BDD style acceptance criteria • Given <a condition> • When <an event occurs> • Then <expect this outcome>
  • 8. When to write? ! Avoid is writing acceptance criteria after development has started
  • 9. WHAT is expected, and not HOW the functionality will be implemented. What. Not How Functional requirements Acceptance criteria Requirements are what you're supposed to do in terms of given story. Acceptance Criteria are the agreed upon measures to prove you've done. Acceptance Criteria are defined as conditions that a User Story must satisfy to be accepted by a user, customer or other stakeholder.
  • 10. Example. Try to write Functional requirements 1. Site language corresponds to chosen one 2. Language can be changed 3. Default language icon appears in top right corner 4. English is a default language 5. Dropdown with list of languages appears by clicking on language flag in right top corner 6. User can select language by clicking on corresponding one in drop-down menu 7. Site content changes to selected language after user has clicked on its name/icon in switching drop-down 8. List of languages and translations are grabbed from admin panel As a user I want to switch application language so that I understand app content
  • 11. Example. Try to write 1. User can change site language 2. Site content corresponds to selected language 3.Translation is correct and doesn’t contain critical mistakes 4. Translated content doesn't break any specific layout 5. No bugs of high and normal priority related to switching languages remain open Acceptance criteria As a user I want to switch application language so that I understand app content

Editor's Notes

  1. ATM example of withdrawing cash: What is the user story? As an account holder I would like to withdraw cash from an ATM so that I have money to spend. Happy Path For a favourable outcome what business conditions need to be met? Account Holder enters valid pin Account Holder has a balance matching or exceeding requested amount ATM has cash matching or exceeding requested amount So what should happen when the Account Holder tries to withdraw cash? ATM dispenses requested cash immediately Account Holder's balance is reduced ATM cash balance is reduced We've just described the happy path for the ATM withdrawal story. The business conditions were identified, and the acceptance criteria we can use to validate that the solution meets the customer's needs was listed. Alternate path The path with some deviations that allows users to reach the desired outcome ATM example continued: What if any of the business conditions identified in the previous exapmles were not true? What if the Account Holder enters an amount greater than his balance? Indicate that there are insufficient funds in his account Can we stop here? Can we provide some functionality that will allow the user to still reach his goal? Display a message and Provide option to specify a lesser amount We can still satisfy the goal even though the path is not direct. This is what some people call an "Alternate Path". This is still acceptable as it allows user to reach his goal. Bad Path That path that does not lead to the desired outcome ATM example continued: What else can happen? Can something go totally wrong? For example, maybe you cannot connect to the Bank Account Holder's card has expired Unexpected error in the system. Buffer overflow, Null Pointer.. We try our best to prevent these from occurring by writing more test, adding more functionality that caters to these situations (adding resilience). And provide a graceful recovery from unexpected outcomes - error messages and return to start page.
  2. Acceptance criteria do not replace the conversation they are one of the results of the conversation