SlideShare ist ein Scribd-Unternehmen logo
1 von 81
Downloaden Sie, um offline zu lesen
BDD in Action 
John Ferguson Smart 
Wakaleo Consulting 
#DV14 #bddinaction @wakaleo
Miyamoto 
Musashi 
Japan 
1584 
– 
1645 
#DV14 #bddinaction @wakaleo
Consultant 
Tr a i n e r 
Mentor 
Author 
Speaker 
Coder 
John Fer guson Smar t 
#DV14 #bddinaction @wakaleo
What 
is 
BDD 
A 
typical 
BDD 
workflow 
What 
tools 
should 
I 
use? 
Effec@ve 
BDD 
automa@on 
BDD 
Gotchas 
#DV14 #bddinaction @wakaleo
So what is this BDD thing? 
A 
Test 
Automa@on 
Tool? 
#DV14 #bddinaction @wakaleo
So what is this BDD thing? 
A 
way 
to 
write 
acceptance 
criteria? 
#DV14 #bddinaction @wakaleo
So what is this BDD thing? 
A 
way 
to 
discover 
requirements? 
#DV14 #bddinaction @wakaleo
So what is this BDD thing? 
Using examples 
a shared understanding 
software that matters 
#DV14 #bddinaction @wakaleo
Building the right software 
Hunting out value Automated Acceptance 
BDD 
Criteria 
API and code design 
Collaboration 
Living Documentation 
Building the software right 
#DV14 #bddinaction @wakaleo
The business owner 
tells the business 
analyst what he wants 
1 
BDD in a nutshell 
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 
A traditional development process 
#DV14 #bddinaction @wakaleo
2 
The business owner 
and the business 
analyst have a 
conversation about 
what he needs. 
1 
BDD in a nutshell 
The scenarios guide the 
developer and act as 
automated tests 
3 
The business analyst, 
the developer and the 
tester elaborate the 
requirements together. 
They define 
requirements as 
structured, English-language 
4 The tester uses 
these scenarios 
as the basis for 
her tests 
5 
"scenarios" 
The automated tests provide 
feedback on progress and help 
document the application 
format 
A BDD development process 
#DV14 #bddinaction @wakaleo
2 
The business owner 
and the business 
analyst have a 
conversation about 
what he needs. 
1 
The scenarios guide the 
developer and act as 
automated tests 
3 
The business analyst, 
the developer and the 
tester elaborate the 
requirements together. 
They define 
requirements as 
structured, English-language 
4 The tester uses 
these scenarios 
as the basis for 
•Specifica@ons 
are 
elaborated 
collabora@vely 
•Specifica@ons 
use 
her a 
tests 
common 
language 
•Executable 
specifica@ons 
provide 
fast 
feedback 
5 
"scenarios" 
The automated tests provide 
feedback on progress and help 
document the application 
format 
#DV14 #bddinaction @wakaleo
#DV14 #bddinaction @wakaleo
Why bother with BDD? 
•Focus 
effort 
•Reduce 
waste 
and 
misaligned 
requirements 
#DV14 #bddinaction @wakaleo
Why bother with BDD? 
Deliver 
more 
valuable 
soMware 
#DV14 #bddinaction @wakaleo
Why bother with BDD? 
Make 
changes 
safely 
#DV14 #bddinaction @wakaleo
Why bother with BDD? 
Faster 
and 
more 
reliable 
releases 
#DV14 #bddinaction @wakaleo
Why bother with BDD? 
Reduced 
maintenance 
costs 
#DV14 #bddinaction @wakaleo
Benefits of BDD 
BDD 
BDD 
in 
the 
real 
world 
-­‐ 
an 
example 
#DV14 #bddinaction @wakaleo
Adoption challenges 
Demo 
BDD 
requires 
high 
business 
engagement 
and 
collabora@on 
#DV14 #bddinaction @wakaleo
Adoption challenges 
Demo 
BDD 
works 
best 
in 
an 
Agile 
or 
Itera@ve 
context 
#DV14 #bddinaction @wakaleo
Adoption challenges 
Demo 
BDD 
does 
not 
work 
well 
in 
a 
silo 
#DV14 #bddinaction @wakaleo
Adoption challenges 
Demo 
Skill 
and 
prac@ce 
required: 
•Wri@ng 
good 
scenarios 
takes 
prac@ce 
•Poorly 
wriQen 
tests 
can 
lead 
to 
higher 
test-­‐maintenance 
costs 
•Need 
to 
treat 
test 
automa@on 
code 
like 
produc@on 
code 
#DV14 #bddinaction @wakaleo
BDD Gotchas 
1 
2 
3 
An@-­‐paQern 
1 
The 
business 
analyst 
writes 
the 
scenarios 
4 
and 
then 
gives 
them 
to 
the 
other 
team 
members. 
#DV14 #bddinaction @wakaleo
1 
2 
3 
BDD Gotchas 
An@-­‐paQern 
2 
4 
The 
tester 
writes 
the 
scenarios 
at 
the 
end 
to 
implement 
an 
automated 
test 
suite. 
#DV14 #bddinaction @wakaleo
1 
2 
3 
BDD Gotchas 
An@-­‐paQern 
3 
4 
The 
“Three 
Amigos” 
sessions 
don’t 
result 
in 
usable 
scenarios, 
so 
the 
developer 
invents 
them 
a=erwards. 
5 
#DV14 #bddinaction @wakaleo
1 
2 
3 
BDD Gotchas 
An@-­‐paQern 
4 
4 
The 
scenarios 
are 
too 
UI-­‐centric 
or 
detail-­‐focused, 
and 
neglect 
to 
express 
the 
core 
business 
value. 
5 
#DV14 #bddinaction @wakaleo
BDD for high-level 
requirements 
#DV14 #bddinaction @wakaleo
#DV14 #bddinaction @wakaleo
#DV14 #bddinaction @wakaleo
Frequent Flyer Application 
Goal: Encourage travellers to fly with Flying High airlines more often by allowing them to 
cumulate Frequent Flyer points that they can spend on cheaper flights. 
Goals 
Earning points 
from flights 
Capabili9es 
Earning points 
from spending 
with partners 
Viewing points 
earned 
Spending points 
on bookings 
Viewing current points balance Features 
View points needed to achieve 
the next status level 
Calculating points needed for 
a given destination 
#DV14 #bddinaction @wakaleo
Calculating points needed for a given destination 
As a traveller 
I want to know how many points I need to go to a given destination 
So that I can plan my next trip with Flying High Airlines 
Feature 
Acceptance Criteria 
-Need 2 points per km 
-Members can calculate points needed on their account home page 
Acceptance 
Criteria 
Automated 
Acceptance 
Criteria 
#DV14 #bddinaction @wakaleo
Automated 
Acceptance 
Criteria 
Automated 
Acceptance 
Tests 
#DV14 #bddinaction @wakaleo
Automated 
Acceptance 
Tests 
Applica9on 
Code 
Low 
level 
specifica9ons 
#DV14 #bddinaction @wakaleo
A typical BDD workflow 
“But 
what 
are 
the 
deliverables? 
Meaningful 
feedback 
on 
what 
requirements 
have 
(and 
have 
not) 
been 
delivered 
#DV14 #bddinaction @wakaleo
An incremental approach 
“But 
what 
are 
the 
deliverables? 
Descrip9on 
of 
each 
feature 
with 
an 
example 
of 
how 
it 
behaves 
#DV14 #bddinaction @wakaleo
An incremental approach 
“But 
what 
are 
the 
deliverables? 
…complete 
with 
illustra9ons 
#DV14 #bddinaction @wakaleo
An incremental approach 
“But 
what 
are 
the 
deliverables? 
How 
was 
each 
feature 
tested? 
#DV14 #bddinaction @wakaleo
An incremental approach 
“But 
what 
are 
the 
deliverables? 
Documenta9on 
about 
what 
you 
plan 
to 
deliver 
in 
each 
release 
#DV14 #bddinaction @wakaleo
An incremental approach 
“But 
what 
are 
the 
deliverables? 
Useful 
low-­‐level 
technical 
documenta9on 
with 
liRle 
overhead 
#DV14 #bddinaction @wakaleo
An incremental approach 
“But 
what 
are 
the 
deliverables? 
…and 
targeted 
automated 
regression 
tests 
#DV14 #bddinaction @wakaleo
Flying High Application Architecture 
AngularJS SPA 
Flights 
Web Service 
Accounts 
Web Service 
Routes 
Web Service 
#DV14 #bddinaction @wakaleo
Flying High Test Architecture 
(aka Thucydides) 
#DV14 #bddinaction @wakaleo
Demo 
#DV14 #bddinaction @wakaleo
BDD for detailed coding 
#DV14 #bddinaction @wakaleo
Business 
Goal 
Business 
Goal 
Business 
Goal 
“building the software right” 
FFeFeaeatatuturureresess FFeEeaxatatumurrepesless 
Low level 
speLcoifiwc aletvioenl s 
speLcoifiwc alteivoenls 
specifications 
Executable 
specifications 
We 
can 
automate 
these 
examples 
in 
the 
form 
of 
“executable 
specifica@ons” 
#DV14 #bddinaction @wakaleo
Business 
Goal 
Business 
Goal 
Business 
Goal 
“building the software right” 
FFeFeaeatatuturureresess FFeEeaxatatumurrepesless 
Low level 
speLcoifiwc aletvioenl s 
speLcoifiwc alteivoenls 
specifications 
Executable 
specifications 
spock 
RSpec 
Low level 
specifications 
Low level 
specifications 
Low level 
specifications 
Low level 
specifications 
Low level 
specifications 
We 
use 
low-­‐level 
BDD 
or 
TDD 
tools 
to 
define 
the 
behavior 
of 
components, 
classes 
etc. 
#DV14 #bddinaction @wakaleo
“building the software right” 
Acceptance 
criteria 
tell 
us 
what 
we 
need 
to 
build… 
#DV14 #bddinaction @wakaleo
“building the software right” 
What 
would 
we 
like 
the 
API 
to 
look 
like? 
#DV14 #bddinaction @wakaleo
“building the software right” 
Then 
write 
low-­‐level 
specifica@ons 
for 
the 
code 
#DV14 #bddinaction @wakaleo
“building the software right” 
These 
low 
level 
specifica@ons 
become 
technical 
documenta@on 
for 
your 
APIs 
#DV14 #bddinaction @wakaleo
Demo 
#DV14 #bddinaction @wakaleo
What tool should I use? 
#DV14 #bddinaction @wakaleo
Collaboration before Automation 
“Having 
the 
conversaDon 
is 
more 
important 
than 
recording 
the 
conversaDon 
is 
more 
important 
than 
automaDng 
the 
conversaDon” 
-­‐ 
Liz 
Keogh 
#DV14 #bddinaction @wakaleo
Know your audience 
#DV14 #bddinaction @wakaleo
High-level BDD 
Reporting for non-developers 
as well as developers 
Communicate about features 
that business owners will 
understand and find 
meaningful 
Higher automation and 
maintenance costs 
… 
#DV14 #bddinaction @wakaleo
#DV14 #bddinaction @wakaleo
#DV14 #bddinaction @wakaleo
+ Groovy 
#DV14 #bddinaction @wakaleo
(Previously known as “Thucydides”) 
Living documentation 
Requirements reporting 
Encourages good test 
architecture 
Good WebDriver integration 
Works with other BDD tools 
#DV14 #bddinaction @wakaleo
+ 
#DV14 #bddinaction @wakaleo
+ 
#DV14 #bddinaction @wakaleo
A 
high-­‐level 
BDD 
tool 
should 
Produce 
business-­‐readable 
results 
Fit 
smoothly 
into 
your 
build 
pipeline 
Integrate 
with 
your 
development 
infrastructure 
Allow 
developers 
to 
collaborate 
with 
testers 
to 
implement 
and 
refactor 
the 
automa9on 
code 
#DV14 #bddinaction @wakaleo
Tips 
for 
more 
effec@ve 
BDD 
Test 
Automa@on 
#DV14 #bddinaction @wakaleo
Tip #1 - Use Layers 
Business 
Rules 
Business 
Flow 
Page/Component 
interac9ons 
Page/Component 
details 
#DV14 #bddinaction @wakaleo
Tip #2 - Favour non-UI tests where possible 
#DV14 #bddinaction @wakaleo
Tip #3 - Know when not to automate 
This slide is left intentionally blank
Low-level BDD 
Technical documentation for 
other developers 
Implementation details that 
business owners may not be 
interested in 
Faster to write and easier to 
maintain 
spock 
RSpec 
#DV14 #bddinaction @wakaleo
Low-level BDD 
Good 
naming 
conven9ons 
are 
the 
first 
step 
towards 
BDD 
#DV14 #bddinaction @wakaleo
Low-level BDD 
spock 
RSpec 
Readable 
executable 
specifica9ons 
in 
Groovy 
#DV14 #bddinaction @wakaleo
Low-level BDD 
spock 
RSpec 
Great 
support 
for 
data-­‐driven 
tests
Low-level BDD 
spock 
RSpec 
Powerful 
and 
light-­‐weight 
stubbing 
and 
mocking
Low-level BDD 
spock 
RSpec 
Makes 
very 
readable 
specifica9ons
Low-level BDD 
Lambda-Behave 
Low-­‐level 
BDD 
library 
for 
Java 
8 
#DV14 #bddinaction @wakaleo
Low-level BDD 
Lambda-Behave 
Data-­‐driven 
specifica9ons
Low-level BDD 
Lambda-Behave 
Generated 
test 
data
A 
low-­‐level 
BDD 
tool 
should 
Be 
highly 
readable 
Be 
developer-­‐friendly 
Make 
it 
easy 
to 
think 
in 
terms 
of 
specifica9ons, 
not 
tests 
Encourage 
fast 
feedback 
cycles 
You 
may 
need 
several! 
#DV14 #bddinaction @wakaleo
Demo 
#DV14 #bddinaction @wakaleo
There’s 
more 
where 
this 
came 
from! 
http://jbehave.org/ 
http://serenitybdd.com 
https://code.google.com/p/spock/ 
#DV14 #bddinaction @wakaleo
There’s 
more 
where 
this 
came 
from! 
And 
look 
for 
more 
material 
on 
parleys.com! 
#DV14 #bddinaction @wakaleo
Thank You 
#DV14 #bddinaction @wakaleo

