SlideShare a Scribd company logo
1 of 147
Download to read offline
BDD in Action 
Building Software Right 
Building the Right Software
Miyamoto 
Musashi 
Japan 
1584 
– 
1645
Consultant 
Tr a i n e r 
Mentor 
Author 
Speaker 
Coder 
John Ferguson Smar t
Consultant 
Tr a i n e r 
Mentor 
Author 
Speaker 
Coder 
John Ferguson Smar t
What 
is 
BDD
What 
is 
BDD 
A 
typical 
BDD 
workflow
What 
is 
BDD 
A 
typical 
BDD 
workflow 
What 
tools 
should 
I 
use?
What 
is 
BDD 
A 
typical 
BDD 
workflow 
What 
tools 
should 
I 
use? 
Effec@ve 
BDD 
automa@on
What 
is 
BDD 
A 
typical 
BDD 
workflow 
What 
tools 
should 
I 
use? 
Effec@ve 
BDD 
automa@on 
BDD 
Gotchas
So what is this BDD thing?
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? 
Hunting out value Automated Acceptance 
BDD 
Criteria 
Collaboration 
Building the right software
So what is this BDD thing? 
Hunting out value Automated Acceptance 
BDD 
Criteria 
API and code design 
Collaboration 
Building the right software
So what is this BDD thing? 
Building the right software 
Hunting out value Automated Acceptance 
BDD 
Criteria 
API and code design 
Collaboration 
Building the software right
So what is this BDD thing? 
Building the right software 
Hunting out value Automated Acceptance 
BDD 
Criteria 
API and code design 
Collaboration 
Living Documentation 
Building the software right
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 
BDD in a nutshell 
The business analyst, 
the developer and the 
tester elaborate the 
requirements together. 
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 scenarios guide the 
developer and act as 
automated tests 
They define 
requirements as 
structured, English-language 
format 
"scenarios" 
A BDD development process
The business owner 
and the business 
analyst have a 
conversation about 
what he needs. 
1 
2 
3 
BDD in a nutshell 
The business analyst, 
the developer and the 
tester elaborate the 
requirements together. 
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 scenarios guide the 
developer and act as 
automated tests 
They define 
requirements as 
structured, English-language 
format 
"scenarios" 
A BDD development process
The business owner 
and the business 
analyst have a 
conversation about 
what he needs. 
1 
2 
3 
BDD in a nutshell 
The business analyst, 
the developer and the 
tester elaborate the 
requirements together. 
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 scenarios guide the 
developer and act as 
automated tests 
They define 
requirements as 
structured, English-language 
format 
"scenarios" 
A BDD development process
The business owner 
and the business 
analyst have a 
conversation about 
what he needs. 
1 
2 
3 
BDD in a nutshell 
The business analyst, 
the developer and the 
tester elaborate the 
requirements together. 
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 scenarios guide the 
developer and act as 
automated tests 
They define 
requirements as 
structured, English-language 
format 
"scenarios" 
A BDD development process
The business owner 
and the business 
analyst have a 
conversation about 
what he needs. 
1 
2 
3 
BDD in a nutshell 
The business analyst, 
the developer and the 
tester elaborate the 
requirements together. 
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 scenarios guide the 
developer and act as 
automated tests 
They define 
requirements as 
structured, English-language 
format 
"scenarios" 
A BDD development process
The business owner 
and the business 
analyst have a 
conversation about 
what he needs. 
1 
2 
3 
BDD in a nutshell 
The business analyst, 
the developer and the 
tester elaborate the 
requirements together. 
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 scenarios guide the 
developer and act as 
automated tests 
They define 
requirements as 
structured, English-language 
format 
"scenarios" 
A BDD development process
The business owner 
and the business 
analyst have a 
conversation about 
what he needs. 
1 
2 
3 
BDD in a nutshell 
The business analyst, 
the developer and the 
tester elaborate the 
requirements together. 
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 scenarios guide the 
developer and act as 
automated tests 
They define 
requirements as 
structured, English-language 
format 
"scenarios" 
•Specifica)ons 
are 
elaborated 
collabora)vely 
•Specifica)ons 
use 
a 
common 
language 
•Executable 
specifica)ons 
provide 
fast 
feedback
A typical BDD workflow
A typical BDD workflow 
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
A typical BDD workflow 
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
A typical BDD workflow 
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
A typical BDD workflow
A typical BDD workflow 
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
A typical BDD workflow 
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
A typical BDD workflow 
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
A typical BDD workflow 
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
A typical BDD workflow
A typical BDD workflow 
Automated 
Acceptance 
Criteria
A typical BDD workflow 
Automated 
Acceptance 
Criteria 
Automated 
Acceptance 
Tests
A typical BDD workflow 
Automated 
Acceptance 
Tests
A typical BDD workflow 
Automated 
Acceptance 
Tests 
Applica9on 
Code
A typical BDD workflow 
Automated 
Acceptance 
Tests 
Applica9on 
Code
A typical BDD workflow 
Automated 
Acceptance 
Tests 
Applica9on 
Code 
Low 
level 
specifica9ons
A typical BDD workflow
A typical BDD workflow 
“But 
what 
are 
the 
deliverables?
A typical BDD workflow 
“But 
what 
are 
the 
deliverables? 
Meaningful 
feedback 
on 
what 
requirements 
have 
(and 
have 
not) 
been 
delivered
An incremental approach  
“But 
what 
are 
the 
deliverables?
An incremental approach  
“But 
what 
are 
the 
deliverables? 
Descrip9on 
of 
each 
feature 
with 
an 
example 
of 
how 
it 
behaves
An incremental approach  
“But 
what 
are 
the 
deliverables?
An incremental approach  
“But 
what 
are 
the 
deliverables? 
…complete 
with 
illustra9ons
An incremental approach  
“But 
what 
are 
the 
deliverables?
An incremental approach  
“But 
what 
are 
the 
deliverables? 
How 
was 
each 
feature 
tested?
An incremental approach 
“But 
what 
are 
the 
deliverables?
An incremental approach 
“But 
what 
are 
the 
deliverables? 
Documenta9on 
about 
what 
you 
plan 
to 
deliver 
in 
each 
release
An incremental approach 
“But 
what 
are 
the 
deliverables?
An incremental approach 
“But 
what 
are 
the 
deliverables? 
Useful 
low-­‐level 
technical 
documenta9on 
with 
liRle 
overhead
An incremental approach 
“But 
what 
are 
the 
deliverables?
An incremental approach 
“But 
what 
are 
the 
deliverables? 
…and 
targeted 
automated 
regression 
tests
What tool should I use?
Collaboration before Automation
Collaboration before Automation 
“Having 
the 
conversa/on 
is 
more 
important 
than 
recording 
the 
conversa/on 
is 
more 
important 
than 
automa/ng 
the 
conversa/on” 
-­‐ 
Liz 
Keogh
Know your audience
High-level BDD 
…
High-level BDD 
Reporting for non-developers 
as well as developers 
…
High-level BDD 
Reporting for non-developers 
as well as developers 
Communicate about features 
that business owners will 
understand and find 
meaningful 
…
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 
…
` 
+ Groovy
` 
+ Groovy
Living documentation! 
Requirements reporting! 
Encourages good test 
architecture! 
Good WebDriver integration! 
Works with other BDD tools
+
+
+
+
+
+
+
+
+
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
Tips 
for 
more 
effec)ve 
BDD 
Test 
Automa)on
Tip #1 - Use Layers 
Business 
Rules 
Business 
Flow 
Page/Component 
interac9ons 
Page/Component 
details
Tip #1 - Use Layers 
Business 
Rules 
Business 
Flow 
Page/Component 
interac9ons 
Page/Component 
details
Tip #1 - Use Layers 
Business 
Rules 
Business 
Flow 
Page/Component 
interac9ons 
Page/Component 
details
Tip #1 - Use Layers 
Business 
Rules 
Business 
Flow 
Page/Component 
interac9ons 
Page/Component 
details
Tip #1 - Use Layers 
Business 
Rules 
Business 
Flow 
Page/Component 
interac9ons 
Page/Component 
details
Tip #2 - Favour non-UI tests where possible
Tip #3 - Know when not to automate 
This slide is left intentionally blank
Low-level BDD 
spock 
RSpec
Low-level BDD 
Technical documentation for 
other developers 
spock 
RSpec
Low-level BDD 
Technical documentation for 
other developers 
spock 
RSpec
Low-level BDD 
Technical documentation for 
other developers 
Implementation details that 
business owners may not be 
interested in spock 
RSpec
Low-level BDD 
Technical documentation for 
other developers 
Implementation details that 
business owners may not be 
interested in spock 
RSpec
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
Low-level BDD 
Good 
naming 
conven9ons 
are 
the 
first 
step 
towards 
BDD
Low-level BDD 
Good 
naming 
conven9ons 
are 
the 
first 
step 
towards 
BDD
Low-level BDD 
spock 
RSpec
Low-level BDD 
spock 
RSpec 
Readable 
executable 
specifica9ons 
in 
Groovy
Low-level BDD 
spock 
RSpec
Low-level BDD 
spock 
RSpec 
Great 
support 
for 
data-­‐driven 
tests
Low-level BDD 
spock 
RSpec 
Great 
support 
for 
data-­‐driven 
tests
Low-level BDD 
spock 
RSpec
Low-level BDD 
spock 
RSpec 
Powerful 
and 
light-­‐weight 
stubbing 
and 
mocking
Low-level BDD 
spock 
RSpec 
Powerful 
and 
light-­‐weight 
stubbing 
and 
mocking
Low-level BDD 
spock 
RSpec 
Powerful 
and 
light-­‐weight 
stubbing 
and 
mocking
Low-level BDD 
spock 
RSpec
Low-level BDD 
spock 
RSpec 
Makes 
very 
readable 
specifica9ons
Low-level BDD 
spock 
RSpec 
Makes 
very 
readable 
specifica9ons
Low-level BDD 
Lambda-Behave
Low-level BDD 
Lambda-Behave 
Low-­‐level 
BDD 
library 
for 
Java 
8
Low-level BDD 
Lambda-Behave
Low-level BDD 
Lambda-Behave 
Data-­‐driven 
specifica9ons
Low-level BDD 
Lambda-Behave 
Data-­‐driven 
specifica9ons
Low-level BDD 
Lambda-Behave
Low-level BDD 
Lambda-Behave 
Generated 
test 
data
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!
BDD Gotchas 
1 
2 
3 
4
BDD Gotchas 
1 
2 
3 
An)-­‐paFern 
1 
4 
The 
business 
analyst 
writes 
the 
scenarios 
and 
then 
gives 
them 
to 
the 
other 
team 
members.
1 
2 
3 
BDD Gotchas 
4
1 
2 
3 
BDD Gotchas 
4 
An)-­‐paFern 
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 
An)-­‐paFern 
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 
An)-­‐paFern 
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 
An)-­‐paFern 
4 
The 
scenarios 
are 
too 
UI-­‐centric 
or 
detail-­‐focused, 
and 
neglect 
to 
express 
the 
core 
business 
value.
Book signings! 
Digital 
Guru 
bookstore 
Hilton 
Hotel, 
2nd 
Level 
lobby 
Thursday, 
12:30-­‐1:00pm
Thank You

