SlideShare a Scribd company logo
BDD
in action
Building software that matters
John Ferguson Smart
Consultant	
  
Trainer	
  
Mentor	
  
Author	
  
Speaker	
  
Coder
John Ferguson Smart
Consultant	
  
Trainer	
  
Mentor	
  
Author	
  
Speaker	
  
Coder
John Ferguson Smart
Consultant	
  
Trainer	
  
Mentor	
  
Author	
  
Speaker	
  
Coder
John Ferguson Smart
Consultant	
  
Trainer	
  
Mentor	
  
Author	
  
Speaker	
  
Coder
So what is this BDD thing?
Using examples
So what is this BDD thing?
Using examples
a shared understanding
So what is this BDD thing?
Using examples
a shared understanding
software that matters
So what is this BDD thing?
BDD
So what is this BDD thing?
BDD
Collaboration
So what is this BDD thing?
BDD
Hunting out value
Collaboration
So what is this BDD thing?
BDD
Hunting out value
Collaboration
Building the right software
So what is this BDD thing?
BDD
Hunting out value Automated Acceptance
Criteria
Collaboration
Building the right software
So what is this BDD thing?
BDD
Hunting out value Automated Acceptance
Criteria
API and code design
Collaboration
Building the right software
So what is this BDD thing?
BDD
Hunting out value Automated Acceptance
Criteria
API and code design
Collaboration
Building the software right
Building the right software
So what is this BDD thing?
BDD
Hunting out value Automated Acceptance
Criteria
API and code design
Collaboration
Building the software right
Building the right software
Living Documentation
So what is this BDD thing?
The business owner
tells the business
analyst what he wants
1
2
The business
analyst writes a
requirements
document
3
The developer
translates the
requirements
into software
4 The tester
translates the
requirements
into test cases 5 The technical
writer translates
the software
into functional
and technical
documentation
BDD in a nutshell
A traditional development process
The business owner
tells the business
analyst what he wants
1
2
The business
analyst writes a
requirements
document
3
The developer
translates the
requirements
into software
4 The tester
translates the
requirements
into test cases 5 The technical
writer translates
the software
into functional
and technical
documentation
BDD in a nutshell
A traditional development process
The business owner
tells the business
analyst what he wants
1
2
The business
analyst writes a
requirements
document
3
The developer
translates the
requirements
into software
4 The tester
translates the
requirements
into test cases 5 The technical
writer translates
the software
into functional
and technical
documentation
BDD in a nutshell
A traditional development process
The business owner
tells the business
analyst what he wants
1
2
The business
analyst writes a
requirements
document
3
The developer
translates the
requirements
into software
4 The tester
translates the
requirements
into test cases 5 The technical
writer translates
the software
into functional
and technical
documentation
BDD in a nutshell
A traditional development process
The business owner
tells the business
analyst what he wants
1
2
The business
analyst writes a
requirements
document
3
The developer
translates the
requirements
into software
4 The tester
translates the
requirements
into test cases 5 The technical
writer translates
the software
into functional
and technical
documentation
BDD in a nutshell
A traditional development process
The business owner
tells the business
analyst what he wants
1
2
The business
analyst writes a
requirements
document
3
The developer
translates the
requirements
into software
4 The tester
translates the
requirements
into test cases 5 The technical
writer translates
the software
into functional
and technical
documentation
BDD in a nutshell
A traditional development process
The business owner
tells the business
analyst what he wants
1
2
The business
analyst writes a
requirements
document
3
The developer
translates the
requirements
into software
4 The tester
translates the
requirements
into test cases 5 The technical
writer translates
the software
into functional
and technical
documentation
BDD in a nutshell
A traditional development process
The business owner
tells the business
analyst what he wants
1
2
The business
analyst writes a
requirements
document
3
The developer
translates the
requirements
into software
4 The tester
translates the
requirements
into test cases 5 The technical
writer translates
the software
into functional
and technical
documentation
BDD in a nutshell
A traditional development process
The business owner
tells the business
analyst what he wants
1
2
The business
analyst writes a
requirements
document
3
The developer
translates the
requirements
into software
4 The tester
translates the
requirements
into test cases 5 The technical
writer translates
the software
into functional
and technical
documentation
BDD in a nutshell
A traditional development process
The business owner
tells the business
analyst what he wants
1
2
The business
analyst writes a
requirements
document
3
The developer
translates the
requirements
into software
4 The tester
translates the
requirements
into test cases 5 The technical
writer translates
the software
into functional
and technical
documentation
BDD in a nutshell
A traditional development process
The business owner
tells the business
analyst what he wants
1
2
The business
analyst writes a
requirements
document
3
The developer
translates the
requirements
into software
4 The tester
translates the
requirements
into test cases 5 The technical
writer translates
the software
into functional
and technical
documentation
BDD in a nutshell
A traditional development process
The business owner
and the business
analyst have a
conversation about
what he needs.
1
2
3
4 The tester uses
these scenarios
as the basis for
her tests
5
The automated tests provide
feedback on progress and help
document the application
The business analyst,
the developer and the
tester elaborate the
requirements together.
The scenarios guide the
developer and act as
automated tests
They define
requirements as
structured, English-
language format
"scenarios"
BDD in a nutshell
A BDD development process
The business owner
and the business
analyst have a
conversation about
what he needs.
1
2
3
4 The tester uses
these scenarios
as the basis for
her tests
5
The automated tests provide
feedback on progress and help
document the application
The business analyst,
the developer and the
tester elaborate the
requirements together.
The scenarios guide the
developer and act as
automated tests
They define
requirements as
structured, English-
language format
"scenarios"
BDD in a nutshell
A BDD development process
The business owner
and the business
analyst have a
conversation about
what he needs.
1
2
3
4 The tester uses
these scenarios
as the basis for
her tests
5
The automated tests provide
feedback on progress and help
document the application
The business analyst,
the developer and the
tester elaborate the
requirements together.
The scenarios guide the
developer and act as
automated tests
They define
requirements as
structured, English-
language format
"scenarios"
BDD in a nutshell
A BDD development process
The business owner
and the business
analyst have a
conversation about
what he needs.
1
2
3
4 The tester uses
these scenarios
as the basis for
her tests
5
The automated tests provide
feedback on progress and help
document the application
The business analyst,
the developer and the
tester elaborate the
requirements together.
The scenarios guide the
developer and act as
automated tests
They define
requirements as
structured, English-
language format
"scenarios"
BDD in a nutshell
A BDD development process
The business owner
and the business
analyst have a
conversation about
what he needs.
1
2
3
4 The tester uses
these scenarios
as the basis for
her tests
5
The automated tests provide
feedback on progress and help
document the application
The business analyst,
the developer and the
tester elaborate the
requirements together.
The scenarios guide the
developer and act as
automated tests
They define
requirements as
structured, English-
language format
"scenarios"
BDD in a nutshell
A BDD development process
The business owner
and the business
analyst have a
conversation about
what he needs.
1
2
3
4 The tester uses
these scenarios
as the basis for
her tests
5
The automated tests provide
feedback on progress and help
document the application
The business analyst,
the developer and the
tester elaborate the
requirements together.
The scenarios guide the
developer and act as
automated tests
They define
requirements as
structured, English-
language format
"scenarios"
BDD in a nutshell
A BDD development process
The business owner
and the business
analyst have a
conversation about
what he needs.
1
2
3
4 The tester uses
these scenarios
as the basis for
her tests
5
The automated tests provide
feedback on progress and help
document the application
The business analyst,
the developer and the
tester elaborate the
requirements together.
The scenarios guide the
developer and act as
automated tests
They define
requirements as
structured, English-
language format
"scenarios"
•Specifica8ons	
  are	
  elaborated	
  collabora8vely	
  
•Specifica8ons	
  use	
  a	
  common	
  language	
  
•Executable	
  specifica8ons	
  provide	
  fast	
  feedback
BDD in a nutshell
“software that matters”
Building the
thing right
Building the
right thingWhat
How
Misaligned
requirements
Poor craftsmanship
“software that matters”
Building the
thing right
Building the
right thingWhat
How
Misaligned
requirements
Poor craftsmanship
Solves the wrong
problem well
“software that matters”
Building the
thing right
Building the
right thingWhat
How
Misaligned
requirements
Poor craftsmanship
Solves the wrong
problem well
Solves the right
problem poorly
“software that matters”
Building the
thing right
Building the
right thingWhat
How
Misaligned
requirements
Poor craftsmanship
Buggy
and useless
Solves the wrong
problem well
Solves the right
problem poorly
“software that matters”
Building the
thing right
Building the
right thingWhat
How
Misaligned
requirements
Poor craftsmanship
Buggy
and useless
Slow to
change
Solves the wrong
problem well
Solves the right
problem poorly
“software that matters”
Building the
thing right
Building the
right thingWhat
How
Misaligned
requirements
Poor craftsmanship
Buggy
and useless
Hard to
maintain
Slow to
change
Solves the wrong
problem well
Solves the right
problem poorly
“software that matters”
Building the
thing right
Building the
right thingWhat
How
Misaligned
requirements
Poor craftsmanship
Buggy
and useless
Hard to
maintain
Slow to
change
Does what the business needs
Reliable
Easy to maintain
Solves the wrong
problem well
Solves the right
problem poorly
You don’t know what you don’t know
Understanding of
what needs to be
delivered
Time
You don’t know what you don’t know
Understanding of
what needs to be
delivered
Time
Requirements
phase done
Analysis
Phase done
You don’t know what you don’t know
Understanding of
what needs to be
delivered
Time
Requirements
phase done
Analysis
Phase done
You don’t know what you don’t know
Understanding of
what needs to be
delivered
Time
Requirements
phase done
Analysis
Phase done
•Our	
  ignorance	
  decreases	
  over	
  8me	
  
•It	
  does	
  not	
  decrease	
  at	
  a	
  linear	
  rate	
  
•It	
  does	
  not	
  always	
  decrease	
  in	
  a	
  predictable	
  way
Business
Goal
Business
Goal
Business
Goal
“software that matters”
We	
  start	
  with	
  a	
  business	
  goal
Business
Goal
Business
Goal
Business
Goal
“software that matters”
We	
  start	
  with	
  a	
  business	
  goal
“Increase	
  *cket	
  sales	
  by	
  5%	
  over	
  the	
  next	
  year	
  
by	
  encouraging	
  travelers	
  to	
  fly	
  with	
  Flying	
  High	
  
rather	
  than	
  with	
  a	
  rival	
  company.”
Business
Goal
Business
Goal
Business
Goal
“software that matters”
What	
  features	
  will	
  enable	
  us	
  to	
  deliver	
  this	
  goal?
FeaturesFeaturesFeatures
Business
Goal
Business
Goal
Business
Goal
“software that matters”
What	
  features	
  will	
  enable	
  us	
  to	
  deliver	
  this	
  goal?