Weitere ähnliche Inhalte

Was ist angesagt?

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
 
BDD in Action – principles, practices and real-world application
BDD in Action – principles, practices and real-world applicationBDD in Action – principles, practices and real-world application
BDD in Action – principles, practices and real-world applicationJohn Ferguson Smart Limited
 
Behavior Driven Development Pros and Cons
Behavior Driven Development Pros and ConsBehavior Driven Development Pros and Cons
Behavior Driven Development Pros and ConsIosif Itkin
 
Behavior Driven Development
Behavior Driven DevelopmentBehavior Driven Development
Behavior Driven DevelopmentAdam Englander
 
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 UXJohn Patterson
 
Tdd vs bdd vs atdd — developers’ methodologies to navigate complex developmen...
Tdd vs bdd vs atdd — developers’ methodologies to navigate complex developmen...Tdd vs bdd vs atdd — developers’ methodologies to navigate complex developmen...
Tdd vs bdd vs atdd — developers’ methodologies to navigate complex developmen...Katy Slemon
 
How to successfully execute fixed price agile projects
How to successfully execute fixed price agile projectsHow to successfully execute fixed price agile projects
How to successfully execute fixed price agile projectsKaty Slemon
 
Spec flow – functional testing made easy
Spec flow – functional testing made easySpec flow – functional testing made easy
Spec flow – functional testing made easyPaul Stack
 