More Related Content

What's hot

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
 
Behavior Driven Development Pros and Cons
Behavior Driven Development Pros and ConsBehavior Driven Development Pros and Cons
Behavior Driven Development Pros and ConsIosif Itkin
 
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
 
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
 
BDD WITH CUCUMBER AND JAVA
BDD WITH CUCUMBER AND JAVABDD WITH CUCUMBER AND JAVA
BDD WITH CUCUMBER AND JAVASrinivas Katakam
 
Acceptance Test Driven Development
Acceptance Test Driven DevelopmentAcceptance Test Driven Development
Acceptance Test Driven DevelopmentMike Douglas
 
Automation test framework with cucumber – BDD
Automation test framework with cucumber – BDDAutomation test framework with cucumber – BDD
Automation test framework with cucumber – BDD123abcda
 
BDD with SpecFlow and Selenium
BDD with SpecFlow and SeleniumBDD with SpecFlow and Selenium
BDD with SpecFlow and SeleniumLiraz Shay
 
Introduction to Bdd and cucumber
Introduction to Bdd and cucumberIntroduction to Bdd and cucumber
Introduction to Bdd and cucumberNibu Baby
 
What Is Cucumber?
What Is Cucumber?What Is Cucumber?
What Is Cucumber?QATestLab
 