FeaturesFeaturesFeatures
Earn	
  Frequent	
  Flyer	
  points	
  from	
  flights
Business
Goal
Business
Goal
Business
Goal
“software that matters”
What	
  features	
  will	
  enable	
  us	
  to	
  deliver	
  this	
  goal?
FeaturesFeaturesFeatures
Earn	
  Frequent	
  Flyer	
  points	
  from	
  flights
Earn	
  Frequent	
  Flyer	
  points	
  from	
  purchases
Business
Goal
Business
Goal
Business
Goal
“software that matters”
What	
  features	
  will	
  enable	
  us	
  to	
  deliver	
  this	
  goal?
FeaturesFeaturesFeatures
Earn	
  Frequent	
  Flyer	
  points	
  from	
  flights
Earn	
  Frequent	
  Flyer	
  points	
  from	
  purchases
View	
  Frequent	
  Flyer	
  account	
  balance	
  online
Business
Goal
Business
Goal
Business
Goal
“software that matters”
We	
  use	
  conversa8ons	
  around	
  examples	
  to	
  build	
  up	
  our	
  
understanding	
  of	
  these	
  features	
  
FeaturesFeaturesFeatures FeaturesFeaturesExamples
Business
Goal
Business
Goal
Business
Goal
“software that matters”
We	
  use	
  conversa8ons	
  around	
  examples	
  to	
  build	
  up	
  our	
  
understanding	
  of	
  these	
  features	
  
FeaturesFeaturesFeatures FeaturesFeaturesExamples
“A	
  new	
  Frequent	
  Flyer	
  member	
  
starts	
  off	
  with	
  Bronze	
  status”
Business
Goal
Business
Goal
Business
Goal
“software that matters”
We	
  use	
  conversa8ons	
  around	
  examples	
  to	
  build	
  up	
  our	
  
understanding	
  of	
  these	
  features	
  
FeaturesFeaturesFeatures FeaturesFeaturesExamples
“A	
  new	
  Frequent	
  Flyer	
  member	
  
starts	
  off	
  with	
  Bronze	
  status”
“If	
  she	
  earns	
  300	
  points,	
  she	
  becomes	
  a	
  
Silver	
  Frequent	
  Flyer	
  member”
“Using examples”
“Using examples”
•Explore	
  requirements	
  
•Discover	
  what	
  we	
  don’t	
  know	
  
•Clarify	
  ambigui8es	
  
•Iden8fy	
  assump8ons	
  and	
  misunderstandings	
  
“Using examples”
“A	
  new	
  Frequent	
  Flyer	
  member	
  
starts	
  off	
  with	
  Bronze	
  status”
•Explore	
  requirements	
  
•Discover	
  what	
  we	
  don’t	
  know	
  
•Clarify	
  ambigui8es	
  
•Iden8fy	
  assump8ons	
  and	
  misunderstandings	
  
“Using examples”
“A	
  new	
  Frequent	
  Flyer	
  member	
  
starts	
  off	
  with	
  Bronze	
  status”
“If	
  she	
  earns	
  300	
  points,	
  she	
  becomes	
  a	
  
Silver	
  Frequent	
  Flyer	
  member”
•Explore	
  requirements	
  
•Discover	
  what	
  we	
  don’t	
  know	
  
•Clarify	
  ambigui8es	
  
•Iden8fy	
  assump8ons	
  and	
  misunderstandings	
  
“Using examples”
“A	
  new	
  Frequent	
  Flyer	
  member	
  
starts	
  off	
  with	
  Bronze	
  status”
“If	
  she	
  earns	
  300	
  points,	
  she	
  becomes	
  a	
  
Silver	
  Frequent	
  Flyer	
  member”
“If	
  I	
  ask	
  for	
  the	
  details	
  about	
  the	
  flight	
  FH-­‐102,	
  I	
  should	
  see	
  that	
  
it	
  is	
  a	
  Sydney	
  to	
  Hong	
  Kong	
  flight	
  that	
  leaves	
  at	
  11:55pm	
  ”
•Explore	
  requirements	
  
•Discover	
  what	
  we	
  don’t	
  know	
  
•Clarify	
  ambigui8es	
  
•Iden8fy	
  assump8ons	
  and	
  misunderstandings	
  
“Using examples”
We	
  express	
  the	
  examples	
  in	
  a	
  structured	
  
format	
  using	
  simple	
  English	
  phrases
“Using examples”
We	
  express	
  the	
  examples	
  in	
  a	
  structured	
  
format	
  using	
  simple	
  English	
  phrases
“Using examples”
We	
  express	
  the	
  examples	
  in	
  a	
  structured	
  
format	
  using	
  simple	
  English	
  phrases
“Using examples”
We	
  express	
  the	
  examples	
  in	
  a	
  structured	
  
format	
  using	
  simple	
  English	
  phrases
“Using examples”
The	
  automated	
  acceptance	
  criteria	
  
guide	
  the	
  development	
  process
“Using examples”
The	
  automated	
  acceptance	
  criteria	
  
guide	
  the	
  development	
  process
“Using examples”
The	
  automated	
  acceptance	
  criteria	
  
guide	
  the	
  development	
  process
“a shared understanding”
“Having	
  the	
  conversa/on	
  	
  
is	
  more	
  important	
  than	
  	
  
recording	
  the	
  conversa/on	
  
is	
  more	
  important	
  than	
  	
  
automa/ng	
  the	
  conversa/on”	
  
-­‐	
  Liz	
  Keogh
“a shared understanding”
BA
Developer
Tester
Many teams build features like this…
“a shared understanding”
Story
BA
Developer
Tester
Many teams build features like this…
“a shared understanding”
Story
Working	
  
code
BA
Developer
Tester
Many teams build features like this…
“a shared understanding”
Story
Working	
  
code boring	
  
manual	
  
tes5ng
BA
Developer
Tester
Many teams build features like this…
“a shared understanding”
Story
bug	
  reports
Working	
  
code boring	
  
manual	
  
tes5ng
BA
Developer
Tester
Many teams build features like this…
“a shared understanding”
Story
bug	
  reports
Working	
  
code boring	
  
manual	
  
tes5ng
WASTE
BA
Developer
Tester
Many teams build features like this…
“a shared understanding”
…but a little cooperation goes a long way…
Story
“a shared understanding”
…but a little cooperation goes a long way…
Story
“a shared understanding”
…but a little cooperation goes a long way…
Story
“a shared understanding”
…but a little cooperation goes a long way…
Story
“a shared understanding”
…but a little cooperation goes a long way…
Story
Examples
“a shared understanding”
…but a little cooperation goes a long way…
Story
Examples
Automated	
  
acceptance	
  
criteria
“a shared understanding”
…but a little cooperation goes a long way…
Shared	
  
understanding
Story
Examples
Automated	
  
acceptance	
  
criteria
“a shared understanding”
…but a little cooperation goes a long way…
Working	
  code	
  	
  
and	
  	
  
Working	
  Automated	
  
Acceptance	
  Tests
Shared	
  
understanding
Story
Examples
Automated	
  
acceptance	
  
criteria
“a shared understanding”
…but a little cooperation goes a long way…
Working	
  code	
  	
  
and	
  	
  
Working	
  Automated	
  
Acceptance	
  Tests Exploratory	
  tes5ng,	
  
usability	
  tes5ng...
Shared	
  
understanding
Story
Examples
Automated	
  
acceptance	
  
criteria
“a shared understanding”
We call this “The Three Amigos”
BA	
  and/or	
  product	
  owner
Tester Developer Automatable	
  
Acceptance	
  
Criteria
Shared	
  
understanding
“a shared understanding”
We call this “The Three Amigos”
“a shared understanding”
We call this “The Three Amigos”
“a shared understanding”
We call this “The Three Amigos”
“a shared understanding”
We call this “The Three Amigos”
“a shared understanding”
We call this “The Three Amigos”
“a shared understanding”
“Automation without
collaboration is empty”
Living Documentation
Living Documentation
Living Documentation
Illustrates	
  delivered	
  features
Living Documentation
A	
  star5ng	
  point	
  for	
  manual	
  tests
Illustrates	
  delivered	
  features
Living Documentation
A	
  star5ng	
  point	
  for	
  manual	
  tests
Illustrates	
  delivered	
  features
Progress	
  repor5ng
Living Documentation
A	
  star5ng	
  point	
  for	
  manual	
  tests
Illustrates	
  delivered	
  features
Func5onal	
  and	
  technical	
  documenta5on
Progress	
  repor5ng
Automated test results tell us…
Automated test results tell us…
How	
  many	
  
tests	
  passed
Automated test results tell us…
How	
  many	
  failed
How	
  many	
  
tests	
  passed
Automated test results tell us…
How	
  many	
  failed
How	
  many	
  
tests	
  passed
How	
  many	
  weren’t	
  run
Automated test results tell us…
Automated test results tell us…
What	
  tests	
  exist	
  for	
  
a	
  given	
  feature
Automated test results tell us…
What	
  tests	
  exist	
  for	
  
a	
  given	
  feature
How	
  stable	
  the	
  feature	
  is
Automated test results tell us…
Automated test results tell us…
How	
  a	
  feature	
  was	
  
tested
Automated test results tell us…
Automated test results tell us…
What	
  a	
  feature	
  looks	
  like
Automated test results tell us…
Automated test results tell us…
What	
  a	
  feature	
  looks	
  like
Automated test results tell us…
What	
  a	
  feature	
  looks	
  like
Test results do not tell
us what was not tested
Feature Coverage
Feature Coverage
What	
  stories	
  are	
  defined	
  
for	
  this	
  feature?
Feature Coverage
What	
  stories	
  are	
  defined	
  
for	
  this	
  feature?
How	
  many	
  stories	
  have	
  automated	
  
acceptance	
  criteria?
Feature Coverage
What	
  stories	
  are	
  defined	
  
for	
  this	
  feature?
How	
  many	
  stories	
  have	
  automated	
  
acceptance	
  criteria?
What	
  acceptance	
  criteria	
  have	
  
been	
  automated?
“Living Documentation
completes the circle”
Business
Goal
Business
Goal
Business
Goal
We	
  can	
  automate	
  these	
  examples	
  in	
  the	
  form	
  of	
  
“executable	
  specifica8ons”
FeaturesFeaturesFeatures FeaturesFeaturesExamples
Low level
specifications
Low level
specifications
Low level
specifications
Executable
specifications
“building the software right”
Business
Goal
Business
Goal
Business
Goal
We	
  can	
  automate	
  these	
  examples	
  in	
  the	
  form	
  of	
  
“executable	
  specifica8ons”
FeaturesFeaturesFeatures FeaturesFeaturesExamples
Low level
specifications
Low level
specifications
Low level
specifications
Executable
specifications
“building the software right”
Business
Goal
Business
Goal
Business
Goal
We	
  can	
  automate	
  these	
  examples	
  in	
  the	
  form	
  of	
  