Introduction to bdd
Introduction to bddIntroduction to bdd
Introduction to bddSeb Rose
 
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
 
SpecFlow Executable Specifications
SpecFlow Executable SpecificationsSpecFlow Executable Specifications
SpecFlow Executable SpecificationsSam Leach
 
Behavior-Driven Development (BDD) in context
Behavior-Driven Development (BDD) in contextBehavior-Driven Development (BDD) in context
Behavior-Driven Development (BDD) in contextAlexander Kress
 
Tdd2018 state of the software quality in Germany
Tdd2018 state of the software quality in GermanyTdd2018 state of the software quality in Germany
Tdd2018 state of the software quality in GermanyOrlovsky Consulting GbR
 
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
 
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
 
Consumer Driven Contracts (DDD Perth 2016)
Consumer Driven Contracts (DDD Perth 2016)Consumer Driven Contracts (DDD Perth 2016)
Consumer Driven Contracts (DDD Perth 2016)Rob Crowley
 

Was ist angesagt? (20)

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?
 
BDD-Driven Microservices
BDD-Driven MicroservicesBDD-Driven Microservices
BDD-Driven Microservices
 
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
 
BDD in Action – principles, practices and real-world application
BDD in Action – principles, practices and real-world applicationBDD in Action – principles, practices and real-world application
BDD in Action – principles, practices and real-world application
 