What's hot (20)

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)
 
Behavior Driven Development Pros and Cons
Behavior Driven Development Pros and ConsBehavior Driven Development Pros and Cons
Behavior Driven Development Pros and Cons
 
Introduction to BDD
Introduction to BDDIntroduction to BDD
Introduction to BDD
 
Bdd Introduction
Bdd IntroductionBdd Introduction
Bdd Introduction
 
Behavior driven development (bdd)
Behavior driven development (bdd)Behavior driven development (bdd)
Behavior driven development (bdd)
 
Tdd and bdd
Tdd and bddTdd and bdd
Tdd and bdd
 
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)
 
Feature Mapping Workshop
Feature Mapping WorkshopFeature Mapping Workshop
Feature Mapping Workshop
 
TDD and BDD and ATDD
TDD and BDD and ATDDTDD and BDD and ATDD
TDD and BDD and ATDD
 
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
 
BDD WITH CUCUMBER AND JAVA
BDD WITH CUCUMBER AND JAVABDD WITH CUCUMBER AND JAVA
BDD WITH CUCUMBER AND JAVA
 
Acceptance Test Driven Development
Acceptance Test Driven DevelopmentAcceptance Test Driven Development
Acceptance Test Driven Development
 
BDD Anti-patterns
BDD Anti-patternsBDD Anti-patterns
BDD Anti-patterns
 
