SlideShare une entreprise Scribd logo
1  sur  147
Télécharger pour lire hors ligne
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

Contenu connexe

Tendances

BDD presentation
BDD presentationBDD presentation
BDD presentationtemebele
 
BDD WITH CUCUMBER AND JAVA
BDD WITH CUCUMBER AND JAVABDD WITH CUCUMBER AND JAVA
BDD WITH CUCUMBER AND JAVASrinivas Katakam
 
Introduction to BDD
Introduction to BDDIntroduction to BDD
Introduction to BDDKnoldus Inc.
 
Introduction to Bdd and cucumber
Introduction to Bdd and cucumberIntroduction to Bdd and cucumber
Introduction to Bdd and cucumberNibu Baby
 
Domain Driven Design - Strategic Patterns and Microservices
Domain Driven Design - Strategic Patterns and MicroservicesDomain Driven Design - Strategic Patterns and Microservices
Domain Driven Design - Strategic Patterns and MicroservicesRadosław Maziarka
 
Acceptance Test Driven Development
Acceptance Test Driven DevelopmentAcceptance Test Driven Development
Acceptance Test Driven DevelopmentMike Douglas
 
Domain-Driven Design with ASP.NET MVC
Domain-Driven Design with ASP.NET MVCDomain-Driven Design with ASP.NET MVC
Domain-Driven Design with ASP.NET MVCSteven Smith
 
Behavior driven development (bdd)
Behavior driven development (bdd)Behavior driven development (bdd)
Behavior driven development (bdd)Rohit Bisht
 
Sylvia MacDonald - How the Three Amigos made us more effective - EuroSTAR 2017
Sylvia MacDonald - How the Three Amigos made us more effective - EuroSTAR  2017Sylvia MacDonald - How the Three Amigos made us more effective - EuroSTAR  2017
Sylvia MacDonald - How the Three Amigos made us more effective - EuroSTAR 2017Sylvia MacDonald
 
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
 
Lean Software Development: Values and Principles
Lean Software Development: Values and PrinciplesLean Software Development: Values and Principles
Lean Software Development: Values and PrinciplesBalaji Sathram
 
Code Review Best Practices
Code Review Best PracticesCode Review Best Practices
Code Review Best PracticesTrisha Gee
 
8. Event Storming (P. Rayner).pdf
8. Event Storming (P. Rayner).pdf8. Event Storming (P. Rayner).pdf
8. Event Storming (P. Rayner).pdfMikhail Andronov
 

Tendances (20)

BDD & Cucumber
BDD & CucumberBDD & Cucumber
BDD & Cucumber
 
BDD presentation
BDD presentationBDD presentation
BDD presentation
 
BDD WITH CUCUMBER AND JAVA
BDD WITH CUCUMBER AND JAVABDD WITH CUCUMBER AND JAVA
BDD WITH CUCUMBER AND JAVA
 
BDD & Cucumber
BDD & CucumberBDD & Cucumber
BDD & Cucumber
 
Introduction to BDD
Introduction to BDDIntroduction to BDD
Introduction to BDD
 
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
 
Introduction to Bdd and cucumber
Introduction to Bdd and cucumberIntroduction to Bdd and cucumber
Introduction to Bdd and cucumber
 
Tdd and bdd
Tdd and bddTdd and bdd
Tdd and bdd
 
Domain Driven Design - Strategic Patterns and Microservices
Domain Driven Design - Strategic Patterns and MicroservicesDomain Driven Design - Strategic Patterns and Microservices
Domain Driven Design - Strategic Patterns and Microservices
 
Acceptance Test Driven Development
Acceptance Test Driven DevelopmentAcceptance Test Driven Development
Acceptance Test Driven Development
 
Cucumber & gherkin language
Cucumber & gherkin languageCucumber & gherkin language
Cucumber & gherkin language
 
Domain-Driven Design with ASP.NET MVC
Domain-Driven Design with ASP.NET MVCDomain-Driven Design with ASP.NET MVC
Domain-Driven Design with ASP.NET MVC
 
Introduction to TDD and BDD
Introduction to TDD and BDDIntroduction to TDD and BDD
Introduction to TDD and BDD
 
Behavior driven development (bdd)
Behavior driven development (bdd)Behavior driven development (bdd)
Behavior driven development (bdd)
 
Sylvia MacDonald - How the Three Amigos made us more effective - EuroSTAR 2017
Sylvia MacDonald - How the Three Amigos made us more effective - EuroSTAR  2017Sylvia MacDonald - How the Three Amigos made us more effective - EuroSTAR  2017
Sylvia MacDonald - How the Three Amigos made us more effective - EuroSTAR 2017
 