BDD with JBehave
BDD with JBehaveBDD with JBehave
BDD with JBehave
 
Behavior Driven Development Pros and Cons
Behavior Driven Development Pros and ConsBehavior Driven Development Pros and Cons
Behavior Driven Development Pros and Cons
 
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
 
Tdd vs bdd vs atdd — developers’ methodologies to navigate complex developmen...
Tdd vs bdd vs atdd — developers’ methodologies to navigate complex developmen...Tdd vs bdd vs atdd — developers’ methodologies to navigate complex developmen...
Tdd vs bdd vs atdd — developers’ methodologies to navigate complex developmen...
 
How to successfully execute fixed price agile projects
How to successfully execute fixed price agile projectsHow to successfully execute fixed price agile projects
How to successfully execute fixed price agile projects
 
BDD Anti-patterns
BDD Anti-patternsBDD Anti-patterns
BDD Anti-patterns
 
Spec flow – functional testing made easy
Spec flow – functional testing made easySpec flow – functional testing made easy
Spec flow – functional testing made easy
 
Introduction to bdd
Introduction to bddIntroduction to bdd
Introduction to bdd
 
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)
 
SpecFlow Executable Specifications
SpecFlow Executable SpecificationsSpecFlow Executable Specifications
SpecFlow Executable Specifications
 
Behavior-Driven Development (BDD) in context
Behavior-Driven Development (BDD) in contextBehavior-Driven Development (BDD) in context
Behavior-Driven Development (BDD) in context
 
Tdd2018 state of the software quality in Germany
Tdd2018 state of the software quality in GermanyTdd2018 state of the software quality in Germany
Tdd2018 state of the software quality in Germany
 
Screenplay - Next generation automated acceptance testing
Screenplay - Next generation automated acceptance testingScreenplay - Next generation automated acceptance testing
Screenplay - Next generation automated acceptance testing
 
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
 
Consumer Driven Contracts (DDD Perth 2016)
Consumer Driven Contracts (DDD Perth 2016)Consumer Driven Contracts (DDD Perth 2016)
Consumer Driven Contracts (DDD Perth 2016)
 

Andere mochten auch

Implementing BDD at scale for agile and DevOps teams
Implementing BDD at scale for agile and DevOps teamsImplementing BDD at scale for agile and DevOps teams
Implementing BDD at scale for agile and DevOps teamsLaurent PY
 
BDD: What's in it for me?
BDD: What's in it for me?BDD: What's in it for me?
BDD: What's in it for me?fuglylogic
 
Enable DevOps culture through BDD - By including 4th amigo Ops
Enable DevOps culture through BDD - By including 4th amigo OpsEnable DevOps culture through BDD - By including 4th amigo Ops
Enable DevOps culture through BDD - By including 4th amigo OpsVinay Krishna
 
Getting Comfortable with BDD
Getting Comfortable with BDDGetting Comfortable with BDD
Getting Comfortable with BDDAlex Sharp
 
HBase RowKey design for Akka Persistence
HBase RowKey design for Akka PersistenceHBase RowKey design for Akka Persistence
HBase RowKey design for Akka PersistenceKonrad Malawski
 
Building a Secure App with Google Polymer and Java / Spring
Building a Secure App with Google Polymer and Java / SpringBuilding a Secure App with Google Polymer and Java / Spring
Building a Secure App with Google Polymer and Java / Springsdeeg
 
Be Ready, Be Done: The Art of Slicing Stories
Be Ready, Be Done: The Art of Slicing StoriesBe Ready, Be Done: The Art of Slicing Stories
Be Ready, Be Done: The Art of Slicing StoriesRaj Indugula
 