Automation test framework with cucumber – BDD
Automation test framework with cucumber – BDDAutomation test framework with cucumber – BDD
Automation test framework with cucumber – BDD
 
BDD and Behave
BDD and BehaveBDD and Behave
BDD and Behave
 
BDD with SpecFlow and Selenium
BDD with SpecFlow and SeleniumBDD with SpecFlow and Selenium
BDD with SpecFlow and Selenium
 
Introduction to Bdd and cucumber
Introduction to Bdd and cucumberIntroduction to Bdd and cucumber
Introduction to Bdd and cucumber
 
Cucumber BDD
Cucumber BDDCucumber BDD
Cucumber BDD
 
What Is Cucumber?
What Is Cucumber?What Is Cucumber?
What Is Cucumber?
 
Introduction to TDD and BDD
Introduction to TDD and BDDIntroduction to TDD and BDD
Introduction to TDD and BDD
 

Viewers also liked

Getting Comfortable with BDD
Getting Comfortable with BDDGetting Comfortable with BDD
Getting Comfortable with BDDAlex Sharp
 
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
 
BDD - Writing better scenario
BDD - Writing better scenarioBDD - Writing better scenario
BDD - Writing better scenarioArnauld Loyer
 
BDD style Unit Testing
BDD style Unit TestingBDD style Unit Testing
BDD style Unit TestingWen-Tien Chang
 
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
 
BDD with JBehave and Selenium
BDD with JBehave and SeleniumBDD with JBehave and Selenium
BDD with JBehave and SeleniumNikolay Vasilev
 
Behavior Driven Development
Behavior Driven DevelopmentBehavior Driven Development
Behavior Driven DevelopmentLiz Keogh
 
BDD & Rspec
BDD & Rspec BDD & Rspec
BDD & Rspec Robbert
 
Martin Odersky: What's next for Scala
Martin Odersky: What's next for ScalaMartin Odersky: What's next for Scala
Martin Odersky: What's next for ScalaMarakana Inc.
 
Behavior Driven Development: An Overview
Behavior Driven Development:  An OverviewBehavior Driven Development:  An Overview
Behavior Driven Development: An Overviewbmaynard_at_litle
 
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
 

Viewers also liked (20)

Getting Comfortable with BDD
Getting Comfortable with BDDGetting Comfortable with BDD
Getting Comfortable with BDD
 
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
 
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 Anti-patterns
BDD Anti-patternsBDD Anti-patterns
BDD Anti-patterns
 
BDD - Writing better scenario
BDD - Writing better scenarioBDD - Writing better scenario
BDD - Writing better scenario
 
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
 
