SlideShare a Scribd company logo
1 of 29
@gil_zilberfeld
Introduction to BDD
@gil_zilberfeld
Hello!
I AM GIL ZILBERFELD
www.gilzilberfeld.com
www.everydayunittesting.com
@gil_zilberfeld
@gil_zilberfeld
A history lesson…
@gil_zilberfeld
eXtreme Programming
◉User stories
◉System metaphor (and DDD’s ubiquitous
language)
◉Customer is always available
◉Unit-test first
◉Acceptance tests
@gil_zilberfeld
What are the benefits of test-first?
@gil_zilberfeld
@gil_zilberfeld
The Three Amigos
George Dinwiddie
Developer
Tester
Business analyst
@gil_zilberfeld
Behavior driven development
Dan North
AKA:
Acceptance test DD
Specification by example
Example DD
@gil_zilberfeld
It’s all about the conversations!
@gil_zilberfeld
@gil_zilberfeld
Where do stories come from?
@gil_zilberfeld
Give me an example!
@gil_zilberfeld
Ambiguous requirements
The Movie
@gil_zilberfeld
BDD/ATDD frameworks
Fit
Fitnesse
JBehave
Cucumber
SpecFlow
@gil_zilberfeld
The Gherkin language
@gil_zilberfeld
Steps
Scenarios
Narratives/Features
@gil_zilberfeld
Scenario
Given I’m driving a Formula 1 car
When I start accelerating from 0km/h
Then I get to 100km/h in 2 seconds
@gil_zilberfeld
The Story (or Narrative)
In order to drive faster
As a driver
I want a better engine
@gil_zilberfeld
What is the acceptance criteria?
@gil_zilberfeld
How’s this story?
In order to approve a transaction
As a user
I want to press the “Approve” button
@gil_zilberfeld
And this one?
In order to transfer money
As a user
I want to login to the app
@gil_zilberfeld
BDD/ATDD frameworks
Fit
Fitnesse
Concordion
JBehave
Cucumber
SpecFlow
@gil_zilberfeld
Demo
@gil_zilberfeld
Good user stories
Independent
Negotiable
Valuable
Estimable
Small
Testable Bill Wake, 2003
@gil_zilberfeld
Good user stories
Independent
Negotiable
Valuable
Estimable
Small
Testable
@gil_zilberfeld
Ron Jeffries said
As an author of the Agile Manifesto
I want that stupid story format to go away
So that people can get to the essence of user
stories
@gil_zilberfeld
Better user stories
◉ Drop the template
◉ Tell the story in a sentence
◉ Anchor it
◉ Unveil the motive
@gil_zilberfeld
Better user stories
◉ Imagine the demo
◉ Give context
◉ The general rules
◉ Exception to the rules
@gil_zilberfeld
Thanks!
ANY QUESTIONS?
You can find me at:
@gil_zilberfeld
http://www.GilZilberfeld.com
http://www.EverydayUnitTesting.com

More Related Content

Viewers also liked

off grid solar product UNIVPO
off grid solar product UNIVPOoff grid solar product UNIVPO
off grid solar product UNIVPOMark Robinson
 
DNA of Automation - Sudeep Somani
DNA of Automation - Sudeep SomaniDNA of Automation - Sudeep Somani
DNA of Automation - Sudeep SomaniThoughtworks
 
Guia de estudio saso ii
Guia de estudio saso iiGuia de estudio saso ii
Guia de estudio saso iiReyner Leon
 
Hashtags & Retweets: Using Twitter to aid Community, Communication and Casual...
Hashtags & Retweets: Using Twitter to aid Community, Communication and Casual...Hashtags & Retweets: Using Twitter to aid Community, Communication and Casual...
Hashtags & Retweets: Using Twitter to aid Community, Communication and Casual...Peter Reed
 
Social Network Analysis Of Intangibles
Social Network Analysis Of IntangiblesSocial Network Analysis Of Intangibles
Social Network Analysis Of IntangiblesAli Anani, PhD
 
Snaky assumptions a creative approach
Snaky assumptions a creative approachSnaky assumptions a creative approach
Snaky assumptions a creative approachAli Anani, PhD
 
Getting the fish (ball) in the net
Getting the fish (ball) in the netGetting the fish (ball) in the net
Getting the fish (ball) in the netAli Anani, PhD
 
