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

Brand Restart 2023: Vojtěch Prokeš - Strategie malé značky
Brand Restart 2023: Vojtěch Prokeš - Strategie malé značkyBrand Restart 2023: Vojtěch Prokeš - Strategie malé značky
Brand Restart 2023: Vojtěch Prokeš - Strategie malé značkyTaste
 
User Testing for Accessibility
User Testing for AccessibilityUser Testing for Accessibility
User Testing for AccessibilityUsability Matters
 
The Future of Everything
The Future of EverythingThe Future of Everything
The Future of EverythingCharbel Zeaiter
 
Impact of Poor Basic Skills: The Employer Perspective
Impact of Poor Basic Skills: The Employer PerspectiveImpact of Poor Basic Skills: The Employer Perspective
Impact of Poor Basic Skills: The Employer PerspectiveIpsos UK
 
10 Insightful Quotes On Designing A Better Customer Experience
10 Insightful Quotes On Designing A Better Customer Experience10 Insightful Quotes On Designing A Better Customer Experience
10 Insightful Quotes On Designing A Better Customer ExperienceYuan Wang
 
Project Restart 2023: Petr Bernadič - Jak komunikovat projekt, za který zákaz...
Project Restart 2023: Petr Bernadič - Jak komunikovat projekt, za který zákaz...Project Restart 2023: Petr Bernadič - Jak komunikovat projekt, za který zákaz...
Project Restart 2023: Petr Bernadič - Jak komunikovat projekt, za který zákaz...Taste
 
Lean Startup - Como Validar Ideias de Negocios
Lean Startup - Como Validar Ideias de NegociosLean Startup - Como Validar Ideias de Negocios
Lean Startup - Como Validar Ideias de NegociosUFPA
 
How to Build a Product Roadmap by Walmart Senior Product Manager
How to Build a Product Roadmap by Walmart Senior Product ManagerHow to Build a Product Roadmap by Walmart Senior Product Manager
How to Build a Product Roadmap by Walmart Senior Product ManagerProduct School
 
Brand Restart 2023: Radovan Andrej Grezo - Maskoti v reklame - absolútne nevy...
Brand Restart 2023: Radovan Andrej Grezo - Maskoti v reklame - absolútne nevy...Brand Restart 2023: Radovan Andrej Grezo - Maskoti v reklame - absolútne nevy...
Brand Restart 2023: Radovan Andrej Grezo - Maskoti v reklame - absolútne nevy...Taste
 
Project Restart 2023: Jirka Bachel - Jak zrychlit softwarový vývoj a validaci...
Project Restart 2023: Jirka Bachel - Jak zrychlit softwarový vývoj a validaci...Project Restart 2023: Jirka Bachel - Jak zrychlit softwarový vývoj a validaci...
Project Restart 2023: Jirka Bachel - Jak zrychlit softwarový vývoj a validaci...Taste
 
Brand Restart 2023: Martin Bernátek a David Dvořáček - Huňatý branding pro Ov...
Brand Restart 2023: Martin Bernátek a David Dvořáček - Huňatý branding pro Ov...Brand Restart 2023: Martin Bernátek a David Dvořáček - Huňatý branding pro Ov...
Brand Restart 2023: Martin Bernátek a David Dvořáček - Huňatý branding pro Ov...Taste
 
UX STRAT Online 2021 Presentation by Vikas Vaishnav Autodesk
UX STRAT Online 2021 Presentation by Vikas Vaishnav AutodeskUX STRAT Online 2021 Presentation by Vikas Vaishnav Autodesk
UX STRAT Online 2021 Presentation by Vikas Vaishnav AutodeskUX STRAT
 
Prototipos de Baixa e Alta Fidelidade
Prototipos de Baixa e Alta FidelidadePrototipos de Baixa e Alta Fidelidade
Prototipos de Baixa e Alta FidelidadeErico Fileno
 
Hunting Unicorns - What makes an effective UX Professional
Hunting Unicorns - What makes an effective UX ProfessionalHunting Unicorns - What makes an effective UX Professional
Hunting Unicorns - What makes an effective UX ProfessionalPatrick Neeman
 
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
 
Human-Centred Design for development
Human-Centred Design for developmentHuman-Centred Design for development
Human-Centred Design for developmentKagonya Awori
 