The WHY behind TDD/BDD and the HOW with RSpec
The WHY behind TDD/BDD and the HOW with RSpecThe WHY behind TDD/BDD and the HOW with RSpec
The WHY behind TDD/BDD and the HOW with RSpecBen Mabey
 
Outside In - Behaviour Driven Development (BDD)
Outside In - Behaviour Driven Development (BDD)Outside In - Behaviour Driven Development (BDD)
Outside In - Behaviour Driven Development (BDD)Naresh Jain
 
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
 
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
 
Introduction to BDD with Cucumber for Java
Introduction to BDD with Cucumber for JavaIntroduction to BDD with Cucumber for Java
Introduction to BDD with Cucumber for JavaSeb Rose
 

Andere mochten auch (18)

BDD - Collaborate like you mean it!
BDD - Collaborate like you mean it!BDD - Collaborate like you mean it!
BDD - Collaborate like you mean it!
 
Implementing BDD at scale for agile and DevOps teams
Implementing BDD at scale for agile and DevOps teamsImplementing BDD at scale for agile and DevOps teams
Implementing BDD at scale for agile and DevOps teams
 
BDD: What's in it for me?
BDD: What's in it for me?BDD: What's in it for me?
BDD: What's in it for me?
 
Bdd and Scrum Team Dynamics
Bdd and Scrum Team DynamicsBdd and Scrum Team Dynamics
Bdd and Scrum Team Dynamics
 
Enable DevOps culture through BDD - By including 4th amigo Ops
Enable DevOps culture through BDD - By including 4th amigo OpsEnable DevOps culture through BDD - By including 4th amigo Ops
Enable DevOps culture through BDD - By including 4th amigo Ops
 
Getting Comfortable with BDD
Getting Comfortable with BDDGetting Comfortable with BDD
Getting Comfortable with BDD
 
HBase RowKey design for Akka Persistence
HBase RowKey design for Akka PersistenceHBase RowKey design for Akka Persistence
HBase RowKey design for Akka Persistence
 
CukeUp 2016 Agile Product Planning Workshop
CukeUp 2016 Agile Product Planning WorkshopCukeUp 2016 Agile Product Planning Workshop
CukeUp 2016 Agile Product Planning Workshop
 
Serenity and the Journey Pattern
Serenity and the Journey PatternSerenity and the Journey Pattern
Serenity and the Journey Pattern
 
Building a Secure App with Google Polymer and Java / Spring
Building a Secure App with Google Polymer and Java / SpringBuilding a Secure App with Google Polymer and Java / Spring
Building a Secure App with Google Polymer and Java / Spring
 
Be Ready, Be Done: The Art of Slicing Stories
Be Ready, Be Done: The Art of Slicing StoriesBe Ready, Be Done: The Art of Slicing Stories
Be Ready, Be Done: The Art of Slicing Stories
 
The WHY behind TDD/BDD and the HOW with RSpec
The WHY behind TDD/BDD and the HOW with RSpecThe WHY behind TDD/BDD and the HOW with RSpec
The WHY behind TDD/BDD and the HOW with RSpec
 
Outside In - Behaviour Driven Development (BDD)
Outside In - Behaviour Driven Development (BDD)Outside In - Behaviour Driven Development (BDD)
Outside In - Behaviour Driven Development (BDD)
 
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
 
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
 
Introduction to BDD with Cucumber for Java
Introduction to BDD with Cucumber for JavaIntroduction to BDD with Cucumber for Java
Introduction to BDD with Cucumber for Java
 
Agile Testing by Example
Agile Testing by ExampleAgile Testing by Example
Agile Testing by Example
 
BDD & Behat
BDD & BehatBDD & Behat
BDD & Behat
 

Ähnlich wie BDD in Action - Devoxx 2014

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
 
August partner bootcamp
August partner bootcampAugust partner bootcamp
August partner bootcampAcquia
 
Developer Experience
Developer ExperienceDeveloper Experience
Developer ExperienceThoughtworks
 
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
 
Guidewire Connections 2023 DE-4 Using AI to Accelerate Application Integration
Guidewire Connections 2023 DE-4 Using AI to Accelerate Application IntegrationGuidewire Connections 2023 DE-4 Using AI to Accelerate Application Integration
Guidewire Connections 2023 DE-4 Using AI to Accelerate Application IntegrationBrianPetrini
 
Rebar detailing - Changing business environment
Rebar detailing  - Changing business environmentRebar detailing  - Changing business environment
Rebar detailing - Changing business environmentRam Sharan
 
REST API Security by Design with Azure Pipelines
REST API Security by Design with Azure PipelinesREST API Security by Design with Azure Pipelines
REST API Security by Design with Azure Pipelines42Crunch
 
Low Code Development Platform California
Low Code Development Platform CaliforniaLow Code Development Platform California
Low Code Development Platform CaliforniaDewStudio
 
Can ChatGPT Replace Developers?
Can ChatGPT Replace Developers?Can ChatGPT Replace Developers?
Can ChatGPT Replace Developers?DewStudio
 
Delivering Fantastic Brand Experiences With Low-Code
Delivering Fantastic Brand Experiences With Low-CodeDelivering Fantastic Brand Experiences With Low-Code
Delivering Fantastic Brand Experiences With Low-CodeCyber-Duck
 
Automation testing
Automation testingAutomation testing
Automation testingRomexsoft
 