気象庁発表の地震情報
気象庁発表の地震情報気象庁発表の地震情報
気象庁発表の地震情報Kentaro Ikehata
 
Faerie Glen Photos from Isle of Skye, Scotland - It's like visiting The Shire!
Faerie Glen Photos from Isle of Skye, Scotland - It's like visiting The Shire!Faerie Glen Photos from Isle of Skye, Scotland - It's like visiting The Shire!
Faerie Glen Photos from Isle of Skye, Scotland - It's like visiting The Shire!Ancestral Chef
 
8th grade founding father project[1]
8th grade founding father project[1]8th grade founding father project[1]
8th grade founding father project[1]tpoynton
 
AMA INA you two are role models for everyone who believes in eternal love, fo...
AMA INA you two are role models for everyone who believes in eternal love, fo...AMA INA you two are role models for everyone who believes in eternal love, fo...
AMA INA you two are role models for everyone who believes in eternal love, fo...Mar Mae AG
 
JS非同期処理のいま
JS非同期処理のいまJS非同期処理のいま
JS非同期処理のいまMasakazu Muraoka
 
Skadoosh ! Lessons in Self Management from Kung Fu Panda
Skadoosh !  Lessons in Self Management from Kung Fu PandaSkadoosh !  Lessons in Self Management from Kung Fu Panda
Skadoosh ! Lessons in Self Management from Kung Fu PandaMuder Chiba
 
Grafico diario del dax perfomance index para el 09 12-2011
Grafico diario del dax perfomance index para el 09 12-2011Grafico diario del dax perfomance index para el 09 12-2011
Grafico diario del dax perfomance index para el 09 12-2011Experiencia Trading
 

Viewers also liked (18)

off grid solar product UNIVPO
off grid solar product UNIVPOoff grid solar product UNIVPO
off grid solar product UNIVPO
 
DNA of Automation - Sudeep Somani
DNA of Automation - Sudeep SomaniDNA of Automation - Sudeep Somani
DNA of Automation - Sudeep Somani
 
Guia de estudio saso ii
Guia de estudio saso iiGuia de estudio saso ii
Guia de estudio saso ii
 
Hashtags & Retweets: Using Twitter to aid Community, Communication and Casual...
Hashtags & Retweets: Using Twitter to aid Community, Communication and Casual...Hashtags & Retweets: Using Twitter to aid Community, Communication and Casual...
Hashtags & Retweets: Using Twitter to aid Community, Communication and Casual...
 
Social Network Analysis Of Intangibles
Social Network Analysis Of IntangiblesSocial Network Analysis Of Intangibles
Social Network Analysis Of Intangibles
 
Snaky assumptions a creative approach
Snaky assumptions a creative approachSnaky assumptions a creative approach
Snaky assumptions a creative approach
 
Getting the fish (ball) in the net
Getting the fish (ball) in the netGetting the fish (ball) in the net
Getting the fish (ball) in the net
 
気象庁発表の地震情報
気象庁発表の地震情報気象庁発表の地震情報
気象庁発表の地震情報
 
Faerie Glen Photos from Isle of Skye, Scotland - It's like visiting The Shire!
Faerie Glen Photos from Isle of Skye, Scotland - It's like visiting The Shire!Faerie Glen Photos from Isle of Skye, Scotland - It's like visiting The Shire!
Faerie Glen Photos from Isle of Skye, Scotland - It's like visiting The Shire!
 
Simple School Lunch Ideas
Simple School Lunch IdeasSimple School Lunch Ideas
Simple School Lunch Ideas
 
PRywatki na Wykładzinie bez krawatów vol.1 - Po co dane w komunikacji w socia...
PRywatki na Wykładzinie bez krawatów vol.1 - Po co dane w komunikacji w socia...PRywatki na Wykładzinie bez krawatów vol.1 - Po co dane w komunikacji w socia...
PRywatki na Wykładzinie bez krawatów vol.1 - Po co dane w komunikacji w socia...
 
8th grade founding father project[1]
8th grade founding father project[1]8th grade founding father project[1]
8th grade founding father project[1]
 
AMA INA you two are role models for everyone who believes in eternal love, fo...
AMA INA you two are role models for everyone who believes in eternal love, fo...AMA INA you two are role models for everyone who believes in eternal love, fo...
AMA INA you two are role models for everyone who believes in eternal love, fo...
 
JS非同期処理のいま
JS非同期処理のいまJS非同期処理のいま
JS非同期処理のいま
 