Measure Customer Experience of Your OutSystems Web and Mobile Applications
Measure Customer Experience of Your OutSystems Web and Mobile ApplicationsMeasure Customer Experience of Your OutSystems Web and Mobile Applications
Measure Customer Experience of Your OutSystems Web and Mobile ApplicationsOutSystems
 
Analysis In Agile: It's More than Just User Stories
Analysis In Agile: It's More than Just User StoriesAnalysis In Agile: It's More than Just User Stories
Analysis In Agile: It's More than Just User StoriesKent McDonald
 
Extending OutSystems with Javascript
Extending OutSystems with JavascriptExtending OutSystems with Javascript
Extending OutSystems with JavascriptRitaDias72
 

What's hot (20)

Brand Restart 2023: Vojtěch Prokeš - Strategie malé značky
Brand Restart 2023: Vojtěch Prokeš - Strategie malé značkyBrand Restart 2023: Vojtěch Prokeš - Strategie malé značky
Brand Restart 2023: Vojtěch Prokeš - Strategie malé značky
 
User Testing for Accessibility
User Testing for AccessibilityUser Testing for Accessibility
User Testing for Accessibility
 
The Future of Everything
The Future of EverythingThe Future of Everything
The Future of Everything
 
Impact of Poor Basic Skills: The Employer Perspective
Impact of Poor Basic Skills: The Employer PerspectiveImpact of Poor Basic Skills: The Employer Perspective
Impact of Poor Basic Skills: The Employer Perspective
 
10 Insightful Quotes On Designing A Better Customer Experience
10 Insightful Quotes On Designing A Better Customer Experience10 Insightful Quotes On Designing A Better Customer Experience
10 Insightful Quotes On Designing A Better Customer Experience
 
Project Restart 2023: Petr Bernadič - Jak komunikovat projekt, za který zákaz...
Project Restart 2023: Petr Bernadič - Jak komunikovat projekt, za který zákaz...Project Restart 2023: Petr Bernadič - Jak komunikovat projekt, za který zákaz...
Project Restart 2023: Petr Bernadič - Jak komunikovat projekt, za který zákaz...
 
Lean Startup - Como Validar Ideias de Negocios
Lean Startup - Como Validar Ideias de NegociosLean Startup - Como Validar Ideias de Negocios
Lean Startup - Como Validar Ideias de Negocios
 
How to Build a Product Roadmap by Walmart Senior Product Manager
How to Build a Product Roadmap by Walmart Senior Product ManagerHow to Build a Product Roadmap by Walmart Senior Product Manager
How to Build a Product Roadmap by Walmart Senior Product Manager
 
Brand Restart 2023: Radovan Andrej Grezo - Maskoti v reklame - absolútne nevy...
Brand Restart 2023: Radovan Andrej Grezo - Maskoti v reklame - absolútne nevy...Brand Restart 2023: Radovan Andrej Grezo - Maskoti v reklame - absolútne nevy...
Brand Restart 2023: Radovan Andrej Grezo - Maskoti v reklame - absolútne nevy...
 
Project Restart 2023: Jirka Bachel - Jak zrychlit softwarový vývoj a validaci...
Project Restart 2023: Jirka Bachel - Jak zrychlit softwarový vývoj a validaci...Project Restart 2023: Jirka Bachel - Jak zrychlit softwarový vývoj a validaci...
Project Restart 2023: Jirka Bachel - Jak zrychlit softwarový vývoj a validaci...
 
Brand Restart 2023: Martin Bernátek a David Dvořáček - Huňatý branding pro Ov...
Brand Restart 2023: Martin Bernátek a David Dvořáček - Huňatý branding pro Ov...Brand Restart 2023: Martin Bernátek a David Dvořáček - Huňatý branding pro Ov...
Brand Restart 2023: Martin Bernátek a David Dvořáček - Huňatý branding pro Ov...
 
UX STRAT Online 2021 Presentation by Vikas Vaishnav Autodesk
UX STRAT Online 2021 Presentation by Vikas Vaishnav AutodeskUX STRAT Online 2021 Presentation by Vikas Vaishnav Autodesk
UX STRAT Online 2021 Presentation by Vikas Vaishnav Autodesk
 