The Waterfall Model & RAD MODEL
 The Waterfall Model &  RAD MODEL The Waterfall Model &  RAD MODEL
The Waterfall Model & RAD MODEL
 
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
 
Lean Software Development: Values and Principles
Lean Software Development: Values and PrinciplesLean Software Development: Values and Principles
Lean Software Development: Values and Principles
 
Code Review Best Practices
Code Review Best PracticesCode Review Best Practices
Code Review Best Practices
 
8. Event Storming (P. Rayner).pdf
8. Event Storming (P. Rayner).pdf8. Event Storming (P. Rayner).pdf
8. Event Storming (P. Rayner).pdf
 

En vedette

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
 

En vedette (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 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?
 

Similaire à 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
 
Behavior Driven Development with AngularJS & Jasmine
Behavior Driven Development with AngularJS & JasmineBehavior Driven Development with AngularJS & Jasmine
Behavior Driven Development with AngularJS & JasmineRemus Langu
 

Similaire à BDD in Action: Building Software Right and Building the Right Software (20)

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
 
Behavior Driven Development with AngularJS & Jasmine
Behavior Driven Development with AngularJS & JasmineBehavior Driven Development with AngularJS & Jasmine
Behavior Driven Development with AngularJS & Jasmine
 

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

Plus de John Ferguson Smart Limited (16)

My Reading Specs - Refactoring Patterns for Gherkin Scenarios
My Reading Specs - Refactoring Patterns for Gherkin ScenariosMy Reading Specs - Refactoring Patterns for Gherkin Scenarios
My Reading Specs - Refactoring Patterns for Gherkin Scenarios
 
Artisti e Condotierri - How can your team become artists of the 21st century ...
Artisti e Condotierri - How can your team become artists of the 21st century ...Artisti e Condotierri - How can your team become artists of the 21st century ...
Artisti e Condotierri - How can your team become artists of the 21st century ...
 
Engage! Bringing teams together to deliver software that makes a difference
Engage! Bringing teams together to deliver software that makes a differenceEngage! Bringing teams together to deliver software that makes a difference
Engage! Bringing teams together to deliver software that makes a difference
 
BE A POD OF DOLPHINS, NOT A DANCING ELEPHANT
BE A POD OF DOLPHINS, NOT A DANCING ELEPHANTBE A POD OF DOLPHINS, NOT A DANCING ELEPHANT
BE A POD OF DOLPHINS, NOT A DANCING ELEPHANT
 
Sustainable Test Automation with Serenity BDD and Screenplay
Sustainable Test Automation with Serenity BDD and ScreenplaySustainable Test Automation with Serenity BDD and Screenplay
Sustainable Test Automation with Serenity BDD and Screenplay
 
Feature Mapping Workshop
Feature Mapping WorkshopFeature Mapping Workshop
Feature Mapping Workshop
 
Engage! Bringing teams together to deliver software that makes a difference
Engage! Bringing teams together to deliver software that makes a differenceEngage! Bringing teams together to deliver software that makes a difference
Engage! Bringing teams together to deliver software that makes a difference
 
Beyond Given/When/Then - why diving into Cucumber is the wrong approach to ad...
Beyond Given/When/Then - why diving into Cucumber is the wrong approach to ad...Beyond Given/When/Then - why diving into Cucumber is the wrong approach to ad...
Beyond Given/When/Then - why diving into Cucumber is the wrong approach to ad...
 
Beyond Given/When/Then - why diving into Cucumber is the wrong approach to ad...
Beyond Given/When/Then - why diving into Cucumber is the wrong approach to ad...Beyond Given/When/Then - why diving into Cucumber is the wrong approach to ad...
Beyond Given/When/Then - why diving into Cucumber is the wrong approach to ad...
 
Shift left-devoxx-pl
Shift left-devoxx-plShift left-devoxx-pl
Shift left-devoxx-pl
 
Screenplay - Next generation automated acceptance testing
Screenplay - Next generation automated acceptance testingScreenplay - Next generation automated acceptance testing
Screenplay - Next generation automated acceptance testing
 
Cucumber and Spock Primer
Cucumber and Spock PrimerCucumber and Spock Primer
Cucumber and Spock Primer
 
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
 
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
 

Dernier

Testing tools and AI - ideas what to try with some tool examples
Testing tools and AI - ideas what to try with some tool examplesTesting tools and AI - ideas what to try with some tool examples
Testing tools and AI - ideas what to try with some tool examplesKari Kakkonen
 
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxDigital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxLoriGlavin3
 
Potential of AI (Generative AI) in Business: Learnings and Insights
Potential of AI (Generative AI) in Business: Learnings and InsightsPotential of AI (Generative AI) in Business: Learnings and Insights
Potential of AI (Generative AI) in Business: Learnings and InsightsRavi Sanghani
 
UiPath Community: Communication Mining from Zero to Hero
UiPath Community: Communication Mining from Zero to HeroUiPath Community: Communication Mining from Zero to Hero
UiPath Community: Communication Mining from Zero to HeroUiPathCommunity
 
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyes
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyesHow to Effectively Monitor SD-WAN and SASE Environments with ThousandEyes
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyesThousandEyes
 
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
 
Enhancing User Experience - Exploring the Latest Features of Tallyman Axis Lo...
Enhancing User Experience - Exploring the Latest Features of Tallyman Axis Lo...Enhancing User Experience - Exploring the Latest Features of Tallyman Axis Lo...
Enhancing User Experience - Exploring the Latest Features of Tallyman Axis Lo...Scott Andery
 
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxMerck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxLoriGlavin3
 
(How to Program) Paul Deitel, Harvey Deitel-Java How to Program, Early Object...
(How to Program) Paul Deitel, Harvey Deitel-Java How to Program, Early Object...(How to Program) Paul Deitel, Harvey Deitel-Java How to Program, Early Object...
(How to Program) Paul Deitel, Harvey Deitel-Java How to Program, Early Object...AliaaTarek5
 
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxPasskey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxLoriGlavin3
 
A Framework for Development in the AI Age
A Framework for Development in the AI AgeA Framework for Development in the AI Age
A Framework for Development in the AI AgeCprime
 
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
 
Take control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteTake control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteDianaGray10
 
Generative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information DevelopersGenerative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information DevelopersRaghuram Pandurangan
 
What is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdfWhat is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdfMounikaPolabathina
 
A Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software DevelopersA Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software DevelopersNicole Novielli
 
The State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxThe State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxLoriGlavin3
 
Generative Artificial Intelligence: How generative AI works.pdf
Generative Artificial Intelligence: How generative AI works.pdfGenerative Artificial Intelligence: How generative AI works.pdf
Generative Artificial Intelligence: How generative AI works.pdfIngrid Airi González
 
Time Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directionsTime Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directionsNathaniel Shimoni
 
The Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsThe Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsPixlogix Infotech
 

Dernier (20)

Testing tools and AI - ideas what to try with some tool examples
Testing tools and AI - ideas what to try with some tool examplesTesting tools and AI - ideas what to try with some tool examples
Testing tools and AI - ideas what to try with some tool examples
 
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxDigital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
 
Potential of AI (Generative AI) in Business: Learnings and Insights
Potential of AI (Generative AI) in Business: Learnings and InsightsPotential of AI (Generative AI) in Business: Learnings and Insights
Potential of AI (Generative AI) in Business: Learnings and Insights
 
UiPath Community: Communication Mining from Zero to Hero
UiPath Community: Communication Mining from Zero to HeroUiPath Community: Communication Mining from Zero to Hero
UiPath Community: Communication Mining from Zero to Hero
 
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyes
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyesHow to Effectively Monitor SD-WAN and SASE Environments with ThousandEyes
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyes
 
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
 
Enhancing User Experience - Exploring the Latest Features of Tallyman Axis Lo...
Enhancing User Experience - Exploring the Latest Features of Tallyman Axis Lo...Enhancing User Experience - Exploring the Latest Features of Tallyman Axis Lo...
Enhancing User Experience - Exploring the Latest Features of Tallyman Axis Lo...
 
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxMerck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
 
(How to Program) Paul Deitel, Harvey Deitel-Java How to Program, Early Object...
(How to Program) Paul Deitel, Harvey Deitel-Java How to Program, Early Object...(How to Program) Paul Deitel, Harvey Deitel-Java How to Program, Early Object...
(How to Program) Paul Deitel, Harvey Deitel-Java How to Program, Early Object...
 
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxPasskey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
 
A Framework for Development in the AI Age
A Framework for Development in the AI AgeA Framework for Development in the AI Age
A Framework for Development in the AI Age
 
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.
 
Take control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteTake control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test Suite
 
Generative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information DevelopersGenerative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information Developers
 
What is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdfWhat is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdf
 
A Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software DevelopersA Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software Developers
 
The State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxThe State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptx
 
Generative Artificial Intelligence: How generative AI works.pdf
Generative Artificial Intelligence: How generative AI works.pdfGenerative Artificial Intelligence: How generative AI works.pdf
Generative Artificial Intelligence: How generative AI works.pdf
 
Time Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directionsTime Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directions
 
The Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsThe Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and Cons
 

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