Skadoosh ! Lessons in Self Management from Kung Fu Panda
Skadoosh !  Lessons in Self Management from Kung Fu PandaSkadoosh !  Lessons in Self Management from Kung Fu Panda
Skadoosh ! Lessons in Self Management from Kung Fu Panda
 
Grafico diario del dax perfomance index para el 09 12-2011
Grafico diario del dax perfomance index para el 09 12-2011Grafico diario del dax perfomance index para el 09 12-2011
Grafico diario del dax perfomance index para el 09 12-2011
 
Zaragoza turismo 234
Zaragoza turismo 234Zaragoza turismo 234
Zaragoza turismo 234
 
Xsi unity pipeline
Xsi unity pipelineXsi unity pipeline
Xsi unity pipeline
 

Similar to Introduction to BDD

The fastest BDD crash-course ever
The fastest BDD crash-course everThe fastest BDD crash-course ever
The fastest BDD crash-course everGil Zilberfeld
 
Zen and the Art of Test Maintenance
Zen and the Art of Test MaintenanceZen and the Art of Test Maintenance
Zen and the Art of Test MaintenanceGil Zilberfeld
 
TDD For The Rest Of Us
TDD For The Rest Of UsTDD For The Rest Of Us
TDD For The Rest Of UsTEST Huddle
 
The Empire Tests First
The Empire Tests FirstThe Empire Tests First
The Empire Tests FirstGil Zilberfeld
 
Real Life Test Maintenance
Real Life Test MaintenanceReal Life Test Maintenance
Real Life Test MaintenanceGil Zilberfeld
 
TDD for the rest of us...
TDD for the rest of us...TDD for the rest of us...
TDD for the rest of us...Gil Zilberfeld
 
Zen And the Art of Test Maintenance Presentation
Zen And the Art of Test Maintenance PresentationZen And the Art of Test Maintenance Presentation
Zen And the Art of Test Maintenance PresentationGil Zilberfeld
 
Continuous Learning - The New ALM
Continuous Learning - The New ALMContinuous Learning - The New ALM
Continuous Learning - The New ALMGil Zilberfeld
 
Better Estimation and Planning
Better Estimation and PlanningBetter Estimation and Planning
Better Estimation and PlanningGil Zilberfeld
 
Zen and the art of Test Maintenance - #TestIL Meetup Tel Aviv
Zen and the art of Test Maintenance - #TestIL Meetup Tel AvivZen and the art of Test Maintenance - #TestIL Meetup Tel Aviv
Zen and the art of Test Maintenance - #TestIL Meetup Tel AvivGil Zilberfeld
 
Rebooting Application Life Cycle Management
Rebooting Application Life Cycle ManagementRebooting Application Life Cycle Management
Rebooting Application Life Cycle ManagementGil Zilberfeld
 
7 Steps for writing your first test
7 Steps for writing your first test7 Steps for writing your first test
7 Steps for writing your first testGil Zilberfeld
 
Getting started with TDD & BDD in C++
Getting started with TDD & BDD in C++Getting started with TDD & BDD in C++
Getting started with TDD & BDD in C++James Kirkbride
 
Better Estimation and Planning
Better Estimation and PlanningBetter Estimation and Planning
Better Estimation and PlanningGil Zilberfeld
 

Similar to Introduction to BDD (20)

TDD patterns
TDD patternsTDD patterns
TDD patterns
 
The fastest BDD crash-course ever
The fastest BDD crash-course everThe fastest BDD crash-course ever
The fastest BDD crash-course ever
 
Zen and the Art of Test Maintenance
Zen and the Art of Test MaintenanceZen and the Art of Test Maintenance
Zen and the Art of Test Maintenance
 
TDD For The Rest Of Us
TDD For The Rest Of UsTDD For The Rest Of Us
TDD For The Rest Of Us
 
The Empire Tests First
The Empire Tests FirstThe Empire Tests First
The Empire Tests First
 
Real Life Test Maintenance
Real Life Test MaintenanceReal Life Test Maintenance
Real Life Test Maintenance
 
TDD for the rest of us...
TDD for the rest of us...TDD for the rest of us...
TDD for the rest of us...
 
A Horror Story
A Horror StoryA Horror Story
A Horror Story
 
Zen And the Art of Test Maintenance Presentation
Zen And the Art of Test Maintenance PresentationZen And the Art of Test Maintenance Presentation
Zen And the Art of Test Maintenance Presentation
 