Marty Cagan - Customer Inspired; Technology Enabled
Marty Cagan - Customer Inspired; Technology EnabledMarty Cagan - Customer Inspired; Technology Enabled
Marty Cagan - Customer Inspired; Technology Enabled
 
Prototipos de Baixa e Alta Fidelidade
Prototipos de Baixa e Alta FidelidadePrototipos de Baixa e Alta Fidelidade
Prototipos de Baixa e Alta Fidelidade
 
Hunting Unicorns - What makes an effective UX Professional
Hunting Unicorns - What makes an effective UX ProfessionalHunting Unicorns - What makes an effective UX Professional
Hunting Unicorns - What makes an effective UX Professional
 
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
 
Human-Centred Design for development
Human-Centred Design for developmentHuman-Centred Design for development
Human-Centred Design for development
 
Measure Customer Experience of Your OutSystems Web and Mobile Applications
Measure Customer Experience of Your OutSystems Web and Mobile ApplicationsMeasure Customer Experience of Your OutSystems Web and Mobile Applications
Measure Customer Experience of Your OutSystems Web and Mobile Applications
 
Analysis In Agile: It's More than Just User Stories
Analysis In Agile: It's More than Just User StoriesAnalysis In Agile: It's More than Just User Stories
Analysis In Agile: It's More than Just User Stories
 
Extending OutSystems with Javascript
Extending OutSystems with JavascriptExtending OutSystems with Javascript
Extending OutSystems with Javascript
 

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 in Action – principles, practices and real-world application
BDD in Action – principles, practices and real-world applicationBDD in Action – principles, practices and real-world application
BDD in Action – principles, practices and real-world applicationJohn Ferguson Smart Limited
 
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
 
BDD in Action - Automated Web Testing with WebDriver and Serenity
BDD in Action - Automated Web Testing with WebDriver and SerenityBDD in Action - Automated Web Testing with WebDriver and Serenity
BDD in Action - Automated Web Testing with WebDriver and SerenityJohn Ferguson Smart Limited
 
BDD presentation
BDD presentationBDD presentation
BDD presentationtemebele
 
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.
 

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 in Action – principles, practices and real-world application
BDD in Action – principles, practices and real-world applicationBDD in Action – principles, practices and real-world application
BDD in Action – principles, practices and real-world application
 
BDD 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
 
BDD in Action - Automated Web Testing with WebDriver and Serenity
BDD in Action - Automated Web Testing with WebDriver and SerenityBDD in Action - Automated Web Testing with WebDriver and Serenity
BDD in Action - Automated Web Testing with WebDriver and Serenity
 
BDD presentation
BDD presentationBDD presentation
BDD presentation
 
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
 

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
 
BDD & Cucumber
BDD & CucumberBDD & Cucumber
BDD & Cucumber
 
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
 

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

Recently uploaded

WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure serviceWhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure servicePooja Nehwal
 
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...shyamraj55
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationRidwan Fadjar
 
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking MenDelhi Call girls
 
Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Allon Mureinik
 
Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machineInstall Stable Diffusion in windows machine
Install Stable Diffusion in windows machinePadma Pradeep
 
Pigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking MenDelhi Call girls
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreternaman860154
 
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Alan Dix
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slidespraypatel2
 
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
 
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | DelhiFULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhisoniya singh
 
Artificial intelligence in the post-deep learning era
Artificial intelligence in the post-deep learning eraArtificial intelligence in the post-deep learning era
Artificial intelligence in the post-deep learning eraDeakin University
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationMichael W. Hawkins
 
Pigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping ElbowsPigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping ElbowsPigging Solutions
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxMalak Abu Hammad
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountPuma Security, LLC
 

Recently uploaded (20)

WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure serviceWhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
 
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 Presentation
 
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men
 
Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)
 
Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machineInstall Stable Diffusion in windows machine
Install Stable Diffusion in windows machine
 
Pigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food Manufacturing
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreter
 
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slides
 
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
 
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | DelhiFULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
 
Artificial intelligence in the post-deep learning era
Artificial intelligence in the post-deep learning eraArtificial intelligence in the post-deep learning era
Artificial intelligence in the post-deep learning era
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
Pigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping ElbowsPigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping Elbows
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptx
 
The transition to renewables in India.pdf
The transition to renewables in India.pdfThe transition to renewables in India.pdf
The transition to renewables in India.pdf
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path Mount
 

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