BDD in Action - Devoxx 2014
BDD in Action - Devoxx 2014BDD in Action - Devoxx 2014
BDD in Action - Devoxx 2014
 
Help! My Legacy Application is Unmaintainable!
Help! My Legacy Application is Unmaintainable!Help! My Legacy Application is Unmaintainable!
Help! My Legacy Application is Unmaintainable!
 
BDD style Unit Testing
BDD style Unit TestingBDD style Unit Testing
BDD style Unit Testing
 
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
 
BDD with JBehave and Selenium
BDD with JBehave and SeleniumBDD with JBehave and Selenium
BDD with JBehave and Selenium
 
Behavior Driven Development
Behavior Driven DevelopmentBehavior Driven Development
Behavior Driven Development
 
BDD & Behat
BDD & BehatBDD & Behat
BDD & Behat
 
BDD & Rspec
BDD & Rspec BDD & Rspec
BDD & Rspec
 
Martin Odersky: What's next for Scala
Martin Odersky: What's next for ScalaMartin Odersky: What's next for Scala
Martin Odersky: What's next for Scala
 
Behavior Driven Development: An Overview
Behavior Driven Development:  An OverviewBehavior Driven Development:  An Overview
Behavior Driven Development: An Overview
 
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: There's more to it than you think
BDD: There's more to it than you thinkBDD: There's more to it than you think
BDD: There's more to it than you think
 

Similar to BDD in Action: Building Software Right and Building the Right Software

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
 
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
 
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
 
Topic tdd-and-bdd b4usolution
Topic tdd-and-bdd b4usolutionTopic tdd-and-bdd b4usolution
Topic tdd-and-bdd b4usolutionHoa Le
 
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
 
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
 
Digital Customer Experience
Digital Customer ExperienceDigital Customer Experience
Digital Customer ExperienceRich Boyd
 
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
 
Introducing Business Analysis
Introducing Business AnalysisIntroducing Business Analysis
Introducing Business AnalysisEdgar Khachatryan
 
BDD introduction
BDD introductionBDD introduction
BDD introductionMeryGlow
 
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
 
Agile and the Business Analyst, Presentation to the IIBA, June 2010
Agile and the Business Analyst, Presentation to the IIBA, June 2010Agile and the Business Analyst, Presentation to the IIBA, June 2010
Agile and the Business Analyst, Presentation to the IIBA, June 2010bennw
 
Agile and the BA
Agile and the BAAgile and the BA
Agile and the BAreggie_d
 
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
 

Similar to BDD in Action: Building Software Right and Building the Right Software (20)

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
 
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
 
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)
 
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...
 
Topic tdd-and-bdd b4usolution
Topic tdd-and-bdd b4usolutionTopic tdd-and-bdd b4usolution
Topic tdd-and-bdd b4usolution
 
Practiced agile developer with tdd & bdd
Practiced agile developer with tdd & bdd Practiced agile developer with tdd & bdd
Practiced agile developer with tdd & bdd
 
Gateway to Agile: XP and BDD
Gateway to Agile: XP and BDD Gateway to Agile: XP and BDD
Gateway to Agile: XP and BDD
 
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
 
Digital Customer Experience
Digital Customer ExperienceDigital Customer Experience
Digital Customer Experience
 
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
 
Introducing Business Analysis
Introducing Business AnalysisIntroducing Business Analysis
Introducing Business Analysis
 
BDD introduction
BDD introductionBDD introduction
BDD introduction
 
The BDD Process (Behavior-driven development)
The BDD Process (Behavior-driven development)The BDD Process (Behavior-driven development)
The BDD Process (Behavior-driven development)
 
Agile and the Business Analyst, Presentation to the IIBA, June 2010
Agile and the Business Analyst, Presentation to the IIBA, June 2010Agile and the Business Analyst, Presentation to the IIBA, June 2010
Agile and the Business Analyst, Presentation to the IIBA, June 2010
 
Agile and the BA
Agile and the BAAgile and the BA
Agile and the BA
 
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
 
SE-Lecture=3.pptx
SE-Lecture=3.pptxSE-Lecture=3.pptx
SE-Lecture=3.pptx
 

More from John Ferguson Smart Limited