Spaceship TDD Style
Spaceship TDD StyleSpaceship TDD Style
Spaceship TDD Style
 
Continuous Learning - The New ALM
Continuous Learning - The New ALMContinuous Learning - The New ALM
Continuous Learning - The New ALM
 
Better Estimation and Planning
Better Estimation and PlanningBetter Estimation and Planning
Better Estimation and Planning
 
ROI is Dead!
ROI is Dead!ROI is Dead!
ROI is Dead!
 
Testing economics101
Testing economics101Testing economics101
Testing economics101
 
Zen and the art of Test Maintenance - #TestIL Meetup Tel Aviv
Zen and the art of Test Maintenance - #TestIL Meetup Tel AvivZen and the art of Test Maintenance - #TestIL Meetup Tel Aviv
Zen and the art of Test Maintenance - #TestIL Meetup Tel Aviv
 
Rebooting Application Life Cycle Management
Rebooting Application Life Cycle ManagementRebooting Application Life Cycle Management
Rebooting Application Life Cycle Management
 
TDD for Testers
TDD for TestersTDD for Testers
TDD for Testers
 
7 Steps for writing your first test
7 Steps for writing your first test7 Steps for writing your first test
7 Steps for writing your first test
 
Getting started with TDD & BDD in C++
Getting started with TDD & BDD in C++Getting started with TDD & BDD in C++
Getting started with TDD & BDD in C++
 
Better Estimation and Planning
Better Estimation and PlanningBetter Estimation and Planning
Better Estimation and Planning
 

More from Gil Zilberfeld

Dirty tests and How To Clean Them
Dirty tests and How To Clean ThemDirty tests and How To Clean Them
Dirty tests and How To Clean ThemGil Zilberfeld
 
Unit testing for Grown-ups
Unit testing for Grown-upsUnit testing for Grown-ups
Unit testing for Grown-upsGil Zilberfeld
 
Spock: It's Only Logical
Spock: It's Only LogicalSpock: It's Only Logical
Spock: It's Only LogicalGil Zilberfeld
 
Dependency injection and Why It Matters to Testers
Dependency injection and Why It Matters to TestersDependency injection and Why It Matters to Testers
Dependency injection and Why It Matters to TestersGil Zilberfeld
 
Spring Testing Features
Spring Testing FeaturesSpring Testing Features
Spring Testing FeaturesGil Zilberfeld
 
The Whole Story - Mapping, Slicing and Figuring things out
The Whole Story - Mapping, Slicing and Figuring things outThe Whole Story - Mapping, Slicing and Figuring things out
The Whole Story - Mapping, Slicing and Figuring things outGil Zilberfeld
 
Playing games remotely
Playing games remotelyPlaying games remotely
Playing games remotelyGil Zilberfeld
 
An agile introduction to DevOps
An agile introduction to DevOpsAn agile introduction to DevOps
An agile introduction to DevOpsGil Zilberfeld
 
Interview with the Vampire
Interview with the VampireInterview with the Vampire
Interview with the VampireGil Zilberfeld
 
What is wrong with agile
What is wrong with agileWhat is wrong with agile
What is wrong with agileGil Zilberfeld
 

More from Gil Zilberfeld (14)

Dirty tests and How To Clean Them
Dirty tests and How To Clean ThemDirty tests and How To Clean Them
Dirty tests and How To Clean Them
 
Unit testing for Grown-ups
Unit testing for Grown-upsUnit testing for Grown-ups
Unit testing for Grown-ups
 
Spock: It's Only Logical
Spock: It's Only LogicalSpock: It's Only Logical
Spock: It's Only Logical
 
Dependency injection and Why It Matters to Testers
Dependency injection and Why It Matters to TestersDependency injection and Why It Matters to Testers
Dependency injection and Why It Matters to Testers
 
Spring Testing Features
Spring Testing FeaturesSpring Testing Features
Spring Testing Features
 
The Untold User Story
The Untold User StoryThe Untold User Story
The Untold User Story
 
The Whole Story - Mapping, Slicing and Figuring things out
The Whole Story - Mapping, Slicing and Figuring things outThe Whole Story - Mapping, Slicing and Figuring things out
The Whole Story - Mapping, Slicing and Figuring things out
 
Agile Intro to DevOps
Agile Intro to DevOpsAgile Intro to DevOps
Agile Intro to DevOps
 