“executable	
  specifica8ons”
FeaturesFeaturesFeatures FeaturesFeaturesExamples
Low level
specifications
Low level
specifications
Low level
specifications
Executable
specifications
“building the software right”
Business
Goal
Business
Goal
Business
Goal
We	
  use	
  low-­‐level	
  BDD	
  or	
  TDD	
  tools	
  to	
  define	
  the	
  
behavior	
  of	
  components,	
  classes	
  etc.
FeaturesFeaturesFeatures FeaturesFeaturesExamples
Low level
specifications
Low level
specifications
Low level
specifications
Executable
specifications
“building the software right”
Low level
specifications
Low level
specifications
Low level
specifications
Low level
specifications
Low level
specifications
Business
Goal
Business
Goal
Business
Goal
We	
  use	
  low-­‐level	
  BDD	
  or	
  TDD	
  tools	
  to	
  define	
  the	
  
behavior	
  of	
  components,	
  classes	
  etc.
FeaturesFeaturesFeatures FeaturesFeaturesExamples
Low level
specifications
Low level
specifications
Low level
specifications
Executable
specifications
spock
RSpec
“building the software right”
Low level
specifications
Low level
specifications
Low level
specifications
Low level
specifications
Low level
specifications
Business
Goal
Business
Goal
Business
Goal
We	
  use	
  low-­‐level	
  BDD	
  or	
  TDD	
  tools	
  to	
  define	
  the	
  
behavior	
  of	
  components,	
  classes	
  etc.
FeaturesFeaturesFeatures FeaturesFeaturesExamples
Low level
specifications
Low level
specifications
Low level
specifications
Executable
specifications
spock
RSpec
“building the software right”
Low level
specifications
Low level
specifications
Low level
specifications
Low level
specifications
Low level
specifications
“building the software right”
Acceptance	
  criteria	
  tell	
  us	
  what	
  we	
  need	
  to	
  build…
“building the software right”
“building the software right”
What	
  would	
  we	
  like	
  the	
  API	
  to	
  look	
  like?
“building the software right”
What	
  would	
  we	
  like	
  the	
  API	
  to	
  look	
  like?
“building the software right”
What	
  would	
  we	
  like	
  the	
  API	
  to	
  look	
  like?
“building the software right”
“building the software right”
Then	
  write	
  low-­‐level	
  specifica8ons	
  for	
  the	
  code
“building the software right”
Then	
  write	
  low-­‐level	
  specifica8ons	
  for	
  the	
  code
“building the software right”
“building the software right”
“building the software right”
These	
  low	
  level	
  specifica8ons	
  become	
  technical	
  
documenta8on	
  for	
  your	
  APIs
“Every class is an API for
someone”
BDD Gotchas
1
2
3
4
BDD Gotchas
1
2
3
4
An8-­‐paQern	
  1	
  
The	
  business	
  analyst	
  writes	
  the	
  scenarios	
  and	
  then	
  gives	
  
them	
  to	
  the	
  other	
  team	
  members.
1
2
3
4
BDD Gotchas
1
2
3
4
BDD Gotchas
An8-­‐paQern	
  2	
  
The	
  tester	
  writes	
  the	
  scenarios	
  at	
  the	
  end	
  
to	
  implement	
  an	
  automated	
  test	
  suite.
1
2
3
4
5
BDD Gotchas
1
2
3
4
5
BDD Gotchas
An8-­‐paQern	
  3	
  
The	
  “Three	
  Amigos”	
  sessions	
  don’t	
  result	
  in	
  usable	
  scenarios,	
  so	
  the	
  
developer	
  invents	
  them	
  a?erwards.
1
2
3
4
5
BDD Gotchas
An8-­‐paQern	
  3	
  
The	
  “Three	
  Amigos”	
  sessions	
  don’t	
  result	
  in	
  usable	
  scenarios,	
  so	
  the	
  
developer	
  invents	
  them	
  a?erwards.
1
2
3
4
5
BDD Gotchas
1
2
3
4
5
BDD Gotchas
An8-­‐paQern	
  4	
  
The	
  scenarios	
  are	
  too	
  UI-­‐centric	
  or	
  detail-­‐focused,	
  and	
  neglect	
  to	
  express	
  
the	
  core	
  business	
  value.
42
Benefits of BDD
•Focus	
  effort	
  
•Reduce	
  waste	
  and	
  misaligned	
  requirements
43
Benefits of BDD
Deliver	
  more	
  valuable	
  soYware
44
Benefits of BDD
Make	
  changes	
  safely
45
Benefits of BDD
Faster	
  and	
  more	
  reliable	
  releases
46
Benefits of BDD
Reduced	
  maintenance	
  costs
BDD	
  requires	
  high	
  business	
  engagement	
  and	
  collabora8on	
  
Adoption challenges
BDD	
  works	
  best	
  in	
  an	
  Agile	
  or	
  Itera8ve	
  context	
  
Adoption challenges
BDD	
  does	
  not	
  work	
  well	
  in	
  a	
  silo	
  
Adoption challenges
Adoption challenges
Skill	
  and	
  prac,ce	
  required:	
  
•Wri,ng	
  good	
  scenarios	
  takes	
  prac,ce	
  
•Poorly	
  wri:en	
  tests	
  can	
  lead	
  to	
  higher	
  test-­‐maintenance	
  costs	
  
•Need	
  to	
  treat	
  test	
  automa,on	
  code	
  like	
  produc,on	
  code	
  
In conclusion…
It’s	
  behaviour	
  all	
  the	
  way	
  down
Want to learn more?
Want to learn more?
Want to learn more?
http://thucydides.info/
Want to learn more?
http://thucydides.info/
https://code.google.com/p/spock/
Thank You
John Ferguson Smart
john.smart@wakaleo.com
wakaleo
http://www.wakaleo.com

More Related Content

What's hot

Arquitectura hexagonal
Arquitectura hexagonalArquitectura hexagonal
Arquitectura hexagonal
540deg
 
An introduction to Behavior-Driven Development (BDD)
An introduction to Behavior-Driven Development (BDD)An introduction to Behavior-Driven Development (BDD)
An introduction to Behavior-Driven Development (BDD)
Suman Guha
 
Test and Behaviour Driven Development (TDD/BDD)
Test and Behaviour Driven Development (TDD/BDD)Test and Behaviour Driven Development (TDD/BDD)
Test and Behaviour Driven Development (TDD/BDD)
Lars Thorup
 
Agile methodologiesvswaterfall
Agile methodologiesvswaterfallAgile methodologiesvswaterfall
Agile methodologiesvswaterfall
Muthu Natarajan
 
Specification by Example
Specification by ExampleSpecification by Example
Specification by Example
Declan Whelan
 
Event storming recipes
Event storming recipesEvent storming recipes
Event storming recipes
Alberto Brandolini
 
Continuous Integration
Continuous IntegrationContinuous Integration
Continuous Integration
drluckyspin
 
Agile product development
Agile product developmentAgile product development
Agile product development
Brenn Hill
 
Agile modeling
Agile modelingAgile modeling
Agile modeling
Amir Moghimi
 
Feature Driven Development
Feature Driven DevelopmentFeature Driven Development
Feature Driven Development
dcsunu
 
Tdd and bdd
Tdd and bddTdd and bdd
Tdd and bdd
MohamedSubhiBouchi
 
Introduction to Behaviour Driven Development (BDD) and Cucumber with Java
Introduction to Behaviour Driven Development (BDD) and Cucumber with JavaIntroduction to Behaviour Driven Development (BDD) and Cucumber with Java
Introduction to Behaviour Driven Development (BDD) and Cucumber with Java
Jawad Khan
 
Hexagonal architecture in PHP
Hexagonal architecture in PHPHexagonal architecture in PHP
Hexagonal architecture in PHP
Paulo Victor Gomes
 
Behavior Driven Development
Behavior Driven DevelopmentBehavior Driven Development
Behavior Driven Development
Liz Keogh
 
Behaviour Driven Development (BDD) - Closing the Loop on a Great Fiori UX
Behaviour Driven Development (BDD) - Closing the Loop on a Great Fiori UXBehaviour Driven Development (BDD) - Closing the Loop on a Great Fiori UX
Behaviour Driven Development (BDD) - Closing the Loop on a Great Fiori UX
John Patterson
 
Introduction to TDD (Test Driven development) - Ahmed Shreef
Introduction to TDD (Test Driven development) - Ahmed ShreefIntroduction to TDD (Test Driven development) - Ahmed Shreef
Introduction to TDD (Test Driven development) - Ahmed Shreef
Ahmed Shreef
 
Free Online Agile & SCRUM Study Training Material for PMI ACP Certification P...
Free Online Agile & SCRUM Study Training Material for PMI ACP Certification P...Free Online Agile & SCRUM Study Training Material for PMI ACP Certification P...
Free Online Agile & SCRUM Study Training Material for PMI ACP Certification P...
GlobalSkillup
 
Clean architecture
Clean architectureClean architecture
Clean architecture
.NET Crowd
 
Microservices, DevOps & SRE
Microservices, DevOps & SREMicroservices, DevOps & SRE
Microservices, DevOps & SRE
Araf Karsh Hamid
 
Domain Driven Design (Ultra) Distilled
Domain Driven Design (Ultra) DistilledDomain Driven Design (Ultra) Distilled
Domain Driven Design (Ultra) Distilled
Nicola Costantino
 

What's hot (20)

Arquitectura hexagonal
Arquitectura hexagonalArquitectura hexagonal
Arquitectura hexagonal
 
An introduction to Behavior-Driven Development (BDD)
An introduction to Behavior-Driven Development (BDD)An introduction to Behavior-Driven Development (BDD)
An introduction to Behavior-Driven Development (BDD)
 
Test and Behaviour Driven Development (TDD/BDD)
Test and Behaviour Driven Development (TDD/BDD)Test and Behaviour Driven Development (TDD/BDD)
Test and Behaviour Driven Development (TDD/BDD)
 
Agile methodologiesvswaterfall
Agile methodologiesvswaterfallAgile methodologiesvswaterfall
Agile methodologiesvswaterfall
 
Specification by Example
Specification by ExampleSpecification by Example
Specification by Example
 
Event storming recipes
Event storming recipesEvent storming recipes
Event storming recipes
 
Continuous Integration
Continuous IntegrationContinuous Integration
Continuous Integration
 
Agile product development
Agile product developmentAgile product development
Agile product development
 
Agile modeling
Agile modelingAgile modeling
Agile modeling
 
Feature Driven Development
Feature Driven DevelopmentFeature Driven Development
Feature Driven Development
 
Tdd and bdd
Tdd and bddTdd and bdd
Tdd and bdd
 
Introduction to Behaviour Driven Development (BDD) and Cucumber with Java
Introduction to Behaviour Driven Development (BDD) and Cucumber with JavaIntroduction to Behaviour Driven Development (BDD) and Cucumber with Java
Introduction to Behaviour Driven Development (BDD) and Cucumber with Java
 