My Reading Specs - Refactoring Patterns for Gherkin Scenarios
My Reading Specs - Refactoring Patterns for Gherkin ScenariosMy Reading Specs - Refactoring Patterns for Gherkin Scenarios
My Reading Specs - Refactoring Patterns for Gherkin 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
 

More from John Ferguson Smart Limited (14)

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
 
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
 
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
 

Recently uploaded

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
 
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
 
Powerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time ClashPowerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time Clashcharlottematthew16
 
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Patryk Bandurski
 
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
 
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
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr BaganFwdays
 
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
 
Story boards and shot lists for my a level piece
Story boards and shot lists for my a level pieceStory boards and shot lists for my a level piece
Story boards and shot lists for my a level piececharlottematthew16
 
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
 
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
 
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
 
Training state-of-the-art general text embedding
Training state-of-the-art general text embeddingTraining state-of-the-art general text embedding
Training state-of-the-art general text embeddingZilliz
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):comworks
 
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
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationRidwan Fadjar
 
Search Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdfSearch Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdfRankYa
 
Vector Databases 101 - An introduction to the world of Vector Databases
Vector Databases 101 - An introduction to the world of Vector DatabasesVector Databases 101 - An introduction to the world of Vector Databases
Vector Databases 101 - An introduction to the world of Vector DatabasesZilliz
 
AI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsAI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsMemoori
 

Recently uploaded (20)

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?
 
Commit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyCommit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easy
 
DMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special EditionDMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special Edition
 
Powerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time ClashPowerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time Clash
 
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
 
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
 
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
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan
 
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
 
Story boards and shot lists for my a level piece
Story boards and shot lists for my a level pieceStory boards and shot lists for my a level piece
Story boards and shot lists for my a level piece
 
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
 
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
 
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
 
Training state-of-the-art general text embedding
Training state-of-the-art general text embeddingTraining state-of-the-art general text embedding
Training state-of-the-art general text embedding
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):
 
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!
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 Presentation
 
Search Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdfSearch Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdf
 
Vector Databases 101 - An introduction to the world of Vector Databases
Vector Databases 101 - An introduction to the world of Vector DatabasesVector Databases 101 - An introduction to the world of Vector Databases
Vector Databases 101 - An introduction to the world of Vector Databases
 
AI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsAI as an Interface for Commercial Buildings
AI as an Interface for Commercial Buildings
 

