SlideShare una empresa de Scribd logo
1 de 147
Descargar para leer sin conexión
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

Más contenido relacionado

La actualidad más candente

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
 
Specification-By-Example with Gherkin
Specification-By-Example with GherkinSpecification-By-Example with Gherkin
Specification-By-Example with GherkinChristian Hassa
 
Ddd reboot (english version)
Ddd reboot (english version)Ddd reboot (english version)
Ddd reboot (english version)Thomas Pierrain
 
Introduction to jira
Introduction to jiraIntroduction to jira
Introduction to jiraXpand IT
 
Refactoring legacy code driven by tests - ENG
Refactoring legacy code driven by tests - ENGRefactoring legacy code driven by tests - ENG
Refactoring legacy code driven by tests - ENGLuca Minudel
 
Workshop event storming
Workshop event stormingWorkshop event storming
Workshop event stormingJef Claes
 
User Story Splitting.pptx
User Story Splitting.pptxUser Story Splitting.pptx
User Story Splitting.pptxPaul Boos
 
Technical... User Stories?!
Technical... User Stories?!Technical... User Stories?!
Technical... User Stories?!Katarzyna Mrowca
 
JIRA Introduction | JIRA Tutorial | Atlassian JIRA Training | H2kinfosys
JIRA Introduction | JIRA Tutorial | Atlassian JIRA Training | H2kinfosysJIRA Introduction | JIRA Tutorial | Atlassian JIRA Training | H2kinfosys
JIRA Introduction | JIRA Tutorial | Atlassian JIRA Training | H2kinfosysH2Kinfosys
 
Grokking Techtalk: Problem solving for sw engineers
Grokking Techtalk: Problem solving for sw engineersGrokking Techtalk: Problem solving for sw engineers
Grokking Techtalk: Problem solving for sw engineers9diov
 
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
 
Domain Driven Design (Ultra) Distilled
Domain Driven Design (Ultra) DistilledDomain Driven Design (Ultra) Distilled
Domain Driven Design (Ultra) DistilledNicola Costantino
 
Introduction to Behaviour Driven Development
Introduction to Behaviour Driven DevelopmentIntroduction to Behaviour Driven Development
Introduction to Behaviour Driven DevelopmentChristophe Achouiantz
 
Mini curso de testes ágeis
Mini curso de testes ágeisMini curso de testes ágeis
Mini curso de testes ágeisQualister
 
Reactjs workshop
Reactjs workshop Reactjs workshop
Reactjs workshop Ahmed rebai
 

La actualidad más candente (20)

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
 
Go Jira
Go JiraGo Jira
Go Jira
 
Specification-By-Example with Gherkin
Specification-By-Example with GherkinSpecification-By-Example with Gherkin
Specification-By-Example with Gherkin
 
Ddd reboot (english version)
Ddd reboot (english version)Ddd reboot (english version)
Ddd reboot (english version)
 
Introduction to jira
Introduction to jiraIntroduction to jira
Introduction to jira
 
Refactoring legacy code driven by tests - ENG
Refactoring legacy code driven by tests - ENGRefactoring legacy code driven by tests - ENG
Refactoring legacy code driven by tests - ENG
 
Workshop event storming
Workshop event stormingWorkshop event storming
Workshop event storming
 
User Story Splitting.pptx
User Story Splitting.pptxUser Story Splitting.pptx
User Story Splitting.pptx
 
Technical... User Stories?!
Technical... User Stories?!Technical... User Stories?!
Technical... User Stories?!
 
JIRA Introduction | JIRA Tutorial | Atlassian JIRA Training | H2kinfosys
JIRA Introduction | JIRA Tutorial | Atlassian JIRA Training | H2kinfosysJIRA Introduction | JIRA Tutorial | Atlassian JIRA Training | H2kinfosys
JIRA Introduction | JIRA Tutorial | Atlassian JIRA Training | H2kinfosys
 
Use case+2-0
Use case+2-0Use case+2-0
Use case+2-0
 
Grokking Techtalk: Problem solving for sw engineers
Grokking Techtalk: Problem solving for sw engineersGrokking Techtalk: Problem solving for sw engineers
Grokking Techtalk: Problem solving for sw engineers
 
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...
 
CQRS in 4 steps
CQRS in 4 stepsCQRS in 4 steps
CQRS in 4 steps
 
BDD & Cucumber
BDD & CucumberBDD & Cucumber
BDD & Cucumber
 
Domain Driven Design (Ultra) Distilled
Domain Driven Design (Ultra) DistilledDomain Driven Design (Ultra) Distilled
Domain Driven Design (Ultra) Distilled
 
Introduction to Behaviour Driven Development
Introduction to Behaviour Driven DevelopmentIntroduction to Behaviour Driven Development
Introduction to Behaviour Driven Development
 
Mini curso de testes ágeis
Mini curso de testes ágeisMini curso de testes ágeis
Mini curso de testes ágeis
 
Reactjs workshop
Reactjs workshop Reactjs workshop
Reactjs workshop
 
Agile Methodology ppt
Agile Methodology pptAgile Methodology ppt
Agile Methodology ppt
 

Destacado

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

Destacado (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
 
BDD & Behat
BDD & BehatBDD & Behat
BDD & Behat
 
BDD & Rspec
BDD & Rspec BDD & Rspec
BDD & Rspec
 
Martin Odersky: What's next for Scala
Martin Odersky: What's next for ScalaMartin Odersky: What's next for Scala
Martin Odersky: What's next for Scala
 
Behavior Driven Development: An Overview
Behavior Driven Development:  An OverviewBehavior Driven Development:  An Overview
Behavior Driven Development: An Overview
 
BDD: What's in it for me?
BDD: What's in it for me?BDD: What's in it for me?
BDD: What's in it for me?
 
BDD: There's more to it than you think
BDD: There's more to it than you thinkBDD: There's more to it than you think
BDD: There's more to it than you think
 

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

Más 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
 
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
 

Más de John Ferguson Smart Limited (13)

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

Último

Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Drew Madelung
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘RTylerCroy
 
Tech Trends Report 2024 Future Today Institute.pdf
Tech Trends Report 2024 Future Today Institute.pdfTech Trends Report 2024 Future Today Institute.pdf
Tech Trends Report 2024 Future Today Institute.pdfhans926745
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Scriptwesley chun
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)Gabriella Davis
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)wesley chun
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonetsnaman860154
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processorsdebabhi2
 
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
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerThousandEyes
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationRadu Cotescu
 
GenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdfGenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdflior mazor
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfsudhanshuwaghmare1
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdfhans926745
 
What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?Antenna Manufacturer Coco
 
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
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century educationjfdjdjcjdnsjd
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...Neo4j
 
Evaluating the top large language models.pdf
Evaluating the top large language models.pdfEvaluating the top large language models.pdf
Evaluating the top large language models.pdfChristopherTHyatt
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Servicegiselly40
 

Último (20)

Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
Tech Trends Report 2024 Future Today Institute.pdf
Tech Trends Report 2024 Future Today Institute.pdfTech Trends Report 2024 Future Today Institute.pdf
Tech Trends Report 2024 Future Today Institute.pdf
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonets
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 
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
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 
GenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdfGenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdf
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf
 
What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?
 
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
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century education
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
 
Evaluating the top large language models.pdf
Evaluating the top large language models.pdfEvaluating the top large language models.pdf
Evaluating the top large language models.pdf
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Service
 

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