Hexagonal architecture in PHP
Hexagonal architecture in PHPHexagonal architecture in PHP
Hexagonal architecture in PHP
 
Behavior Driven Development
Behavior Driven DevelopmentBehavior Driven Development
Behavior Driven Development
 
Behaviour Driven Development (BDD) - Closing the Loop on a Great Fiori UX
Behaviour Driven Development (BDD) - Closing the Loop on a Great Fiori UXBehaviour Driven Development (BDD) - Closing the Loop on a Great Fiori UX
Behaviour Driven Development (BDD) - Closing the Loop on a Great Fiori UX
 
Introduction to TDD (Test Driven development) - Ahmed Shreef
Introduction to TDD (Test Driven development) - Ahmed ShreefIntroduction to TDD (Test Driven development) - Ahmed Shreef
Introduction to TDD (Test Driven development) - Ahmed Shreef
 
Free Online Agile & SCRUM Study Training Material for PMI ACP Certification P...
Free Online Agile & SCRUM Study Training Material for PMI ACP Certification P...Free Online Agile & SCRUM Study Training Material for PMI ACP Certification P...
Free Online Agile & SCRUM Study Training Material for PMI ACP Certification P...
 
Clean architecture
Clean architectureClean architecture
Clean architecture
 
Microservices, DevOps & SRE
Microservices, DevOps & SREMicroservices, DevOps & SRE
Microservices, DevOps & SRE
 
Domain Driven Design (Ultra) Distilled
Domain Driven Design (Ultra) DistilledDomain Driven Design (Ultra) Distilled
Domain Driven Design (Ultra) Distilled
 

Similar to BDD in Action - building software that matters

BDD Anti-patterns
BDD Anti-patternsBDD Anti-patterns
BDD Anti-patterns
John Ferguson Smart Limited
 
It's Testing, Jim, but not as we know it - BDD for Testers
It's Testing, Jim, but not as we know it - BDD for TestersIt's Testing, Jim, but not as we know it - BDD for Testers
It's Testing, Jim, but not as we know it - BDD for Testers
John Ferguson Smart Limited
 
Its testing-jim-but-not-as-we-know-it-devoxx
Its testing-jim-but-not-as-we-know-it-devoxxIts testing-jim-but-not-as-we-know-it-devoxx
Its testing-jim-but-not-as-we-know-it-devoxx
John Ferguson Smart Limited
 
Behavior Driven Development
Behavior Driven DevelopmentBehavior Driven Development
Behavior Driven Development
Adam Englander
 
Topic tdd-and-bdd b4usolution
Topic tdd-and-bdd b4usolutionTopic tdd-and-bdd b4usolution
Topic tdd-and-bdd b4usolution
Hoa Le
 
Building In Quality: The Beauty Of Behavior Driven Development (BDD)
Building In Quality: The Beauty Of Behavior Driven Development (BDD)Building In Quality: The Beauty Of Behavior Driven Development (BDD)
Building In Quality: The Beauty Of Behavior Driven Development (BDD)
Synerzip
 
Behavior Driven Development—A Guide to Agile Practices by Josh Eastman
Behavior Driven Development—A Guide to Agile Practices by Josh EastmanBehavior Driven Development—A Guide to Agile Practices by Josh Eastman
Behavior Driven Development—A Guide to Agile Practices by Josh Eastman
QA or the Highway
 
BDD in Action - Devoxx 2014
BDD in Action - Devoxx 2014BDD in Action - Devoxx 2014
BDD in Action - Devoxx 2014
John Ferguson Smart Limited
 
Gateway to Agile: XP and BDD
Gateway to Agile: XP and BDD Gateway to Agile: XP and BDD
Gateway to Agile: XP and BDD
Gervais Johnson, Advisor
 
Behavior Driven Development with AngularJS & Jasmine
Behavior Driven Development with AngularJS & JasmineBehavior Driven Development with AngularJS & Jasmine
Behavior Driven Development with AngularJS & Jasmine
Remus Langu
 
The BDD Process (Behavior-driven development)
The BDD Process (Behavior-driven development)The BDD Process (Behavior-driven development)
The BDD Process (Behavior-driven development)
GleecusTechlabs1
 
Being Test-Driven: It's not really about testing
Being Test-Driven: It's not really about testingBeing Test-Driven: It's not really about testing
Being Test-Driven: It's not really about testing
Raj Indugula
 
Testing stage. being ahead business with cucumber
Testing stage. being ahead business with cucumberTesting stage. being ahead business with cucumber
Testing stage. being ahead business with cucumber
Alex Mikitenko
 
BA and Beyond 20 - Elke Steegmans and David Vandenbroeck - Behaviour-driven d...
BA and Beyond 20 - Elke Steegmans and David Vandenbroeck - Behaviour-driven d...BA and Beyond 20 - Elke Steegmans and David Vandenbroeck - Behaviour-driven d...
BA and Beyond 20 - Elke Steegmans and David Vandenbroeck - Behaviour-driven d...
BA and Beyond
 
Wednesday Webinar on "Strengthening your Agility with BDD - A demo using Cucu...
Wednesday Webinar on "Strengthening your Agility with BDD - A demo using Cucu...Wednesday Webinar on "Strengthening your Agility with BDD - A demo using Cucu...
Wednesday Webinar on "Strengthening your Agility with BDD - A demo using Cucu...
Agile Testing Alliance
 
Whole team approach to agile testing bdd can help better pune 15th meetup
Whole team approach to agile testing    bdd can help better pune 15th meetupWhole team approach to agile testing    bdd can help better pune 15th meetup
Whole team approach to agile testing bdd can help better pune 15th meetup
Agile Testing Alliance
 
Practiced agile developer with tdd & bdd
Practiced agile developer with tdd & bdd Practiced agile developer with tdd & bdd
Practiced agile developer with tdd & bdd
Sakares Saengkaew
 
Expo qa from user stories to automated acceptance tests with bdd
Expo qa   from user stories to automated acceptance tests with bddExpo qa   from user stories to automated acceptance tests with bdd
Expo qa from user stories to automated acceptance tests with bdd
Eduardo Riol
 
How Custom is your Org? CEER at Dreamforce 2019
How Custom is your Org?  CEER at Dreamforce 2019How Custom is your Org?  CEER at Dreamforce 2019
How Custom is your Org? CEER at Dreamforce 2019
Steven Herod
 
Webinar-From user stories to automated acceptance tests with BDD-Eduardo Riol
Webinar-From user stories to automated acceptance tests with BDD-Eduardo RiolWebinar-From user stories to automated acceptance tests with BDD-Eduardo Riol
Webinar-From user stories to automated acceptance tests with BDD-Eduardo Riol
atSistemas
 

Similar to BDD in Action - building software that matters (20)

BDD Anti-patterns
BDD Anti-patternsBDD Anti-patterns
BDD Anti-patterns
 
It's Testing, Jim, but not as we know it - BDD for Testers
It's Testing, Jim, but not as we know it - BDD for TestersIt's Testing, Jim, but not as we know it - BDD for Testers
It's Testing, Jim, but not as we know it - BDD for Testers
 
Its testing-jim-but-not-as-we-know-it-devoxx
Its testing-jim-but-not-as-we-know-it-devoxxIts testing-jim-but-not-as-we-know-it-devoxx
Its testing-jim-but-not-as-we-know-it-devoxx
 
Behavior Driven Development
Behavior Driven DevelopmentBehavior Driven Development
Behavior Driven Development
 
Topic tdd-and-bdd b4usolution
Topic tdd-and-bdd b4usolutionTopic tdd-and-bdd b4usolution
Topic tdd-and-bdd b4usolution
 
Building In Quality: The Beauty Of Behavior Driven Development (BDD)
Building In Quality: The Beauty Of Behavior Driven Development (BDD)Building In Quality: The Beauty Of Behavior Driven Development (BDD)
Building In Quality: The Beauty Of Behavior Driven Development (BDD)
 
Behavior Driven Development—A Guide to Agile Practices by Josh Eastman
Behavior Driven Development—A Guide to Agile Practices by Josh EastmanBehavior Driven Development—A Guide to Agile Practices by Josh Eastman
Behavior Driven Development—A Guide to Agile Practices by Josh Eastman
 
BDD in Action - Devoxx 2014
BDD in Action - Devoxx 2014BDD in Action - Devoxx 2014
BDD in Action - Devoxx 2014
 
Gateway to Agile: XP and BDD
Gateway to Agile: XP and BDD Gateway to Agile: XP and BDD
Gateway to Agile: XP and BDD
 
Behavior Driven Development with AngularJS & Jasmine
Behavior Driven Development with AngularJS & JasmineBehavior Driven Development with AngularJS & Jasmine
Behavior Driven Development with AngularJS & Jasmine
 
The BDD Process (Behavior-driven development)
The BDD Process (Behavior-driven development)The BDD Process (Behavior-driven development)
The BDD Process (Behavior-driven development)
 
Being Test-Driven: It's not really about testing
Being Test-Driven: It's not really about testingBeing Test-Driven: It's not really about testing
Being Test-Driven: It's not really about testing
 
Testing stage. being ahead business with cucumber
Testing stage. being ahead business with cucumberTesting stage. being ahead business with cucumber
Testing stage. being ahead business with cucumber
 
BA and Beyond 20 - Elke Steegmans and David Vandenbroeck - Behaviour-driven d...
BA and Beyond 20 - Elke Steegmans and David Vandenbroeck - Behaviour-driven d...BA and Beyond 20 - Elke Steegmans and David Vandenbroeck - Behaviour-driven d...
BA and Beyond 20 - Elke Steegmans and David Vandenbroeck - Behaviour-driven d...
 
Wednesday Webinar on "Strengthening your Agility with BDD - A demo using Cucu...
Wednesday Webinar on "Strengthening your Agility with BDD - A demo using Cucu...Wednesday Webinar on "Strengthening your Agility with BDD - A demo using Cucu...
Wednesday Webinar on "Strengthening your Agility with BDD - A demo using Cucu...
 
Whole team approach to agile testing bdd can help better pune 15th meetup
Whole team approach to agile testing    bdd can help better pune 15th meetupWhole team approach to agile testing    bdd can help better pune 15th meetup
Whole team approach to agile testing bdd can help better pune 15th meetup
 
Practiced agile developer with tdd & bdd
Practiced agile developer with tdd & bdd Practiced agile developer with tdd & bdd
Practiced agile developer with tdd & bdd
 
Expo qa from user stories to automated acceptance tests with bdd
Expo qa   from user stories to automated acceptance tests with bddExpo qa   from user stories to automated acceptance tests with bdd
Expo qa from user stories to automated acceptance tests with bdd
 
