SlideShare ist ein Scribd-Unternehmen logo
1 von 159
Downloaden Sie, um offline zu lesen
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

Weitere ähnliche Inhalte

Was ist angesagt?

Introduction to BDD
Introduction to BDDIntroduction to BDD
Introduction to BDDKnoldus Inc.
 
Behavior driven development (bdd)
Behavior driven development (bdd)Behavior driven development (bdd)
Behavior driven development (bdd)Rohit Bisht
 
Introduction to Bdd and cucumber
Introduction to Bdd and cucumberIntroduction to Bdd and cucumber
Introduction to Bdd and cucumberNibu Baby
 
Test Automation Framework using Cucumber BDD overview (part 1)
Test Automation Framework using Cucumber BDD overview (part 1)Test Automation Framework using Cucumber BDD overview (part 1)
Test Automation Framework using Cucumber BDD overview (part 1)Mindfire Solutions
 
Automation test framework with cucumber – BDD
Automation test framework with cucumber – BDDAutomation test framework with cucumber – BDD
Automation test framework with cucumber – BDD123abcda
 
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
 
Webdriver io presentation
Webdriver io presentationWebdriver io presentation
Webdriver io presentationJoão Nabais
 
BDD WITH CUCUMBER AND JAVA
BDD WITH CUCUMBER AND JAVABDD WITH CUCUMBER AND JAVA
BDD WITH CUCUMBER AND JAVASrinivas Katakam
 
What Is Cucumber?
What Is Cucumber?What Is Cucumber?
What Is Cucumber?QATestLab
 
Behavior Driven Development
Behavior Driven DevelopmentBehavior Driven Development
Behavior Driven DevelopmentLiz Keogh
 
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
 
Bdd – with cucumber and gherkin
Bdd – with cucumber and gherkinBdd – with cucumber and gherkin
Bdd – with cucumber and gherkinArati Joshi
 
BDD in Action - Automated Web Testing with WebDriver and Serenity
BDD in Action - Automated Web Testing with WebDriver and SerenityBDD in Action - Automated Web Testing with WebDriver and Serenity
BDD in Action - Automated Web Testing with WebDriver and SerenityJohn Ferguson Smart Limited
 
Selenium with Cucumber
Selenium  with Cucumber Selenium  with Cucumber
Selenium with Cucumber Knoldus Inc.
 
Behavior Driven Development (BDD) and Agile Testing
Behavior Driven Development (BDD) and Agile TestingBehavior Driven Development (BDD) and Agile Testing
Behavior Driven Development (BDD) and Agile Testingdversaci
 

Was ist angesagt? (20)

Introduction to BDD
Introduction to BDDIntroduction to BDD
Introduction to BDD
 
Behavior driven development (bdd)
Behavior driven development (bdd)Behavior driven development (bdd)
Behavior driven development (bdd)
 
Introduction to Bdd and cucumber
Introduction to Bdd and cucumberIntroduction to Bdd and cucumber
Introduction to Bdd and cucumber
 
Bdd Introduction
Bdd IntroductionBdd Introduction
Bdd Introduction
 
Test Automation Framework using Cucumber BDD overview (part 1)
Test Automation Framework using Cucumber BDD overview (part 1)Test Automation Framework using Cucumber BDD overview (part 1)
Test Automation Framework using Cucumber BDD overview (part 1)
 
Automation test framework with cucumber – BDD
Automation test framework with cucumber – BDDAutomation test framework with cucumber – BDD
Automation test framework with cucumber – BDD
 
Gherkin /BDD intro
Gherkin /BDD introGherkin /BDD intro
Gherkin /BDD intro
 
Test Automation Framework with BDD and Cucumber
Test Automation Framework with BDD and CucumberTest Automation Framework with BDD and Cucumber
Test Automation Framework with BDD and Cucumber
 
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)
 
Webdriver io presentation
Webdriver io presentationWebdriver io presentation
Webdriver io presentation
 
BDD WITH CUCUMBER AND JAVA
BDD WITH CUCUMBER AND JAVABDD WITH CUCUMBER AND JAVA
BDD WITH CUCUMBER AND JAVA
 
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
 
What Is Cucumber?
What Is Cucumber?What Is Cucumber?
What Is Cucumber?
 
Behavior Driven Development
Behavior Driven DevelopmentBehavior Driven Development
Behavior Driven Development
 
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...
 
Bdd – with cucumber and gherkin
Bdd – with cucumber and gherkinBdd – with cucumber and gherkin
Bdd – with cucumber and gherkin
 