Playing games remotely
Playing games remotelyPlaying games remotely
Playing games remotely
 
An agile introduction to DevOps
An agile introduction to DevOpsAn agile introduction to DevOps
An agile introduction to DevOps
 
Work
WorkWork
Work
 
Interview with the Vampire
Interview with the VampireInterview with the Vampire
Interview with the Vampire
 
Simple
SimpleSimple
Simple
 
What is wrong with agile
What is wrong with agileWhat is wrong with agile
What is wrong with agile
 

Recently uploaded

办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样
办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样
办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样umasea
 
SuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte Germany
SuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte GermanySuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte Germany
SuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte GermanyChristoph Pohl
 
Xen Safety Embedded OSS Summit April 2024 v4.pdf
Xen Safety Embedded OSS Summit April 2024 v4.pdfXen Safety Embedded OSS Summit April 2024 v4.pdf
Xen Safety Embedded OSS Summit April 2024 v4.pdfStefano Stabellini
 
PREDICTING RIVER WATER QUALITY ppt presentation
PREDICTING  RIVER  WATER QUALITY  ppt presentationPREDICTING  RIVER  WATER QUALITY  ppt presentation
PREDICTING RIVER WATER QUALITY ppt presentationvaddepallysandeep122
 
Odoo 14 - eLearning Module In Odoo 14 Enterprise
Odoo 14 - eLearning Module In Odoo 14 EnterpriseOdoo 14 - eLearning Module In Odoo 14 Enterprise
Odoo 14 - eLearning Module In Odoo 14 Enterprisepreethippts
 
Unveiling Design Patterns: A Visual Guide with UML Diagrams
Unveiling Design Patterns: A Visual Guide with UML DiagramsUnveiling Design Patterns: A Visual Guide with UML Diagrams
Unveiling Design Patterns: A Visual Guide with UML DiagramsAhmed Mohamed
 
What are the key points to focus on before starting to learn ETL Development....
What are the key points to focus on before starting to learn ETL Development....What are the key points to focus on before starting to learn ETL Development....
What are the key points to focus on before starting to learn ETL Development....kzayra69
 
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...stazi3110
 
Buds n Tech IT Solutions: Top-Notch Web Services in Noida
Buds n Tech IT Solutions: Top-Notch Web Services in NoidaBuds n Tech IT Solutions: Top-Notch Web Services in Noida
Buds n Tech IT Solutions: Top-Notch Web Services in Noidabntitsolutionsrishis
 
CRM Contender Series: HubSpot vs. Salesforce
CRM Contender Series: HubSpot vs. SalesforceCRM Contender Series: HubSpot vs. Salesforce
CRM Contender Series: HubSpot vs. SalesforceBrainSell Technologies
 
Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...
Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...
Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...OnePlan Solutions
 
Software Project Health Check: Best Practices and Techniques for Your Product...
Software Project Health Check: Best Practices and Techniques for Your Product...Software Project Health Check: Best Practices and Techniques for Your Product...
Software Project Health Check: Best Practices and Techniques for Your Product...Velvetech LLC
 
Balasore Best It Company|| Top 10 IT Company || Balasore Software company Odisha
Balasore Best It Company|| Top 10 IT Company || Balasore Software company OdishaBalasore Best It Company|| Top 10 IT Company || Balasore Software company Odisha
Balasore Best It Company|| Top 10 IT Company || Balasore Software company Odishasmiwainfosol
 
英国UN学位证,北安普顿大学毕业证书1:1制作
英国UN学位证,北安普顿大学毕业证书1:1制作英国UN学位证,北安普顿大学毕业证书1:1制作
英国UN学位证,北安普顿大学毕业证书1:1制作qr0udbr0
 
Implementing Zero Trust strategy with Azure
Implementing Zero Trust strategy with AzureImplementing Zero Trust strategy with Azure
Implementing Zero Trust strategy with AzureDinusha Kumarasiri
 
How to submit a standout Adobe Champion Application
How to submit a standout Adobe Champion ApplicationHow to submit a standout Adobe Champion Application
How to submit a standout Adobe Champion ApplicationBradBedford3
 
Cloud Data Center Network Construction - IEEE
Cloud Data Center Network Construction - IEEECloud Data Center Network Construction - IEEE
Cloud Data Center Network Construction - IEEEVICTOR MAESTRE RAMIREZ
 
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed DataAlluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed DataAlluxio, Inc.
 