How Custom is your Org? CEER at Dreamforce 2019
How Custom is your Org?  CEER at Dreamforce 2019How Custom is your Org?  CEER at Dreamforce 2019
How Custom is your Org? CEER at Dreamforce 2019
 
Webinar-From user stories to automated acceptance tests with BDD-Eduardo Riol
Webinar-From user stories to automated acceptance tests with BDD-Eduardo RiolWebinar-From user stories to automated acceptance tests with BDD-Eduardo Riol
Webinar-From user stories to automated acceptance tests with BDD-Eduardo Riol
 

More from John Ferguson Smart Limited

My Reading Specs - Refactoring Patterns for Gherkin Scenarios
My Reading Specs - Refactoring Patterns for Gherkin ScenariosMy Reading Specs - Refactoring Patterns for Gherkin Scenarios
My Reading Specs - Refactoring Patterns for Gherkin Scenarios
John Ferguson Smart Limited
 
Artisti e Condotierri - How can your team become artists of the 21st century ...
Artisti e Condotierri - How can your team become artists of the 21st century ...Artisti e Condotierri - How can your team become artists of the 21st century ...
Artisti e Condotierri - How can your team become artists of the 21st century ...
John Ferguson Smart Limited
 
Engage! Bringing teams together to deliver software that makes a difference
Engage! Bringing teams together to deliver software that makes a differenceEngage! Bringing teams together to deliver software that makes a difference
Engage! Bringing teams together to deliver software that makes a difference
John Ferguson Smart Limited
 
BE A POD OF DOLPHINS, NOT A DANCING ELEPHANT
BE A POD OF DOLPHINS, NOT A DANCING ELEPHANTBE A POD OF DOLPHINS, NOT A DANCING ELEPHANT
BE A POD OF DOLPHINS, NOT A DANCING ELEPHANT
John Ferguson Smart Limited
 
Sustainable Test Automation with Serenity BDD and Screenplay
Sustainable Test Automation with Serenity BDD and ScreenplaySustainable Test Automation with Serenity BDD and Screenplay
Sustainable Test Automation with Serenity BDD and Screenplay
John Ferguson Smart Limited
 
Feature Mapping Workshop
Feature Mapping WorkshopFeature Mapping Workshop
Feature Mapping Workshop
John Ferguson Smart Limited
 
Engage! Bringing teams together to deliver software that makes a difference
Engage! Bringing teams together to deliver software that makes a differenceEngage! Bringing teams together to deliver software that makes a difference
Engage! Bringing teams together to deliver software that makes a difference
John Ferguson Smart Limited
 
Beyond Given/When/Then - why diving into Cucumber is the wrong approach to ad...
Beyond Given/When/Then - why diving into Cucumber is the wrong approach to ad...Beyond Given/When/Then - why diving into Cucumber is the wrong approach to ad...
Beyond Given/When/Then - why diving into Cucumber is the wrong approach to ad...
John Ferguson Smart Limited
 
Beyond Given/When/Then - why diving into Cucumber is the wrong approach to ad...
Beyond Given/When/Then - why diving into Cucumber is the wrong approach to ad...Beyond Given/When/Then - why diving into Cucumber is the wrong approach to ad...
Beyond Given/When/Then - why diving into Cucumber is the wrong approach to ad...
John Ferguson Smart Limited
 
Shift left-devoxx-pl
Shift left-devoxx-plShift left-devoxx-pl
Shift left-devoxx-pl
John Ferguson Smart Limited
 
Screenplay - Next generation automated acceptance testing
Screenplay - Next generation automated acceptance testingScreenplay - Next generation automated acceptance testing
Screenplay - Next generation automated acceptance testing
John Ferguson Smart Limited
 
Cucumber and Spock Primer
Cucumber and Spock PrimerCucumber and Spock Primer
Cucumber and Spock Primer
John Ferguson Smart Limited
 
All the world's a stage – the next step in automated testing practices
All the world's a stage – the next step in automated testing practicesAll the world's a stage – the next step in automated testing practices
All the world's a stage – the next step in automated testing practices
John Ferguson Smart Limited
 
CukeUp 2016 Agile Product Planning Workshop
CukeUp 2016 Agile Product Planning WorkshopCukeUp 2016 Agile Product Planning Workshop
CukeUp 2016 Agile Product Planning Workshop
John Ferguson Smart Limited
 
BDD Anti-patterns
BDD Anti-patternsBDD Anti-patterns
BDD Anti-patterns
John Ferguson Smart Limited
 
Serenity and the Journey Pattern
Serenity and the Journey PatternSerenity and the Journey Pattern
Serenity and the Journey Pattern
John Ferguson Smart Limited
 
BDD - Collaborate like you mean it!
BDD - Collaborate like you mean it!BDD - Collaborate like you mean it!
BDD - Collaborate like you mean it!
John Ferguson Smart Limited
 
BDD-Driven Microservices
BDD-Driven MicroservicesBDD-Driven Microservices
BDD-Driven Microservices
John Ferguson Smart Limited
 
BDD: The unit test of the product owner
BDD: The unit test of the product ownerBDD: The unit test of the product owner
BDD: The unit test of the product owner
John Ferguson Smart Limited
 
TDD and BDD in Java 8 - what's in it for me?
TDD and BDD in Java 8 - what's in it for me?TDD and BDD in Java 8 - what's in it for me?
TDD and BDD in Java 8 - what's in it for me?
John Ferguson Smart Limited
 

More from John Ferguson Smart Limited (20)

My Reading Specs - Refactoring Patterns for Gherkin Scenarios
My Reading Specs - Refactoring Patterns for Gherkin ScenariosMy Reading Specs - Refactoring Patterns for Gherkin Scenarios
My Reading Specs - Refactoring Patterns for Gherkin Scenarios
 
Artisti e Condotierri - How can your team become artists of the 21st century ...
Artisti e Condotierri - How can your team become artists of the 21st century ...Artisti e Condotierri - How can your team become artists of the 21st century ...
Artisti e Condotierri - How can your team become artists of the 21st century ...
 
Engage! Bringing teams together to deliver software that makes a difference
Engage! Bringing teams together to deliver software that makes a differenceEngage! Bringing teams together to deliver software that makes a difference
Engage! Bringing teams together to deliver software that makes a difference
 
BE A POD OF DOLPHINS, NOT A DANCING ELEPHANT
BE A POD OF DOLPHINS, NOT A DANCING ELEPHANTBE A POD OF DOLPHINS, NOT A DANCING ELEPHANT
BE A POD OF DOLPHINS, NOT A DANCING ELEPHANT
 
Sustainable Test Automation with Serenity BDD and Screenplay
Sustainable Test Automation with Serenity BDD and ScreenplaySustainable Test Automation with Serenity BDD and Screenplay
Sustainable Test Automation with Serenity BDD and Screenplay
 
Feature Mapping Workshop
Feature Mapping WorkshopFeature Mapping Workshop
Feature Mapping Workshop
 
Engage! Bringing teams together to deliver software that makes a difference
Engage! Bringing teams together to deliver software that makes a differenceEngage! Bringing teams together to deliver software that makes a difference
Engage! Bringing teams together to deliver software that makes a difference
 
Beyond Given/When/Then - why diving into Cucumber is the wrong approach to ad...
Beyond Given/When/Then - why diving into Cucumber is the wrong approach to ad...Beyond Given/When/Then - why diving into Cucumber is the wrong approach to ad...
Beyond Given/When/Then - why diving into Cucumber is the wrong approach to ad...
 
Beyond Given/When/Then - why diving into Cucumber is the wrong approach to ad...
Beyond Given/When/Then - why diving into Cucumber is the wrong approach to ad...Beyond Given/When/Then - why diving into Cucumber is the wrong approach to ad...
Beyond Given/When/Then - why diving into Cucumber is the wrong approach to ad...
 
Shift left-devoxx-pl
Shift left-devoxx-plShift left-devoxx-pl
Shift left-devoxx-pl
 
Screenplay - Next generation automated acceptance testing
Screenplay - Next generation automated acceptance testingScreenplay - Next generation automated acceptance testing
Screenplay - Next generation automated acceptance testing
 
Cucumber and Spock Primer
Cucumber and Spock PrimerCucumber and Spock Primer
Cucumber and Spock Primer
 
All the world's a stage – the next step in automated testing practices
All the world's a stage – the next step in automated testing practicesAll the world's a stage – the next step in automated testing practices
All the world's a stage – the next step in automated testing practices
 
CukeUp 2016 Agile Product Planning Workshop
CukeUp 2016 Agile Product Planning WorkshopCukeUp 2016 Agile Product Planning Workshop
CukeUp 2016 Agile Product Planning Workshop
 
BDD Anti-patterns
BDD Anti-patternsBDD Anti-patterns
BDD Anti-patterns
 
Serenity and the Journey Pattern
Serenity and the Journey PatternSerenity and the Journey Pattern
Serenity and the Journey Pattern
 
BDD - Collaborate like you mean it!
BDD - Collaborate like you mean it!BDD - Collaborate like you mean it!
BDD - Collaborate like you mean it!
 
BDD-Driven Microservices
BDD-Driven MicroservicesBDD-Driven Microservices
BDD-Driven Microservices
 
BDD: The unit test of the product owner
BDD: The unit test of the product ownerBDD: The unit test of the product owner
BDD: The unit test of the product owner
 
TDD and BDD in Java 8 - what's in it for me?
TDD and BDD in Java 8 - what's in it for me?TDD and BDD in Java 8 - what's in it for me?
TDD and BDD in Java 8 - what's in it for me?
 

Recently uploaded

Dublin_mulesoft_meetup_Mulesoft_Salesforce_Integration (1).pptx
Dublin_mulesoft_meetup_Mulesoft_Salesforce_Integration (1).pptxDublin_mulesoft_meetup_Mulesoft_Salesforce_Integration (1).pptx
Dublin_mulesoft_meetup_Mulesoft_Salesforce_Integration (1).pptx
Kunal Gupta
 
Vulnerability Management: A Comprehensive Overview
Vulnerability Management: A Comprehensive OverviewVulnerability Management: A Comprehensive Overview
Vulnerability Management: A Comprehensive Overview
Steven Carlson
 
Evolution of iPaaS - simplify IT workloads to provide a unified view of data...
Evolution of iPaaS - simplify IT workloads to provide a unified view of  data...Evolution of iPaaS - simplify IT workloads to provide a unified view of  data...
Evolution of iPaaS - simplify IT workloads to provide a unified view of data...
Torry Harris
 
Using LLM Agents with Llama 3, LangGraph and Milvus
Using LLM Agents with Llama 3, LangGraph and MilvusUsing LLM Agents with Llama 3, LangGraph and Milvus
Using LLM Agents with Llama 3, LangGraph and Milvus
Zilliz
 