BDD in Action: Building Software Right and Building the Right Software

  • 1. BDD in Action Building Software Right Building the Right Software
  • 2. Miyamoto Musashi Japan 1584 – 1645
  • 3. Consultant Tr a i n e r Mentor Author Speaker Coder John Ferguson Smar t
  • 4. Consultant Tr a i n e r Mentor Author Speaker Coder John Ferguson Smar t
  • 5.
  • 7. What is BDD A typical BDD workflow
  • 8. What is BDD A typical BDD workflow What tools should I use?
  • 9. What is BDD A typical BDD workflow What tools should I use? Effec@ve BDD automa@on
  • 10. What is BDD A typical BDD workflow What tools should I use? Effec@ve BDD automa@on BDD Gotchas
  • 11. So what is this BDD thing?
  • 12. So what is this BDD thing? Using examples
  • 13. So what is this BDD thing? Using examples a shared understanding
  • 14. So what is this BDD thing? Using examples a shared understanding software that matters
  • 15. So what is this BDD thing? BDD
  • 16. So what is this BDD thing? BDD Collaboration
  • 17. So what is this BDD thing? BDD Hunting out value Collaboration
  • 18. So what is this BDD thing? BDD Hunting out value Collaboration Building the right software
  • 19. So what is this BDD thing? Hunting out value Automated Acceptance BDD Criteria Collaboration Building the right software
  • 20. So what is this BDD thing? Hunting out value Automated Acceptance BDD Criteria API and code design Collaboration Building the right software
  • 21. So what is this BDD thing? Building the right software Hunting out value Automated Acceptance BDD Criteria API and code design Collaboration Building the software right
  • 22. So what is this BDD thing? Building the right software Hunting out value Automated Acceptance BDD Criteria API and code design Collaboration Living Documentation Building the software right
  • 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 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
  • 30. 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
  • 31. 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
  • 32. 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
  • 33. 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
  • 34. The business owner and the business analyst have a conversation about what he needs. 1 2 3 BDD in a nutshell The business analyst, the developer and the tester elaborate the requirements together. 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 scenarios guide the developer and act as automated tests They define requirements as structured, English-language format "scenarios" A BDD development process
  • 35. The business owner and the business analyst have a conversation about what he needs. 1 2 3 BDD in a nutshell The business analyst, the developer and the tester elaborate the requirements together. 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 scenarios guide the developer and act as automated tests They define requirements as structured, English-language format "scenarios" A BDD development process
  • 36. The business owner and the business analyst have a conversation about what he needs. 1 2 3 BDD in a nutshell The business analyst, the developer and the tester elaborate the requirements together. 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 scenarios guide the developer and act as automated tests They define requirements as structured, English-language format "scenarios" A BDD development process
  • 37. The business owner and the business analyst have a conversation about what he needs. 1 2 3 BDD in a nutshell The business analyst, the developer and the tester elaborate the requirements together. 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 scenarios guide the developer and act as automated tests They define requirements as structured, English-language format "scenarios" A BDD development process
  • 38. The business owner and the business analyst have a conversation about what he needs. 1 2 3 BDD in a nutshell The business analyst, the developer and the tester elaborate the requirements together. 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 scenarios guide the developer and act as automated tests They define requirements as structured, English-language format "scenarios" A BDD development process
  • 39. The business owner and the business analyst have a conversation about what he needs. 1 2 3 BDD in a nutshell The business analyst, the developer and the tester elaborate the requirements together. 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 scenarios guide the developer and act as automated tests They define requirements as structured, English-language format "scenarios" A BDD development process
  • 40. The business owner and the business analyst have a conversation about what he needs. 1 2 3 BDD in a nutshell The business analyst, the developer and the tester elaborate the requirements together. 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 scenarios guide the developer and act as automated tests They define requirements as structured, English-language format "scenarios" •Specifica)ons are elaborated collabora)vely •Specifica)ons use a common language •Executable specifica)ons provide fast feedback
  • 41. A typical BDD workflow
  • 42. A typical BDD workflow 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
  • 43. A typical BDD workflow 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
  • 44. A typical BDD workflow 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
  • 45. A typical BDD workflow
  • 46. A typical BDD workflow 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
  • 47. A typical BDD workflow 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
  • 48. A typical BDD workflow 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
  • 49. A typical BDD workflow 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
  • 50. A typical BDD workflow
  • 51. A typical BDD workflow Automated Acceptance Criteria
  • 52. A typical BDD workflow Automated Acceptance Criteria Automated Acceptance Tests
  • 53. A typical BDD workflow Automated Acceptance Tests
  • 54. A typical BDD workflow Automated Acceptance Tests Applica9on Code
  • 55. A typical BDD workflow Automated Acceptance Tests Applica9on Code
  • 56. A typical BDD workflow Automated Acceptance Tests Applica9on Code Low level specifica9ons
  • 57. A typical BDD workflow
  • 58. A typical BDD workflow “But what are the deliverables?
  • 59. A typical BDD workflow “But what are the deliverables? Meaningful feedback on what requirements have (and have not) been delivered
  • 60. An incremental approach “But what are the deliverables?
  • 61. An incremental approach “But what are the deliverables? Descrip9on of each feature with an example of how it behaves
  • 62. An incremental approach “But what are the deliverables?
  • 63. An incremental approach “But what are the deliverables? …complete with illustra9ons
  • 64. An incremental approach “But what are the deliverables?
  • 65. An incremental approach “But what are the deliverables? How was each feature tested?
  • 66. An incremental approach “But what are the deliverables?
  • 67. An incremental approach “But what are the deliverables? Documenta9on about what you plan to deliver in each release
  • 68. An incremental approach “But what are the deliverables?
  • 69. An incremental approach “But what are the deliverables? Useful low-­‐level technical documenta9on with liRle overhead
  • 70. An incremental approach “But what are the deliverables?
  • 71. An incremental approach “But what are the deliverables? …and targeted automated regression tests
  • 74. Collaboration before Automation “Having the conversa/on is more important than recording the conversa/on is more important than automa/ng the conversa/on” -­‐ Liz Keogh
  • 77. High-level BDD Reporting for non-developers as well as developers …
  • 78. High-level BDD Reporting for non-developers as well as developers Communicate about features that business owners will understand and find meaningful …
  • 79. 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 …
  • 80.
  • 81.
  • 82.
  • 83.
  • 86. Living documentation! Requirements reporting! Encourages good test architecture! Good WebDriver integration! Works with other BDD tools
  • 87. +
  • 88. +
  • 89. +
  • 90. +
  • 91. +
  • 92. +
  • 93. +
  • 94. +
  • 95. +
  • 96.
  • 97. 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
  • 98.
  • 99. Tips for more effec)ve BDD Test Automa)on
  • 100. Tip #1 - Use Layers Business Rules Business Flow Page/Component interac9ons Page/Component details
  • 101. Tip #1 - Use Layers Business Rules Business Flow Page/Component interac9ons Page/Component details
  • 102. Tip #1 - Use Layers Business Rules Business Flow Page/Component interac9ons Page/Component details
  • 103. Tip #1 - Use Layers Business Rules Business Flow Page/Component interac9ons Page/Component details
  • 104. Tip #1 - Use Layers Business Rules Business Flow Page/Component interac9ons Page/Component details
  • 105. Tip #2 - Favour non-UI tests where possible
  • 106. Tip #3 - Know when not to automate This slide is left intentionally blank
  • 108. Low-level BDD Technical documentation for other developers spock RSpec
  • 109. Low-level BDD Technical documentation for other developers spock RSpec
  • 110. Low-level BDD Technical documentation for other developers Implementation details that business owners may not be interested in spock RSpec
  • 111. Low-level BDD Technical documentation for other developers Implementation details that business owners may not be interested in spock RSpec
  • 112. 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
  • 113. Low-level BDD Good naming conven9ons are the first step towards BDD
  • 114. Low-level BDD Good naming conven9ons are the first step towards BDD
  • 116. Low-level BDD spock RSpec Readable executable specifica9ons in Groovy
  • 118. Low-level BDD spock RSpec Great support for data-­‐driven tests
  • 119. Low-level BDD spock RSpec Great support for data-­‐driven tests
  • 121. Low-level BDD spock RSpec Powerful and light-­‐weight stubbing and mocking
  • 122. Low-level BDD spock RSpec Powerful and light-­‐weight stubbing and mocking
  • 123. Low-level BDD spock RSpec Powerful and light-­‐weight stubbing and mocking
  • 125. Low-level BDD spock RSpec Makes very readable specifica9ons
  • 126. Low-level BDD spock RSpec Makes very readable specifica9ons
  • 128. Low-level BDD Lambda-Behave Low-­‐level BDD library for Java 8
  • 130. Low-level BDD Lambda-Behave Data-­‐driven specifica9ons
  • 131. Low-level BDD Lambda-Behave Data-­‐driven specifica9ons
  • 133. Low-level BDD Lambda-Behave Generated test data
  • 134. Low-level BDD Lambda-Behave Generated test data
  • 135.
  • 136. 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!
  • 137. BDD Gotchas 1 2 3 4
  • 138. BDD Gotchas 1 2 3 An)-­‐paFern 1 4 The business analyst writes the scenarios and then gives them to the other team members.
  • 139. 1 2 3 BDD Gotchas 4
  • 140. 1 2 3 BDD Gotchas 4 An)-­‐paFern 2 The tester writes the scenarios at the end to implement an automated test suite.
  • 141. 1 2 3 4 5 BDD Gotchas
  • 142. 1 2 3 4 5 BDD Gotchas An)-­‐paFern 3 The “Three Amigos” sessions don’t result in usable scenarios, so the developer invents them a?erwards.
  • 143. 1 2 3 4 5 BDD Gotchas An)-­‐paFern 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
  • 145. 1 2 3 4 5 BDD Gotchas An)-­‐paFern 4 The scenarios are too UI-­‐centric or detail-­‐focused, and neglect to express the core business value.
  • 146. Book signings! Digital Guru bookstore Hilton Hotel, 2nd Level lobby Thursday, 12:30-­‐1:00pm