Writing good acceptance criteria is one of the keys to effective software delivery. But it’s hard. In this workshop, you will learn about Feature Mapping, a new technique and easy that can help teams write higher quality acceptance criteria more easily. Feature Mapping is an excellent way to build a deep shared understanding of a story's requirements and clear a path to a smooth implementation of automated acceptance tests.
1. AUTHOR OF ‘BDD IN ACTION’
@wakaleo
www.johnfergusonsmart.com
Feature Mapping
The fast track from stories to acceptance criteria
Jan Molak
Lead Developer of Serenity/JS
@janmolak
janmolak.com
2. Overview
Overview
What we will cover
BDD and Sprint Planning
Acceptance Criteria and the Definition of
Done
Writing acceptance criteria in Gherkin
Acceptance criteria with Feature Mapping
5. Overview
Overview
Validation
The BDD Way
Collaboration
As a corporate frequent flyer
I want to earn points on my business flights
So that I can get discounts on my holiday flights
Business
Scenario: First class earns double points
Given London-Paris in economy earns 100 points
When I fly from London to Paris in First Class
Then I should earn 200 points
SHARED UNDERSTANDING
Automation
6. Overview
Overview
The BDD Way
BA
Business BA UX
Testers
Business Rules
Examples
A shared understanding
Executable Specifications
Wireframes
Vision
Flow
Capabilities
Features
Developers UI Designers
Define
Formalise
Automate
Automated
Acceptance
Testing
Feedback
Visibility
Valuable Software
Deliver
Discover
TDD
10. Acceptance
Criteria
✓ Define the Definition of Done
✓ Functional and non-functional requirements
✓ Expressed in business language
✓ Describe expected outcomes, not inputs
✓ Describe intent, not solution (what, not how)
✓ Easily testable
✓ Single responsibility
11. Acceptance
Criteria
should be
simple
✓ Simple phrases
- “A teacher can return an essay for correction when the average
mark is under 7”
✓ Can be non-functional
- “A teacher should be able to open and record the marks of an
essay in less than 30 seconds on average with a load of 1000
simultaneous users”
12. Examples are
concrete
scenarios that
illustrate rules
✓ “The one where…”
- “The one where the student submits a bad essay”
✓ Given/When/Then
- “Given Stu submits an essay with an average mark of 4
When Tess records the marks
Then she has the option of returning the essay to Stu”
14. Gherkin
The Lingua Franca of BDD
Collaboration
Automation
Feature: Earning Frequent Flyer points through flights
Scenario: Economy flights earn points by distance
Flyers earn 1 point per kilometre travelled
Given the distance from London to Paris is 344 km
When I fly from London to Paris in Economy
Then I should earn 344 points
15. Overview
Overview
Scenario: Economy flights earn points by distance
Given the distance from London to Paris is 344 km
When I fly from London to Paris in Economy
Then I should earn 344 points
Preconditions
Action to illustrate
Expected outcome
16. Overview
Overview
Scenario Outline: Economy flights earn points by distance
Given the distance from <departure> to <dest> is <distance> km
When I fly from <departure> to <destination> in <class> class
Then I should earn <points> points
Examples:
| departure | dest | distance | class | points |
| Paris | London | 344 | economy | 344 |
| Paris | London | 344 | first | 688 |
A table of examples
18. Workshop Time! As a regular business traveller
I want to earn privileges when I fly
So that I can take my family on holiday more often
Create Acceptance criteria for the following rules
- Member privileges are based on their Frequent Flyer level
- Members can be Bronze, Silver, Gold or Platinum
- Levels are earned based on distance and cabin class
19. Retrospective
• How much functionality did you cover?
• How would you judge the quality of the
scenarios you wrote?
• How well did it help you understand the
problem domain?
• How many surprises did you find?
20. In the last exercise…
Did you spend more time
collaborating or formalising?
24. Understanding a
requirement
As a Frequent Flyer member
I want to see where I can travel with my current point balance
So that I can plan my next holiday
25. Overview
Overview
As a Frequent Flyer member
I want to see where I can travel with my current point balance
So that I can plan my next holiday
“The flights available depend on the number of points” “Rule”
“The one where a member has 10000 points” “Example”
“Jackie has 10000 points, and lives in London.
“Steps”
“She chooses to view her flight options.”
“She can choose from flights to Edinburgh, Paris and Amsterdam”
26. Overview
Overview
As a Frequent Flyer member
I want to see where I can travel with my current point balance
So that I can plan my next holiday
“The flights available depend on the number of points” “Rule”
“The one where a member has 10000 points” “Example”
“Jackie has 10000 points, and lives in London.
“Steps”
“She chooses to view her flight options.”
“She can choose from flights to Edinburgh, Paris and Amsterdam”
What if she lives
somewhere else?
What if she wants to fly
from another city?
Are these economy
flights?
What if the wants to fly
business?
What if she wants to book a
flight for someone else?
Why these destinations?
27. Questions lead
to learning
Why these destinations?
“The flights available depend on the number of points”
(1 km distance for every 10 points)
New or clarified rules
points Edinburgh
1000
Paris Amsterdam
5000
10000
Yes
Yes
No
No
Yes Yes
NoNo
No
New or clarified examples
33. Overview
Overview
We start with an anchoring example
“Fred has 10000 points and lives in London. He wants to go on holidays in
August. He checks his account balance, and sees that he can go to Rome,
Aberdeen or Barcelona.”
37. Overview
Overview“Guideline"
A rule
Any economy flight
within Europe
is 10000 points
Step 3) Break it down
An example
Member has enough to
fly to Rome
=>
Fred has 10000
points
=>
Fred can fly to
Edinburgh, Barcelona
or Rome
Consequences
38. Overview
Overview
Any economy flight
within Europe
is 10000 points
Step 4) Explore variations
Member has enough to
fly to Rome
Member doesn’t have
enough points
=> Joe has just
joined the
program and has
0 points
=>
Joe can’t go anywhere
=>
Fred has 10000
points
=>
Fred can fly to
Edinburgh, Barcelona
or Rome
39. Overview
OverviewAny economy flight
within Europe
is 10000 points
Step 5) Discover new rules
Member has enough to
fly to Rome
Member doesn’t have
enough points
A business flight within
Europe
is 20000 points
Likes to fly in style
=> Fred can fly to
Edinburgh, Barcelona
or Rome in Business
=> Barry has
20000 points
=> Joe has just
joined the
program and has
0 points
=>
Joe can’t go anywhere
=>
Fred has 10000
points
=>
Fred can fly to
Edinburgh, Barcelona
or Rome
40. Overview
OverviewAny economy flight
within Europe
is 10000 points
Step 6) Learn and refactor
Member has enough to
fly to Rome
Member doesn’t have
enough points
A business flight within
Europe
is 20000 points
Likes to fly in style
The available
destinations depends
on the number of
points and the cabin
class
=> Fred can fly to
Edinburgh, Barcelona
or Rome in Business
=> Barry has
20000 points
=> Joe has just
joined the
program and has
0 points
=>
Joe can’t go anywhere
=>
Fred has 10000
points
=>
Fred can fly to
Edinburgh, Barcelona
or Rome
41. Overview
OverviewAny economy flight
within Europe
is 10000 points
Questions record uncertainty
Member has enough to
fly to Rome
Member doesn’t have
enough points
A business flight within
Europe
is 20000 points
Likes to fly in style
The available
destinations depends
on the number of
points and the cabin
class
Can he buy someone
else a ticket?
Are points
transferrable?
=> Fred can fly to
Edinburgh, Barcelona
or Rome in Business
=> Barry has
20000 points
=> Joe has just
joined the
program and has
0 points
=>
Joe can’t go anywhere
=>
Fred has 10000
points
=>
Fred can fly to
Edinburgh, Barcelona
or Rome
42. Overview
OverviewAny economy flight
within Europe
is 10000 points
Questions record uncertainty
Member has enough to
fly to Rome
Member doesn’t have
enough points
A business flight within
Europe
is 20000 points
Likes to fly in style
The available
destinations depends
on the number of
points and the cabin
class
“Pointsperdestination”
story“Pointsperclass”
story
=> Fred can fly to
Edinburgh, Barcelona
or Rome in Business
=> Barry has
20000 points
=> Joe has just
joined the
program and has
0 points
=>
Joe can’t go anywhere
=>
Fred has 10000
points
=>
Fred can fly to
Edinburgh, Barcelona
or Rome
44. Mob Mapping!
As a regular business traveller
I want to be able to access the lounge with my travel companions
So that I can get more work done before the flight
45. Overview
OverviewLounge Access
As a regular business traveller
I want to be able to access the lounge with my travel companions
So that I can get more work done before the flight
Step 1) “Tell me a story”
“Barry the business traveller is Gold status, and flying on
holidays in economy with his wife and two children. He asks to
access the lounge with his family. He is given access, but has
to use all of his yearly guest passes as he can normally only
invite one guest.”
46. Overview
OverviewAs a regular business traveller
I want to be able to access the lounge with my travel companions
So that I can get more work done before the flight
Step 2) “Tell me the rules you know about”
“Barry the business traveller is Gold status, and flying on
holidays in economy with his wife and two children. He asks to
access the lounge with his family. He is given access, but has
to use all of his yearly guest passes as he can normally only
invite one guest.”
What else?
Gold Frequent Flyers can come
with a guest
Gold Frequent Flyers get two
guest passes per year that they
can use for additional guests
47. Overview
OverviewAs a regular business traveller
I want to be able to access the lounge with my travel companions
So that I can get more work done before the flight
Step 3) Pick a rule.
“Barry the business traveller is Gold status, and flying on
holidays in economy with his wife and two children. He asks to
access the lounge with his family. He is given access, but has
to use all of his yearly guest passes as he can normally only
invite one guest.”
Gold Frequent Flyers get two
guest passes per year that they
can use for additional guests
48. Overview
Overview
Step 4) Give me an example
Gold Frequent Flyers get two
guest passes per year that they
can use for additional guests
Barry can invite his family
because he is a Gold FF
“The one where…”
Barry is a Gold
FF
Barry wants to
bring 3 guests
=> Everyone can
enter the lounge
=> Barry has no
guest passes left
Barry has 2 guest
passes
Barry agrees to
use his guest
passes
49. Overview
Overview
Step 5) Explore and challenge
Gold Frequent Flyers get two
guest passes per year that they
can use for additional guests
Barry can invite his family
because he is a Gold FF
“What if…”
Barry is a Gold
FF
Barry wants to
bring 3 guests
=> Everyone can
enter the lounge
=> Barry has no
guest passes left
Barry has 2 guest
passes
Barry agrees to
use his guest
passes
W
hatifBarry
is
Silver?
W
hatifBarry
has
only
1
guest
W
hatifBarry
doesn’twantto
use
his
guest
passes?
=> Everyone can
enter the lounge
=> Barry has no
guest passes left
50. Now work in
teams As a business traveller
I want to have access to a place to freshen up and work
when I land
So that I can be more productive in my work
51. Now work in
teams
As a business traveller
I want to have access to a place to freshen up and work when I land
So that I can be more productive in my work
“Barry has landed 6 hours ahead of his meeting, and wants to
freshen up, have breakfast and prepare his meeting. He goes to
the lounge in the arrival airport, and is granted access.”