High Profile Girls call Service Pune 000XX00000 Provide Best And Top Girl Ser...
High Profile Girls call Service Pune 000XX00000 Provide Best And Top Girl Ser...High Profile Girls call Service Pune 000XX00000 Provide Best And Top Girl Ser...
High Profile Girls call Service Pune 000XX00000 Provide Best And Top Girl Ser...
bhumivarma35300
 
Girls Call Churchgate 9910780858 Provide Best And Top Girl Service And No1 in...
Girls Call Churchgate 9910780858 Provide Best And Top Girl Service And No1 in...Girls Call Churchgate 9910780858 Provide Best And Top Girl Service And No1 in...
Girls Call Churchgate 9910780858 Provide Best And Top Girl Service And No1 in...
maigasapphire
 
Use Cases & Benefits of RPA in Manufacturing in 2024.pptx
Use Cases & Benefits of RPA in Manufacturing in 2024.pptxUse Cases & Benefits of RPA in Manufacturing in 2024.pptx
Use Cases & Benefits of RPA in Manufacturing in 2024.pptx
SynapseIndia
 
Introduction-to-the-IAM-Platform-Implementation-Plan.pptx
Introduction-to-the-IAM-Platform-Implementation-Plan.pptxIntroduction-to-the-IAM-Platform-Implementation-Plan.pptx
Introduction-to-the-IAM-Platform-Implementation-Plan.pptx
313mohammedarshad
 
High Profile Girls Call ServiCe Hyderabad 0000000000 Tanisha Best High Class ...
High Profile Girls Call ServiCe Hyderabad 0000000000 Tanisha Best High Class ...High Profile Girls Call ServiCe Hyderabad 0000000000 Tanisha Best High Class ...
High Profile Girls Call ServiCe Hyderabad 0000000000 Tanisha Best High Class ...
aslasdfmkhan4750
 
Data Integration Basics: Merging & Joining Data
Data Integration Basics: Merging & Joining DataData Integration Basics: Merging & Joining Data
Data Integration Basics: Merging & Joining Data
Safe Software
 
Google I/O Extended Harare Merged Slides
Google I/O Extended Harare Merged SlidesGoogle I/O Extended Harare Merged Slides
Google I/O Extended Harare Merged Slides
Google Developer Group - Harare
 
Opencast Summit 2024 — Opencast @ University of Münster
Opencast Summit 2024 — Opencast @ University of MünsterOpencast Summit 2024 — Opencast @ University of Münster
Opencast Summit 2024 — Opencast @ University of Münster
Matthias Neugebauer
 
Acumatica vs. Sage Intacct vs. NetSuite _ NOW CFO.pdf
Acumatica vs. Sage Intacct vs. NetSuite _ NOW CFO.pdfAcumatica vs. Sage Intacct vs. NetSuite _ NOW CFO.pdf
Acumatica vs. Sage Intacct vs. NetSuite _ NOW CFO.pdf
BrainSell Technologies
 
EuroPython 2024 - Streamlining Testing in a Large Python Codebase
EuroPython 2024 - Streamlining Testing in a Large Python CodebaseEuroPython 2024 - Streamlining Testing in a Large Python Codebase
EuroPython 2024 - Streamlining Testing in a Large Python Codebase
Jimmy Lai
 
(CISOPlatform Summit & SACON 2024) Digital Personal Data Protection Act.pdf
(CISOPlatform Summit & SACON 2024) Digital Personal Data Protection Act.pdf(CISOPlatform Summit & SACON 2024) Digital Personal Data Protection Act.pdf
(CISOPlatform Summit & SACON 2024) Digital Personal Data Protection Act.pdf
Priyanka Aash
 
Sonkoloniya documentation - ONEprojukti.pdf
Sonkoloniya documentation - ONEprojukti.pdfSonkoloniya documentation - ONEprojukti.pdf
Sonkoloniya documentation - ONEprojukti.pdf
SubhamMandal40
 
Uncharted Together- Navigating AI's New Frontiers in Libraries
Uncharted Together- Navigating AI's New Frontiers in LibrariesUncharted Together- Navigating AI's New Frontiers in Libraries
Uncharted Together- Navigating AI's New Frontiers in Libraries
Brian Pichman
 
How Social Media Hackers Help You to See Your Wife's Message.pdf
How Social Media Hackers Help You to See Your Wife's Message.pdfHow Social Media Hackers Help You to See Your Wife's Message.pdf
How Social Media Hackers Help You to See Your Wife's Message.pdf
HackersList
 
CiscoIconsLibrary cours de réseau VLAN.ppt
CiscoIconsLibrary cours de réseau VLAN.pptCiscoIconsLibrary cours de réseau VLAN.ppt
CiscoIconsLibrary cours de réseau VLAN.ppt
moinahousna
 
BLOCKCHAIN TECHNOLOGY - Advantages and Disadvantages
BLOCKCHAIN TECHNOLOGY - Advantages and DisadvantagesBLOCKCHAIN TECHNOLOGY - Advantages and Disadvantages
BLOCKCHAIN TECHNOLOGY - Advantages and Disadvantages
SAI KAILASH R
 

Recently uploaded (20)

Dublin_mulesoft_meetup_Mulesoft_Salesforce_Integration (1).pptx
Dublin_mulesoft_meetup_Mulesoft_Salesforce_Integration (1).pptxDublin_mulesoft_meetup_Mulesoft_Salesforce_Integration (1).pptx
Dublin_mulesoft_meetup_Mulesoft_Salesforce_Integration (1).pptx
 
Vulnerability Management: A Comprehensive Overview
Vulnerability Management: A Comprehensive OverviewVulnerability Management: A Comprehensive Overview
Vulnerability Management: A Comprehensive Overview
 
Evolution of iPaaS - simplify IT workloads to provide a unified view of data...
Evolution of iPaaS - simplify IT workloads to provide a unified view of  data...Evolution of iPaaS - simplify IT workloads to provide a unified view of  data...
Evolution of iPaaS - simplify IT workloads to provide a unified view of data...
 
Using LLM Agents with Llama 3, LangGraph and Milvus
Using LLM Agents with Llama 3, LangGraph and MilvusUsing LLM Agents with Llama 3, LangGraph and Milvus
Using LLM Agents with Llama 3, LangGraph and Milvus
 
High Profile Girls call Service Pune 000XX00000 Provide Best And Top Girl Ser...
High Profile Girls call Service Pune 000XX00000 Provide Best And Top Girl Ser...High Profile Girls call Service Pune 000XX00000 Provide Best And Top Girl Ser...
High Profile Girls call Service Pune 000XX00000 Provide Best And Top Girl Ser...
 
Girls Call Churchgate 9910780858 Provide Best And Top Girl Service And No1 in...
Girls Call Churchgate 9910780858 Provide Best And Top Girl Service And No1 in...Girls Call Churchgate 9910780858 Provide Best And Top Girl Service And No1 in...
Girls Call Churchgate 9910780858 Provide Best And Top Girl Service And No1 in...
 
Use Cases & Benefits of RPA in Manufacturing in 2024.pptx
Use Cases & Benefits of RPA in Manufacturing in 2024.pptxUse Cases & Benefits of RPA in Manufacturing in 2024.pptx
Use Cases & Benefits of RPA in Manufacturing in 2024.pptx
 
Introduction-to-the-IAM-Platform-Implementation-Plan.pptx
Introduction-to-the-IAM-Platform-Implementation-Plan.pptxIntroduction-to-the-IAM-Platform-Implementation-Plan.pptx
Introduction-to-the-IAM-Platform-Implementation-Plan.pptx
 
High Profile Girls Call ServiCe Hyderabad 0000000000 Tanisha Best High Class ...
High Profile Girls Call ServiCe Hyderabad 0000000000 Tanisha Best High Class ...High Profile Girls Call ServiCe Hyderabad 0000000000 Tanisha Best High Class ...
High Profile Girls Call ServiCe Hyderabad 0000000000 Tanisha Best High Class ...
 
Data Integration Basics: Merging & Joining Data
Data Integration Basics: Merging & Joining DataData Integration Basics: Merging & Joining Data
Data Integration Basics: Merging & Joining Data
 
Google I/O Extended Harare Merged Slides
Google I/O Extended Harare Merged SlidesGoogle I/O Extended Harare Merged Slides
Google I/O Extended Harare Merged Slides
 
Opencast Summit 2024 — Opencast @ University of Münster
Opencast Summit 2024 — Opencast @ University of MünsterOpencast Summit 2024 — Opencast @ University of Münster
Opencast Summit 2024 — Opencast @ University of Münster
 
Acumatica vs. Sage Intacct vs. NetSuite _ NOW CFO.pdf
Acumatica vs. Sage Intacct vs. NetSuite _ NOW CFO.pdfAcumatica vs. Sage Intacct vs. NetSuite _ NOW CFO.pdf
Acumatica vs. Sage Intacct vs. NetSuite _ NOW CFO.pdf
 
EuroPython 2024 - Streamlining Testing in a Large Python Codebase
EuroPython 2024 - Streamlining Testing in a Large Python CodebaseEuroPython 2024 - Streamlining Testing in a Large Python Codebase
EuroPython 2024 - Streamlining Testing in a Large Python Codebase
 
(CISOPlatform Summit & SACON 2024) Digital Personal Data Protection Act.pdf
(CISOPlatform Summit & SACON 2024) Digital Personal Data Protection Act.pdf(CISOPlatform Summit & SACON 2024) Digital Personal Data Protection Act.pdf
(CISOPlatform Summit & SACON 2024) Digital Personal Data Protection Act.pdf
 
Sonkoloniya documentation - ONEprojukti.pdf
Sonkoloniya documentation - ONEprojukti.pdfSonkoloniya documentation - ONEprojukti.pdf
Sonkoloniya documentation - ONEprojukti.pdf
 
Uncharted Together- Navigating AI's New Frontiers in Libraries
Uncharted Together- Navigating AI's New Frontiers in LibrariesUncharted Together- Navigating AI's New Frontiers in Libraries
Uncharted Together- Navigating AI's New Frontiers in Libraries
 
How Social Media Hackers Help You to See Your Wife's Message.pdf
How Social Media Hackers Help You to See Your Wife's Message.pdfHow Social Media Hackers Help You to See Your Wife's Message.pdf
How Social Media Hackers Help You to See Your Wife's Message.pdf
 
CiscoIconsLibrary cours de réseau VLAN.ppt
CiscoIconsLibrary cours de réseau VLAN.pptCiscoIconsLibrary cours de réseau VLAN.ppt
CiscoIconsLibrary cours de réseau VLAN.ppt
 
BLOCKCHAIN TECHNOLOGY - Advantages and Disadvantages
BLOCKCHAIN TECHNOLOGY - Advantages and DisadvantagesBLOCKCHAIN TECHNOLOGY - Advantages and Disadvantages
BLOCKCHAIN TECHNOLOGY - Advantages and Disadvantages
 