Frontend Development vs Backend Development | Detailed Comparison
Frontend Development vs Backend Development | Detailed ComparisonFrontend Development vs Backend Development | Detailed Comparison
Frontend Development vs Backend Development | Detailed ComparisonMariya James
 
Getting Demo & POV Ready
Getting Demo & POV ReadyGetting Demo & POV Ready
Getting Demo & POV ReadyThousandEyes
 
BDD communication bridges - Expedia TED talk
BDD communication bridges - Expedia TED talkBDD communication bridges - Expedia TED talk
BDD communication bridges - Expedia TED talkAliaksandr Ikhelis
 
CodeIT company presentation
CodeIT company presentationCodeIT company presentation
CodeIT company presentationSergiy Mavrov
 

Ähnlich wie BDD in Action - Devoxx 2014 (20)

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
 
August partner bootcamp
August partner bootcampAugust partner bootcamp
August partner bootcamp
 
Developer Experience
Developer ExperienceDeveloper Experience
Developer Experience
 
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
 
Guidewire Connections 2023 DE-4 Using AI to Accelerate Application Integration
Guidewire Connections 2023 DE-4 Using AI to Accelerate Application IntegrationGuidewire Connections 2023 DE-4 Using AI to Accelerate Application Integration
Guidewire Connections 2023 DE-4 Using AI to Accelerate Application Integration
 
Rebar detailing - Changing business environment
Rebar detailing  - Changing business environmentRebar detailing  - Changing business environment
Rebar detailing - Changing business environment
 
Gateway to Agile: XP and BDD
Gateway to Agile: XP and BDD Gateway to Agile: XP and BDD
Gateway to Agile: XP and BDD
 
Technical Debt.pptx
Technical Debt.pptxTechnical Debt.pptx
Technical Debt.pptx
 
REST API Security by Design with Azure Pipelines
REST API Security by Design with Azure PipelinesREST API Security by Design with Azure Pipelines
REST API Security by Design with Azure Pipelines
 
Low Code Development Platform California
Low Code Development Platform CaliforniaLow Code Development Platform California
Low Code Development Platform California
 
Can ChatGPT Replace Developers?
Can ChatGPT Replace Developers?Can ChatGPT Replace Developers?
Can ChatGPT Replace Developers?
 
Resume
ResumeResume
Resume
 
Delivering Fantastic Brand Experiences With Low-Code
Delivering Fantastic Brand Experiences With Low-CodeDelivering Fantastic Brand Experiences With Low-Code
Delivering Fantastic Brand Experiences With Low-Code
 
QR Code Generator
QR Code GeneratorQR Code Generator
QR Code Generator
 
Automation testing
Automation testingAutomation testing
Automation testing
 
Frontend Development vs Backend Development | Detailed Comparison
Frontend Development vs Backend Development | Detailed ComparisonFrontend Development vs Backend Development | Detailed Comparison
Frontend Development vs Backend Development | Detailed Comparison
 
Getting Demo & POV Ready
Getting Demo & POV ReadyGetting Demo & POV Ready
Getting Demo & POV Ready
 
BDD communication bridges - Expedia TED talk
BDD communication bridges - Expedia TED talkBDD communication bridges - Expedia TED talk
BDD communication bridges - Expedia TED talk
 
CodeIT company presentation
CodeIT company presentationCodeIT company presentation
CodeIT company presentation
 
CV (US)
CV (US)CV (US)
CV (US)
 

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
 

Mehr von John Ferguson Smart Limited (12)

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
 
Cucumber and Spock Primer
Cucumber and Spock PrimerCucumber and Spock Primer
Cucumber and Spock Primer
 
Continuous Integration 101
Continuous Integration 101Continuous Integration 101
Continuous Integration 101
 

Kürzlich hochgeladen

How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity PlanDatabarracks
 
Commit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyCommit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyAlfredo García Lavilla
 
How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.Curtis Poe
 
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
 
Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Enterprise Knowledge
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenHervé Boutemy
 
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
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebUiPathCommunity
 
Advanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionAdvanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionDilum Bandara
 
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
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Scott Keck-Warren
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024Lorenzo Miniero
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii SoldatenkoFwdays
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsSergiu Bodiu
 
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage CostLeverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage CostZilliz
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Mattias Andersson
 
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Mark Simos
 
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
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):comworks
 

Kürzlich hochgeladen (20)

How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity Plan
 
Commit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyCommit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easy
 
How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.
 
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
 
Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache Maven
 
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
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio Web
 
Advanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionAdvanced Computer Architecture – An Introduction
Advanced Computer Architecture – An Introduction
 
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
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platforms
 
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage CostLeverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?
 
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
 
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
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):
 