React Server Component in Next.js by Hanief Utama
React Server Component in Next.js by Hanief UtamaReact Server Component in Next.js by Hanief Utama
React Server Component in Next.js by Hanief UtamaHanief Utama
 

Recently uploaded (20)

办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样
办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样
办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样
 
Hot Sexy call girls in Patel Nagar🔝 9953056974 🔝 escort Service
Hot Sexy call girls in Patel Nagar🔝 9953056974 🔝 escort ServiceHot Sexy call girls in Patel Nagar🔝 9953056974 🔝 escort Service
Hot Sexy call girls in Patel Nagar🔝 9953056974 🔝 escort Service
 
SuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte Germany
SuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte GermanySuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte Germany
SuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte Germany
 
Xen Safety Embedded OSS Summit April 2024 v4.pdf
Xen Safety Embedded OSS Summit April 2024 v4.pdfXen Safety Embedded OSS Summit April 2024 v4.pdf
Xen Safety Embedded OSS Summit April 2024 v4.pdf
 
PREDICTING RIVER WATER QUALITY ppt presentation
PREDICTING  RIVER  WATER QUALITY  ppt presentationPREDICTING  RIVER  WATER QUALITY  ppt presentation
PREDICTING RIVER WATER QUALITY ppt presentation
 
Odoo 14 - eLearning Module In Odoo 14 Enterprise
Odoo 14 - eLearning Module In Odoo 14 EnterpriseOdoo 14 - eLearning Module In Odoo 14 Enterprise
Odoo 14 - eLearning Module In Odoo 14 Enterprise
 
Unveiling Design Patterns: A Visual Guide with UML Diagrams
Unveiling Design Patterns: A Visual Guide with UML DiagramsUnveiling Design Patterns: A Visual Guide with UML Diagrams
Unveiling Design Patterns: A Visual Guide with UML Diagrams
 
What are the key points to focus on before starting to learn ETL Development....
What are the key points to focus on before starting to learn ETL Development....What are the key points to focus on before starting to learn ETL Development....
What are the key points to focus on before starting to learn ETL Development....
 
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
 
Buds n Tech IT Solutions: Top-Notch Web Services in Noida
Buds n Tech IT Solutions: Top-Notch Web Services in NoidaBuds n Tech IT Solutions: Top-Notch Web Services in Noida
Buds n Tech IT Solutions: Top-Notch Web Services in Noida
 
CRM Contender Series: HubSpot vs. Salesforce
CRM Contender Series: HubSpot vs. SalesforceCRM Contender Series: HubSpot vs. Salesforce
CRM Contender Series: HubSpot vs. Salesforce
 
Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...
Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...
Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...
 
Software Project Health Check: Best Practices and Techniques for Your Product...
Software Project Health Check: Best Practices and Techniques for Your Product...Software Project Health Check: Best Practices and Techniques for Your Product...
Software Project Health Check: Best Practices and Techniques for Your Product...
 
Balasore Best It Company|| Top 10 IT Company || Balasore Software company Odisha
Balasore Best It Company|| Top 10 IT Company || Balasore Software company OdishaBalasore Best It Company|| Top 10 IT Company || Balasore Software company Odisha
Balasore Best It Company|| Top 10 IT Company || Balasore Software company Odisha
 
英国UN学位证,北安普顿大学毕业证书1:1制作
英国UN学位证,北安普顿大学毕业证书1:1制作英国UN学位证,北安普顿大学毕业证书1:1制作
英国UN学位证,北安普顿大学毕业证书1:1制作
 
Implementing Zero Trust strategy with Azure
Implementing Zero Trust strategy with AzureImplementing Zero Trust strategy with Azure
Implementing Zero Trust strategy with Azure
 
How to submit a standout Adobe Champion Application
How to submit a standout Adobe Champion ApplicationHow to submit a standout Adobe Champion Application
How to submit a standout Adobe Champion Application
 
Cloud Data Center Network Construction - IEEE
Cloud Data Center Network Construction - IEEECloud Data Center Network Construction - IEEE
Cloud Data Center Network Construction - IEEE
 
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed DataAlluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
 
React Server Component in Next.js by Hanief Utama
React Server Component in Next.js by Hanief UtamaReact Server Component in Next.js by Hanief Utama
React Server Component in Next.js by Hanief Utama
 

Introduction to BDD