BDD in Action - building software that matters

  • 2. John Ferguson Smart Consultant   Trainer   Mentor   Author   Speaker   Coder
  • 3. John Ferguson Smart Consultant   Trainer   Mentor   Author   Speaker   Coder
  • 4. John Ferguson Smart Consultant   Trainer   Mentor   Author   Speaker   Coder
  • 5. John Ferguson Smart Consultant   Trainer   Mentor   Author   Speaker   Coder
  • 6. So what is this BDD thing?
  • 7. Using examples So what is this BDD thing?
  • 8. Using examples a shared understanding So what is this BDD thing?
  • 9. Using examples a shared understanding software that matters So what is this BDD thing?
  • 10. BDD So what is this BDD thing?
  • 11. BDD Collaboration So what is this BDD thing?
  • 12. BDD Hunting out value Collaboration So what is this BDD thing?
  • 13. BDD Hunting out value Collaboration Building the right software So what is this BDD thing?
  • 14. BDD Hunting out value Automated Acceptance Criteria Collaboration Building the right software So what is this BDD thing?
  • 15. BDD Hunting out value Automated Acceptance Criteria API and code design Collaboration Building the right software So what is this BDD thing?
  • 16. BDD Hunting out value Automated Acceptance Criteria API and code design Collaboration Building the software right Building the right software So what is this BDD thing?
  • 17. BDD Hunting out value Automated Acceptance Criteria API and code design Collaboration Building the software right Building the right software Living Documentation So what is this BDD thing?
  • 18. The business owner tells the business analyst what he wants 1 2 The business analyst writes a requirements document 3 The developer translates the requirements into software 4 The tester translates the requirements into test cases 5 The technical writer translates the software into functional and technical documentation BDD in a nutshell A traditional development process
  • 19. The business owner tells the business analyst what he wants 1 2 The business analyst writes a requirements document 3 The developer translates the requirements into software 4 The tester translates the requirements into test cases 5 The technical writer translates the software into functional and technical documentation BDD in a nutshell A traditional development process
  • 20. The business owner tells the business analyst what he wants 1 2 The business analyst writes a requirements document 3 The developer translates the requirements into software 4 The tester translates the requirements into test cases 5 The technical writer translates the software into functional and technical documentation BDD in a nutshell A traditional development process
  • 21. The business owner tells the business analyst what he wants 1 2 The business analyst writes a requirements document 3 The developer translates the requirements into software 4 The tester translates the requirements into test cases 5 The technical writer translates the software into functional and technical documentation BDD in a nutshell A traditional development process
  • 22. The business owner tells the business analyst what he wants 1 2 The business analyst writes a requirements document 3 The developer translates the requirements into software 4 The tester translates the requirements into test cases 5 The technical writer translates the software into functional and technical documentation BDD in a nutshell A traditional development process
  • 23. The business owner tells the business analyst what he wants 1 2 The business analyst writes a requirements document 3 The developer translates the requirements into software 4 The tester translates the requirements into test cases 5 The technical writer translates the software into functional and technical documentation BDD in a nutshell A traditional development process
  • 24. The business owner tells the business analyst what he wants 1 2 The business analyst writes a requirements document 3 The developer translates the requirements into software 4 The tester translates the requirements into test cases 5 The technical writer translates the software into functional and technical documentation BDD in a nutshell A traditional development process
  • 25. The business owner tells the business analyst what he wants 1 2 The business analyst writes a requirements document 3 The developer translates the requirements into software 4 The tester translates the requirements into test cases 5 The technical writer translates the software into functional and technical documentation BDD in a nutshell A traditional development process
  • 26. The business owner tells the business analyst what he wants 1 2 The business analyst writes a requirements document 3 The developer translates the requirements into software 4 The tester translates the requirements into test cases 5 The technical writer translates the software into functional and technical documentation BDD in a nutshell A traditional development process
  • 27. The business owner tells the business analyst what he wants 1 2 The business analyst writes a requirements document 3 The developer translates the requirements into software 4 The tester translates the requirements into test cases 5 The technical writer translates the software into functional and technical documentation BDD in a nutshell A traditional development process
  • 28. The business owner tells the business analyst what he wants 1 2 The business analyst writes a requirements document 3 The developer translates the requirements into software 4 The tester translates the requirements into test cases 5 The technical writer translates the software into functional and technical documentation BDD in a nutshell A traditional development process
  • 29. The business owner and the business analyst have a conversation about what he needs. 1 2 3 4 The tester uses these scenarios as the basis for her tests 5 The automated tests provide feedback on progress and help document the application The business analyst, the developer and the tester elaborate the requirements together. The scenarios guide the developer and act as automated tests They define requirements as structured, English- language format "scenarios" BDD in a nutshell A BDD development process
  • 30. The business owner and the business analyst have a conversation about what he needs. 1 2 3 4 The tester uses these scenarios as the basis for her tests 5 The automated tests provide feedback on progress and help document the application The business analyst, the developer and the tester elaborate the requirements together. The scenarios guide the developer and act as automated tests They define requirements as structured, English- language format "scenarios" BDD in a nutshell A BDD development process
  • 31. The business owner and the business analyst have a conversation about what he needs. 1 2 3 4 The tester uses these scenarios as the basis for her tests 5 The automated tests provide feedback on progress and help document the application The business analyst, the developer and the tester elaborate the requirements together. The scenarios guide the developer and act as automated tests They define requirements as structured, English- language format "scenarios" BDD in a nutshell A BDD development process
  • 32. The business owner and the business analyst have a conversation about what he needs. 1 2 3 4 The tester uses these scenarios as the basis for her tests 5 The automated tests provide feedback on progress and help document the application The business analyst, the developer and the tester elaborate the requirements together. The scenarios guide the developer and act as automated tests They define requirements as structured, English- language format "scenarios" BDD in a nutshell A BDD development process
  • 33. The business owner and the business analyst have a conversation about what he needs. 1 2 3 4 The tester uses these scenarios as the basis for her tests 5 The automated tests provide feedback on progress and help document the application The business analyst, the developer and the tester elaborate the requirements together. The scenarios guide the developer and act as automated tests They define requirements as structured, English- language format "scenarios" BDD in a nutshell A BDD development process
  • 34. The business owner and the business analyst have a conversation about what he needs. 1 2 3 4 The tester uses these scenarios as the basis for her tests 5 The automated tests provide feedback on progress and help document the application The business analyst, the developer and the tester elaborate the requirements together. The scenarios guide the developer and act as automated tests They define requirements as structured, English- language format "scenarios" BDD in a nutshell A BDD development process
  • 35. The business owner and the business analyst have a conversation about what he needs. 1 2 3 4 The tester uses these scenarios as the basis for her tests 5 The automated tests provide feedback on progress and help document the application The business analyst, the developer and the tester elaborate the requirements together. The scenarios guide the developer and act as automated tests They define requirements as structured, English- language format "scenarios" •Specifica8ons  are  elaborated  collabora8vely   •Specifica8ons  use  a  common  language   •Executable  specifica8ons  provide  fast  feedback BDD in a nutshell
  • 36. “software that matters” Building the thing right Building the right thingWhat How Misaligned requirements Poor craftsmanship
  • 37. “software that matters” Building the thing right Building the right thingWhat How Misaligned requirements Poor craftsmanship Solves the wrong problem well
  • 38. “software that matters” Building the thing right Building the right thingWhat How Misaligned requirements Poor craftsmanship Solves the wrong problem well Solves the right problem poorly
  • 39. “software that matters” Building the thing right Building the right thingWhat How Misaligned requirements Poor craftsmanship Buggy and useless Solves the wrong problem well Solves the right problem poorly
  • 40. “software that matters” Building the thing right Building the right thingWhat How Misaligned requirements Poor craftsmanship Buggy and useless Slow to change Solves the wrong problem well Solves the right problem poorly
  • 41. “software that matters” Building the thing right Building the right thingWhat How Misaligned requirements Poor craftsmanship Buggy and useless Hard to maintain Slow to change Solves the wrong problem well Solves the right problem poorly
  • 42. “software that matters” Building the thing right Building the right thingWhat How Misaligned requirements Poor craftsmanship Buggy and useless Hard to maintain Slow to change Does what the business needs Reliable Easy to maintain Solves the wrong problem well Solves the right problem poorly
  • 43. You don’t know what you don’t know Understanding of what needs to be delivered Time
  • 44. You don’t know what you don’t know Understanding of what needs to be delivered Time Requirements phase done Analysis Phase done
  • 45. You don’t know what you don’t know Understanding of what needs to be delivered Time Requirements phase done Analysis Phase done
  • 46. You don’t know what you don’t know Understanding of what needs to be delivered Time Requirements phase done Analysis Phase done •Our  ignorance  decreases  over  8me   •It  does  not  decrease  at  a  linear  rate   •It  does  not  always  decrease  in  a  predictable  way
  • 48. Business Goal Business Goal Business Goal “software that matters” We  start  with  a  business  goal “Increase  *cket  sales  by  5%  over  the  next  year   by  encouraging  travelers  to  fly  with  Flying  High   rather  than  with  a  rival  company.”
  • 49. Business Goal Business Goal Business Goal “software that matters” What  features  will  enable  us  to  deliver  this  goal? FeaturesFeaturesFeatures
  • 50. Business Goal Business Goal Business Goal “software that matters” What  features  will  enable  us  to  deliver  this  goal? FeaturesFeaturesFeatures Earn  Frequent  Flyer  points  from  flights
  • 51. Business Goal Business Goal Business Goal “software that matters” What  features  will  enable  us  to  deliver  this  goal? FeaturesFeaturesFeatures Earn  Frequent  Flyer  points  from  flights Earn  Frequent  Flyer  points  from  purchases
  • 52. Business Goal Business Goal Business Goal “software that matters” What  features  will  enable  us  to  deliver  this  goal? FeaturesFeaturesFeatures Earn  Frequent  Flyer  points  from  flights Earn  Frequent  Flyer  points  from  purchases View  Frequent  Flyer  account  balance  online
  • 53. Business Goal Business Goal Business Goal “software that matters” We  use  conversa8ons  around  examples  to  build  up  our   understanding  of  these  features   FeaturesFeaturesFeatures FeaturesFeaturesExamples
  • 54. Business Goal Business Goal Business Goal “software that matters” We  use  conversa8ons  around  examples  to  build  up  our   understanding  of  these  features   FeaturesFeaturesFeatures FeaturesFeaturesExamples “A  new  Frequent  Flyer  member   starts  off  with  Bronze  status”
  • 55. Business Goal Business Goal Business Goal “software that matters” We  use  conversa8ons  around  examples  to  build  up  our   understanding  of  these  features   FeaturesFeaturesFeatures FeaturesFeaturesExamples “A  new  Frequent  Flyer  member   starts  off  with  Bronze  status” “If  she  earns  300  points,  she  becomes  a   Silver  Frequent  Flyer  member”
  • 57. “Using examples” •Explore  requirements   •Discover  what  we  don’t  know   •Clarify  ambigui8es   •Iden8fy  assump8ons  and  misunderstandings  
  • 58. “Using examples” “A  new  Frequent  Flyer  member   starts  off  with  Bronze  status” •Explore  requirements   •Discover  what  we  don’t  know   •Clarify  ambigui8es   •Iden8fy  assump8ons  and  misunderstandings  
  • 59. “Using examples” “A  new  Frequent  Flyer  member   starts  off  with  Bronze  status” “If  she  earns  300  points,  she  becomes  a   Silver  Frequent  Flyer  member” •Explore  requirements   •Discover  what  we  don’t  know   •Clarify  ambigui8es   •Iden8fy  assump8ons  and  misunderstandings  
  • 60. “Using examples” “A  new  Frequent  Flyer  member   starts  off  with  Bronze  status” “If  she  earns  300  points,  she  becomes  a   Silver  Frequent  Flyer  member” “If  I  ask  for  the  details  about  the  flight  FH-­‐102,  I  should  see  that   it  is  a  Sydney  to  Hong  Kong  flight  that  leaves  at  11:55pm  ” •Explore  requirements   •Discover  what  we  don’t  know   •Clarify  ambigui8es   •Iden8fy  assump8ons  and  misunderstandings  
  • 61. “Using examples” We  express  the  examples  in  a  structured   format  using  simple  English  phrases
  • 62. “Using examples” We  express  the  examples  in  a  structured   format  using  simple  English  phrases
  • 63. “Using examples” We  express  the  examples  in  a  structured   format  using  simple  English  phrases
  • 64. “Using examples” We  express  the  examples  in  a  structured   format  using  simple  English  phrases
  • 65. “Using examples” The  automated  acceptance  criteria   guide  the  development  process
  • 66. “Using examples” The  automated  acceptance  criteria   guide  the  development  process
  • 67. “Using examples” The  automated  acceptance  criteria   guide  the  development  process
  • 69. “Having  the  conversa/on     is  more  important  than     recording  the  conversa/on   is  more  important  than     automa/ng  the  conversa/on”   -­‐  Liz  Keogh “a shared understanding”
  • 70. BA Developer Tester Many teams build features like this… “a shared understanding”
  • 71. Story BA Developer Tester Many teams build features like this… “a shared understanding”
  • 72. Story Working   code BA Developer Tester Many teams build features like this… “a shared understanding”
  • 73. Story Working   code boring   manual   tes5ng BA Developer Tester Many teams build features like this… “a shared understanding”
  • 74. Story bug  reports Working   code boring   manual   tes5ng BA Developer Tester Many teams build features like this… “a shared understanding”
  • 75. Story bug  reports Working   code boring   manual   tes5ng WASTE BA Developer Tester Many teams build features like this… “a shared understanding”
  • 76. …but a little cooperation goes a long way… Story “a shared understanding”
  • 77. …but a little cooperation goes a long way… Story “a shared understanding”
  • 78. …but a little cooperation goes a long way… Story “a shared understanding”
  • 79. …but a little cooperation goes a long way… Story “a shared understanding”
  • 80. …but a little cooperation goes a long way… Story Examples “a shared understanding”
  • 81. …but a little cooperation goes a long way… Story Examples Automated   acceptance   criteria “a shared understanding”
  • 82. …but a little cooperation goes a long way… Shared   understanding Story Examples Automated   acceptance   criteria “a shared understanding”
  • 83. …but a little cooperation goes a long way… Working  code     and     Working  Automated   Acceptance  Tests Shared   understanding Story Examples Automated   acceptance   criteria “a shared understanding”
  • 84. …but a little cooperation goes a long way… Working  code     and     Working  Automated   Acceptance  Tests Exploratory  tes5ng,   usability  tes5ng... Shared   understanding Story Examples Automated   acceptance   criteria “a shared understanding”
  • 85. We call this “The Three Amigos” BA  and/or  product  owner Tester Developer Automatable   Acceptance   Criteria Shared   understanding “a shared understanding”
  • 86. We call this “The Three Amigos” “a shared understanding”
  • 87. We call this “The Three Amigos” “a shared understanding”
  • 88. We call this “The Three Amigos” “a shared understanding”
  • 89. We call this “The Three Amigos” “a shared understanding”
  • 90. We call this “The Three Amigos” “a shared understanding”
  • 95. Living Documentation A  star5ng  point  for  manual  tests Illustrates  delivered  features
  • 96. Living Documentation A  star5ng  point  for  manual  tests Illustrates  delivered  features Progress  repor5ng
  • 97. Living Documentation A  star5ng  point  for  manual  tests Illustrates  delivered  features Func5onal  and  technical  documenta5on Progress  repor5ng
  • 99. Automated test results tell us… How  many   tests  passed
  • 100. Automated test results tell us… How  many  failed How  many   tests  passed
  • 101. Automated test results tell us… How  many  failed How  many   tests  passed How  many  weren’t  run
  • 102. Automated test results tell us…
  • 103. Automated test results tell us… What  tests  exist  for   a  given  feature
  • 104. Automated test results tell us… What  tests  exist  for   a  given  feature How  stable  the  feature  is
  • 105. Automated test results tell us…
  • 106. Automated test results tell us… How  a  feature  was   tested
  • 107. Automated test results tell us…
  • 108. Automated test results tell us… What  a  feature  looks  like
  • 109. Automated test results tell us…
  • 110. Automated test results tell us… What  a  feature  looks  like
  • 111. Automated test results tell us… What  a  feature  looks  like
  • 112. Test results do not tell us what was not tested
  • 114. Feature Coverage What  stories  are  defined   for  this  feature?
  • 115. Feature Coverage What  stories  are  defined   for  this  feature? How  many  stories  have  automated   acceptance  criteria?
  • 116. Feature Coverage What  stories  are  defined   for  this  feature? How  many  stories  have  automated   acceptance  criteria? What  acceptance  criteria  have   been  automated?
  • 118. Business Goal Business Goal Business Goal We  can  automate  these  examples  in  the  form  of   “executable  specifica8ons” FeaturesFeaturesFeatures FeaturesFeaturesExamples Low level specifications Low level specifications Low level specifications Executable specifications “building the software right”
  • 119. Business Goal Business Goal Business Goal We  can  automate  these  examples  in  the  form  of   “executable  specifica8ons” FeaturesFeaturesFeatures FeaturesFeaturesExamples Low level specifications Low level specifications Low level specifications Executable specifications “building the software right”
  • 120. Business Goal Business Goal Business Goal We  can  automate  these  examples  in  the  form  of   “executable  specifica8ons” FeaturesFeaturesFeatures FeaturesFeaturesExamples Low level specifications Low level specifications Low level specifications Executable specifications “building the software right”
  • 121. Business Goal Business Goal Business Goal We  use  low-­‐level  BDD  or  TDD  tools  to  define  the   behavior  of  components,  classes  etc. FeaturesFeaturesFeatures FeaturesFeaturesExamples Low level specifications Low level specifications Low level specifications Executable specifications “building the software right” Low level specifications Low level specifications Low level specifications Low level specifications Low level specifications
  • 122. Business Goal Business Goal Business Goal We  use  low-­‐level  BDD  or  TDD  tools  to  define  the   behavior  of  components,  classes  etc. FeaturesFeaturesFeatures FeaturesFeaturesExamples Low level specifications Low level specifications Low level specifications Executable specifications spock RSpec “building the software right” Low level specifications Low level specifications Low level specifications Low level specifications Low level specifications
  • 123. Business Goal Business Goal Business Goal We  use  low-­‐level  BDD  or  TDD  tools  to  define  the   behavior  of  components,  classes  etc. FeaturesFeaturesFeatures FeaturesFeaturesExamples Low level specifications Low level specifications Low level specifications Executable specifications spock RSpec “building the software right” Low level specifications Low level specifications Low level specifications Low level specifications Low level specifications
  • 125. Acceptance  criteria  tell  us  what  we  need  to  build… “building the software right”
  • 127. What  would  we  like  the  API  to  look  like? “building the software right”
  • 128. What  would  we  like  the  API  to  look  like? “building the software right”
  • 129. What  would  we  like  the  API  to  look  like? “building the software right”
  • 131. Then  write  low-­‐level  specifica8ons  for  the  code “building the software right”
  • 132. Then  write  low-­‐level  specifica8ons  for  the  code “building the software right”
  • 134. “building the software right” These  low  level  specifica8ons  become  technical   documenta8on  for  your  APIs
  • 135. “Every class is an API for someone”
  • 137. BDD Gotchas 1 2 3 4 An8-­‐paQern  1   The  business  analyst  writes  the  scenarios  and  then  gives   them  to  the  other  team  members.
  • 139. 1 2 3 4 BDD Gotchas An8-­‐paQern  2   The  tester  writes  the  scenarios  at  the  end   to  implement  an  automated  test  suite.
  • 141. 1 2 3 4 5 BDD Gotchas An8-­‐paQern  3   The  “Three  Amigos”  sessions  don’t  result  in  usable  scenarios,  so  the   developer  invents  them  a?erwards.
  • 142. 1 2 3 4 5 BDD Gotchas An8-­‐paQern  3   The  “Three  Amigos”  sessions  don’t  result  in  usable  scenarios,  so  the   developer  invents  them  a?erwards.
  • 144. 1 2 3 4 5 BDD Gotchas An8-­‐paQern  4   The  scenarios  are  too  UI-­‐centric  or  detail-­‐focused,  and  neglect  to  express   the  core  business  value.
  • 145. 42 Benefits of BDD •Focus  effort   •Reduce  waste  and  misaligned  requirements
  • 146. 43 Benefits of BDD Deliver  more  valuable  soYware
  • 147. 44 Benefits of BDD Make  changes  safely
  • 148. 45 Benefits of BDD Faster  and  more  reliable  releases
  • 149. 46 Benefits of BDD Reduced  maintenance  costs
  • 150. BDD  requires  high  business  engagement  and  collabora8on   Adoption challenges
  • 151. BDD  works  best  in  an  Agile  or  Itera8ve  context   Adoption challenges
  • 152. BDD  does  not  work  well  in  a  silo   Adoption challenges
  • 153. Adoption challenges Skill  and  prac,ce  required:   •Wri,ng  good  scenarios  takes  prac,ce   •Poorly  wri:en  tests  can  lead  to  higher  test-­‐maintenance  costs   •Need  to  treat  test  automa,on  code  like  produc,on  code  
  • 154. In conclusion… It’s  behaviour  all  the  way  down
  • 155. Want to learn more?
  • 156. Want to learn more?
  • 157. Want to learn more? http://thucydides.info/
  • 158. Want to learn more? http://thucydides.info/ https://code.google.com/p/spock/
  • 159. Thank You John Ferguson Smart john.smart@wakaleo.com wakaleo http://www.wakaleo.com