BDD in Action - Devoxx 2014

  • 1. BDD in Action John Ferguson Smart Wakaleo Consulting #DV14 #bddinaction @wakaleo
  • 2. Miyamoto Musashi Japan 1584 – 1645 #DV14 #bddinaction @wakaleo
  • 3. Consultant Tr a i n e r Mentor Author Speaker Coder John Fer guson Smar t #DV14 #bddinaction @wakaleo
  • 4. What is BDD A typical BDD workflow What tools should I use? Effec@ve BDD automa@on BDD Gotchas #DV14 #bddinaction @wakaleo
  • 5. So what is this BDD thing? A Test Automa@on Tool? #DV14 #bddinaction @wakaleo
  • 6. So what is this BDD thing? A way to write acceptance criteria? #DV14 #bddinaction @wakaleo
  • 7. So what is this BDD thing? A way to discover requirements? #DV14 #bddinaction @wakaleo
  • 8. So what is this BDD thing? Using examples a shared understanding software that matters #DV14 #bddinaction @wakaleo
  • 9. Building the right software Hunting out value Automated Acceptance BDD Criteria API and code design Collaboration Living Documentation Building the software right #DV14 #bddinaction @wakaleo
  • 10. The business owner tells the business analyst what he wants 1 BDD in a nutshell 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 A traditional development process #DV14 #bddinaction @wakaleo
  • 11. 2 The business owner and the business analyst have a conversation about what he needs. 1 BDD in a nutshell The scenarios guide the developer and act as automated tests 3 The business analyst, the developer and the tester elaborate the requirements together. They define requirements as structured, English-language 4 The tester uses these scenarios as the basis for her tests 5 "scenarios" The automated tests provide feedback on progress and help document the application format A BDD development process #DV14 #bddinaction @wakaleo
  • 12. 2 The business owner and the business analyst have a conversation about what he needs. 1 The scenarios guide the developer and act as automated tests 3 The business analyst, the developer and the tester elaborate the requirements together. They define requirements as structured, English-language 4 The tester uses these scenarios as the basis for •Specifica@ons are elaborated collabora@vely •Specifica@ons use her a tests common language •Executable specifica@ons provide fast feedback 5 "scenarios" The automated tests provide feedback on progress and help document the application format #DV14 #bddinaction @wakaleo
  • 14. Why bother with BDD? •Focus effort •Reduce waste and misaligned requirements #DV14 #bddinaction @wakaleo
  • 15. Why bother with BDD? Deliver more valuable soMware #DV14 #bddinaction @wakaleo
  • 16. Why bother with BDD? Make changes safely #DV14 #bddinaction @wakaleo
  • 17. Why bother with BDD? Faster and more reliable releases #DV14 #bddinaction @wakaleo
  • 18. Why bother with BDD? Reduced maintenance costs #DV14 #bddinaction @wakaleo
  • 19. Benefits of BDD BDD BDD in the real world -­‐ an example #DV14 #bddinaction @wakaleo
  • 20. Adoption challenges Demo BDD requires high business engagement and collabora@on #DV14 #bddinaction @wakaleo
  • 21. Adoption challenges Demo BDD works best in an Agile or Itera@ve context #DV14 #bddinaction @wakaleo
  • 22. Adoption challenges Demo BDD does not work well in a silo #DV14 #bddinaction @wakaleo
  • 23. Adoption challenges Demo Skill and prac@ce required: •Wri@ng good scenarios takes prac@ce •Poorly wriQen tests can lead to higher test-­‐maintenance costs •Need to treat test automa@on code like produc@on code #DV14 #bddinaction @wakaleo
  • 24. BDD Gotchas 1 2 3 An@-­‐paQern 1 The business analyst writes the scenarios 4 and then gives them to the other team members. #DV14 #bddinaction @wakaleo
  • 25. 1 2 3 BDD Gotchas An@-­‐paQern 2 4 The tester writes the scenarios at the end to implement an automated test suite. #DV14 #bddinaction @wakaleo
  • 26. 1 2 3 BDD Gotchas An@-­‐paQern 3 4 The “Three Amigos” sessions don’t result in usable scenarios, so the developer invents them a=erwards. 5 #DV14 #bddinaction @wakaleo
  • 27. 1 2 3 BDD Gotchas An@-­‐paQern 4 4 The scenarios are too UI-­‐centric or detail-­‐focused, and neglect to express the core business value. 5 #DV14 #bddinaction @wakaleo
  • 28. BDD for high-level requirements #DV14 #bddinaction @wakaleo
  • 31. Frequent Flyer Application Goal: Encourage travellers to fly with Flying High airlines more often by allowing them to cumulate Frequent Flyer points that they can spend on cheaper flights. Goals Earning points from flights Capabili9es Earning points from spending with partners Viewing points earned Spending points on bookings Viewing current points balance Features View points needed to achieve the next status level Calculating points needed for a given destination #DV14 #bddinaction @wakaleo
  • 32. Calculating points needed for a given destination As a traveller I want to know how many points I need to go to a given destination So that I can plan my next trip with Flying High Airlines Feature Acceptance Criteria -Need 2 points per km -Members can calculate points needed on their account home page Acceptance Criteria Automated Acceptance Criteria #DV14 #bddinaction @wakaleo
  • 33. Automated Acceptance Criteria Automated Acceptance Tests #DV14 #bddinaction @wakaleo
  • 34. Automated Acceptance Tests Applica9on Code Low level specifica9ons #DV14 #bddinaction @wakaleo
  • 35. A typical BDD workflow “But what are the deliverables? Meaningful feedback on what requirements have (and have not) been delivered #DV14 #bddinaction @wakaleo
  • 36. An incremental approach “But what are the deliverables? Descrip9on of each feature with an example of how it behaves #DV14 #bddinaction @wakaleo
  • 37. An incremental approach “But what are the deliverables? …complete with illustra9ons #DV14 #bddinaction @wakaleo
  • 38. An incremental approach “But what are the deliverables? How was each feature tested? #DV14 #bddinaction @wakaleo
  • 39. An incremental approach “But what are the deliverables? Documenta9on about what you plan to deliver in each release #DV14 #bddinaction @wakaleo
  • 40. An incremental approach “But what are the deliverables? Useful low-­‐level technical documenta9on with liRle overhead #DV14 #bddinaction @wakaleo
  • 41. An incremental approach “But what are the deliverables? …and targeted automated regression tests #DV14 #bddinaction @wakaleo
  • 42. Flying High Application Architecture AngularJS SPA Flights Web Service Accounts Web Service Routes Web Service #DV14 #bddinaction @wakaleo
  • 43. Flying High Test Architecture (aka Thucydides) #DV14 #bddinaction @wakaleo
  • 45. BDD for detailed coding #DV14 #bddinaction @wakaleo
  • 46. Business Goal Business Goal Business Goal “building the software right” FFeFeaeatatuturureresess FFeEeaxatatumurrepesless Low level speLcoifiwc aletvioenl s speLcoifiwc alteivoenls specifications Executable specifications We can automate these examples in the form of “executable specifica@ons” #DV14 #bddinaction @wakaleo
  • 47. Business Goal Business Goal Business Goal “building the software right” FFeFeaeatatuturureresess FFeEeaxatatumurrepesless Low level speLcoifiwc aletvioenl s speLcoifiwc alteivoenls specifications Executable specifications spock RSpec Low level specifications Low level specifications Low level specifications Low level specifications Low level specifications We use low-­‐level BDD or TDD tools to define the behavior of components, classes etc. #DV14 #bddinaction @wakaleo
  • 48. “building the software right” Acceptance criteria tell us what we need to build… #DV14 #bddinaction @wakaleo
  • 49. “building the software right” What would we like the API to look like? #DV14 #bddinaction @wakaleo
  • 50. “building the software right” Then write low-­‐level specifica@ons for the code #DV14 #bddinaction @wakaleo
  • 51. “building the software right” These low level specifica@ons become technical documenta@on for your APIs #DV14 #bddinaction @wakaleo
  • 53. What tool should I use? #DV14 #bddinaction @wakaleo
  • 54. Collaboration before Automation “Having the conversaDon is more important than recording the conversaDon is more important than automaDng the conversaDon” -­‐ Liz Keogh #DV14 #bddinaction @wakaleo
  • 55. Know your audience #DV14 #bddinaction @wakaleo
  • 56. High-level BDD Reporting for non-developers as well as developers Communicate about features that business owners will understand and find meaningful Higher automation and maintenance costs … #DV14 #bddinaction @wakaleo
  • 59. + Groovy #DV14 #bddinaction @wakaleo
  • 60. (Previously known as “Thucydides”) Living documentation Requirements reporting Encourages good test architecture Good WebDriver integration Works with other BDD tools #DV14 #bddinaction @wakaleo
  • 63. A high-­‐level BDD tool should Produce business-­‐readable results Fit smoothly into your build pipeline Integrate with your development infrastructure Allow developers to collaborate with testers to implement and refactor the automa9on code #DV14 #bddinaction @wakaleo
  • 64. Tips for more effec@ve BDD Test Automa@on #DV14 #bddinaction @wakaleo
  • 65. Tip #1 - Use Layers Business Rules Business Flow Page/Component interac9ons Page/Component details #DV14 #bddinaction @wakaleo
  • 66. Tip #2 - Favour non-UI tests where possible #DV14 #bddinaction @wakaleo
  • 67. Tip #3 - Know when not to automate This slide is left intentionally blank
  • 68. Low-level BDD Technical documentation for other developers Implementation details that business owners may not be interested in Faster to write and easier to maintain spock RSpec #DV14 #bddinaction @wakaleo
  • 69. Low-level BDD Good naming conven9ons are the first step towards BDD #DV14 #bddinaction @wakaleo
  • 70. Low-level BDD spock RSpec Readable executable specifica9ons in Groovy #DV14 #bddinaction @wakaleo
  • 71. Low-level BDD spock RSpec Great support for data-­‐driven tests
  • 72. Low-level BDD spock RSpec Powerful and light-­‐weight stubbing and mocking
  • 73. Low-level BDD spock RSpec Makes very readable specifica9ons
  • 74. Low-level BDD Lambda-Behave Low-­‐level BDD library for Java 8 #DV14 #bddinaction @wakaleo
  • 75. Low-level BDD Lambda-Behave Data-­‐driven specifica9ons
  • 76. Low-level BDD Lambda-Behave Generated test data
  • 77. A low-­‐level BDD tool should Be highly readable Be developer-­‐friendly Make it easy to think in terms of specifica9ons, not tests Encourage fast feedback cycles You may need several! #DV14 #bddinaction @wakaleo
  • 79. There’s more where this came from! http://jbehave.org/ http://serenitybdd.com https://code.google.com/p/spock/ #DV14 #bddinaction @wakaleo
  • 80. There’s more where this came from! And look for more material on parleys.com! #DV14 #bddinaction @wakaleo
  • 81. Thank You #DV14 #bddinaction @wakaleo