Editor's Notes

  1. Good narrative, but cannot be tested
  2. Drop the template.  Like everything, once we have a hammer we start looking for nails. Sometimes the template doesn't fit. That's ok. In that case... Tell the story in a sentence. Maybe two. When people are presented with a new idea, don't make them read heaps of documents. Sum it up, so they can grasp it quickly. Details can come later. And make sure it's a story, with a beginning, middle and an end. People remember and consume stories better. You can even sing it if you want, that would make it more memorable. Next you want to... Anchor it. You know the "It's like Uber, but for...?" pitch form every start up  is using? Everybody knows Uber, so they have something to reference the new information. In story-land it's how the story fits into the application. "It's like the log-in story from last week, but with extra validation". Or, "Once we've done with the simple path, we can add more informed algorithms". You're showing where we were, where we're going, and where this story fits. Then it gets interesting. Unveil the motive. Why are we developing this anyway? Who is going to benefit and how? The user may be able to go through registration quicker, and that means more happy users. Or we, the company, gets more money from the dog accessories suppliers, if we're able to connect our users based on their level of pet appreciation. There's a reason we're developing the feature, and it really helps to know the final goal. In some cases, we can debunk it, and choose something better to do with our time. Once people understand the motive... Make a show. How does it look like? You have prepared some mock-up screens, or sketches, or drawing of a flow, or anything that has more meat, right? Ah, you need to prepare for this, young Padawan. It will help, not just with explaining it, but it's a also the setting for... Give it context.Now that things begin to materialize, it's time for an example. You can present the flow on those mocked screens. Or how a different application might be using our new API. How future features will be using our back-end  calculation results. Context is awesome! We can use it to direct the team towards... Generalize. Do we start with the example and just implement it? Should we write a more extensive data validation layer, and then test it? Somewhere in between? An example is not enough for development, because we need to know where to stop. And we need to know how to test. This really helps with defining the acceptance criteria. The final step is... Draw a line in the sand. Some things do not fall into our general rule.  VIPs do not need to enter their credentials again. Anonymous users can use the applications, but will go through a separate flow we'll define later. Anything that does not fall within our boundaries, should be presented. Otherwise, we would implement it, and test it, and we will be surprised. And we don't like surprises.
  3. Drop the template.  Like everything, once we have a hammer we start looking for nails. Sometimes the template doesn't fit. That's ok. In that case... Tell the story in a sentence. Maybe two. When people are presented with a new idea, don't make them read heaps of documents. Sum it up, so they can grasp it quickly. Details can come later. And make sure it's a story, with a beginning, middle and an end. People remember and consume stories better. You can even sing it if you want, that would make it more memorable. Next you want to... Anchor it. You know the "It's like Uber, but for...?" pitch form every start up  is using? Everybody knows Uber, so they have something to reference the new information. In story-land it's how the story fits into the application. "It's like the log-in story from last week, but with extra validation". Or, "Once we've done with the simple path, we can add more informed algorithms". You're showing where we were, where we're going, and where this story fits. Then it gets interesting. Unveil the motive. Why are we developing this anyway? Who is going to benefit and how? The user may be able to go through registration quicker, and that means more happy users. Or we, the company, gets more money from the dog accessories suppliers, if we're able to connect our users based on their level of pet appreciation. There's a reason we're developing the feature, and it really helps to know the final goal. In some cases, we can debunk it, and choose something better to do with our time. Once people understand the motive... Make a show. How does it look like? You have prepared some mock-up screens, or sketches, or drawing of a flow, or anything that has more meat, right? Ah, you need to prepare for this, young Padawan. It will help, not just with explaining it, but it's a also the setting for... Give it context.Now that things begin to materialize, it's time for an example. You can present the flow on those mocked screens. Or how a different application might be using our new API. How future features will be using our back-end  calculation results. Context is awesome! We can use it to direct the team towards... Generalize. Do we start with the example and just implement it? Should we write a more extensive data validation layer, and then test it? Somewhere in between? An example is not enough for development, because we need to know where to stop. And we need to know how to test. This really helps with defining the acceptance criteria. The final step is... Draw a line in the sand. Some things do not fall into our general rule.  VIPs do not need to enter their credentials again. Anonymous users can use the applications, but will go through a separate flow we'll define later. Anything that does not fall within our boundaries, should be presented. Otherwise, we would implement it, and test it, and we will be surprised. And we don't like surprises.