BDD in Action - Automated Web Testing with WebDriver and Serenity
BDD in Action - Automated Web Testing with WebDriver and SerenityBDD in Action - Automated Web Testing with WebDriver and Serenity
BDD in Action - Automated Web Testing with WebDriver and Serenity
 
BDD with Cucumber
BDD with CucumberBDD with Cucumber
BDD with Cucumber
 
Selenium with Cucumber
Selenium  with Cucumber Selenium  with Cucumber
Selenium with Cucumber
 
Behavior Driven Development (BDD) and Agile Testing
Behavior Driven Development (BDD) and Agile TestingBehavior Driven Development (BDD) and Agile Testing
Behavior Driven Development (BDD) and Agile Testing
 

Ähnlich wie BDD in Action - building software that matters

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 TestersJohn Ferguson Smart Limited
 
Behavior Driven Development
Behavior Driven DevelopmentBehavior Driven Development
Behavior Driven DevelopmentAdam Englander
 
Topic tdd-and-bdd b4usolution
Topic tdd-and-bdd b4usolutionTopic tdd-and-bdd b4usolution
Topic tdd-and-bdd b4usolutionHoa 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 EastmanQA or the Highway
 
Behavior Driven Development with AngularJS & Jasmine
Behavior Driven Development with AngularJS & JasmineBehavior Driven Development with AngularJS & Jasmine
Behavior Driven Development with AngularJS & JasmineRemus 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 testingRaj 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 cucumberAlex Mikitenko
 
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 meetupAgile 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 bddEduardo 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 2019Steven 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 RiolatSistemas
 
CucumberSeleniumWD
CucumberSeleniumWDCucumberSeleniumWD
CucumberSeleniumWDVikas Sarin
 

Ähnlich wie 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
 
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
 
CucumberSeleniumWD
CucumberSeleniumWDCucumberSeleniumWD
CucumberSeleniumWD
 

Mehr von 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 ScenariosJohn 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 differenceJohn 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 ScreenplayJohn 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 differenceJohn 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
 
Screenplay - Next generation automated acceptance testing
Screenplay - Next generation automated acceptance testingScreenplay - Next generation automated acceptance testing
Screenplay - Next generation automated acceptance testingJohn 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 practicesJohn Ferguson Smart Limited
 

Mehr von 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
 
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?
 
Continuous Integration 101
Continuous Integration 101Continuous Integration 101
Continuous Integration 101
 

Kürzlich hochgeladen

What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024Stephanie Beckett
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfAlex Barbosa Coqueiro
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brandgvaughan
 
The Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsThe Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsPixlogix Infotech
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLScyllaDB
 
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxUse of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxLoriGlavin3
 
What is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdfWhat is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdfMounikaPolabathina
 
Generative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information DevelopersGenerative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information DevelopersRaghuram Pandurangan
 
What is Artificial Intelligence?????????
What is Artificial Intelligence?????????What is Artificial Intelligence?????????
What is Artificial Intelligence?????????blackmambaettijean
 
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024BookNet Canada
 
Rise of the Machines: Known As Drones...
Rise of the Machines: Known As Drones...Rise of the Machines: Known As Drones...
Rise of the Machines: Known As Drones...Rick Flair
 
Moving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfMoving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfLoriGlavin3
 
Advanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionAdvanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionDilum Bandara
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Commit University
 
DSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningDSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningLars Bell
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfAddepto
 
From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .Alan Dix
 
Sample pptx for embedding into website for demo
Sample pptx for embedding into website for demoSample pptx for embedding into website for demo
Sample pptx for embedding into website for demoHarshalMandlekar2
 

Kürzlich hochgeladen (20)

What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdf
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brand
 
The Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsThe Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and Cons
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQL
 
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxUse of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
 
What is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdfWhat is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdf
 
Generative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information DevelopersGenerative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information Developers
 
What is Artificial Intelligence?????????
What is Artificial Intelligence?????????What is Artificial Intelligence?????????
What is Artificial Intelligence?????????
 
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
 
Rise of the Machines: Known As Drones...
Rise of the Machines: Known As Drones...Rise of the Machines: Known As Drones...
Rise of the Machines: Known As Drones...
 
Moving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfMoving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdf
 
Advanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionAdvanced Computer Architecture – An Introduction
Advanced Computer Architecture – An Introduction
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!
 
DSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningDSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine Tuning
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdf
 
From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .
 
Sample pptx for embedding into website for demo
Sample pptx for embedding into website for demoSample pptx for embedding into website for demo
Sample pptx for embedding into website for demo
 

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