SlideShare a Scribd company logo
1 of 24
Agile Continuous Improvement
Lunch & Learn
Adventures in
SpecFlow
BDD in Data Hub Configuration
(a.k.a. SEC)
© Copyright 2011 ADP, Inc. Proprietary and Confidential Information2
Agenda - 1 hour
• [10 min] - Introduction to BDD & Executable
Specifications
• [05 min] - Overview of .NET BDD Tools
• [05 min] - Introducing SpecFlow
• [20 min] - DEMO / Hands on
• [05 min] - Benefits
• [05 min] - Problems & Pro Tips
• [05 min] - BDD vs. Unit Tests
• [05 min] – Conclusion & further study
© Copyright 2011 ADP, Inc. Proprietary and Confidential Information3
Agenda - 1 hour
*NO FREE PIZZA*
© Copyright 2011 ADP, Inc. Proprietary and Confidential Information4
Introduction to BDD &
Executable
Specifications
© Copyright 2011 ADP, Inc. Proprietary and Confidential Information5
The Question
What does the
Customer want?
© Copyright 2011 ADP, Inc. Proprietary and Confidential Information6
Not (only) about testing
1. User Story Acceptance Criteria
2. Shared understanding about outcomes
3. Removes implicit expectations (assumptions)
4. Reduces friction in the team
5. What does our solution do and not do?
© Copyright 2011 ADP, Inc. Proprietary and Confidential Information7
* Driven Development
 “Behavior Driven Development” – Dan North
 “Specification by Example”
 “Executable Specifications”
 “Acceptance Test Driven Development” (ATDD)
 “Test Driven Development”
© Copyright 2011 ADP, Inc. Proprietary and Confidential Information8
Overview of .NET BDD
Tools
(there are a lot)
© Copyright 2011 ADP, Inc. Proprietary and Confidential Information9
.NET BDD Frameworks & Libraries
 SpecFlow – Cucumber for .NET
 NSpec
 MSpec
 TestStack.BDDify
 NBehave
 “Vanila” NUnit/MSTest/xUnit.net
© Copyright 2011 ADP, Inc. Proprietary and Confidential Information10
Explore what’s out there
Have a play and figure out which is best for your team
and organisation
SpecFlow is one of many options
A new awesome framework might be released tomorrow
© Copyright 2011 ADP, Inc. Proprietary and Confidential Information11
Introducing SpecFlow
© Copyright 2011 ADP, Inc. Proprietary and Confidential Information12
DEMO
CODE
© Copyright 2011 ADP, Inc. Proprietary and Confidential Information13
Benefits
© Copyright 2011 ADP, Inc. Proprietary and Confidential Information14
Benefits
 Human readable (Gherkin - DSL)
 Build Context Incrementally
 Specification & Documentation
 Early discovery of assumptions in acceptance criteria
 Early discovery of technical assumptions
 Intermediary (Gherkin) between User Story and Code
© Copyright 2011 ADP, Inc. Proprietary and Confidential Information15
Problems & Pro Tips
© Copyright 2011 ADP, Inc. Proprietary and Confidential Information16
Problems & Pro Tips
 SpecFlow comes from Cucumber (Ruby)
 Sharing state between Steps
 Test organisation & structure
 Test naming
 Mock or end-to-end?
 Maintenance
© Copyright 2011 ADP, Inc. Proprietary and Confidential Information17
BDD and Unit Tests
© Copyright 2011 ADP, Inc. Proprietary and Confidential Information18
BDD and Unit Tests
 Do SpecFlow Specs replace unit tests?
 SpecFlow more suited for larger End-to-end tests
 Unit Tests for Devs, BDDS for SCRUM Team &
Stackholders
 SpecFlow generates NUnit tests automatically
 DEMO
© Copyright 2011 ADP, Inc. Proprietary and Confidential Information19
Conclusion
© Copyright 2011 ADP, Inc. Proprietary and Confidential Information20
Conclusion
Sam’s 3 step guide to success!
1. Capture the User Story Acceptance Criteria as
Gherkins
2. Implement SpecFlow Specs and iterate with changes
to Gherkins [Acceptance Criteria WILL change]
3. You get detailed and correct acceptance criteria and
automated regression tests. Everybody wins.
© Copyright 2011 ADP, Inc. Proprietary and Confidential Information21
Conclusion
 Was it worth it?
 Is anyone going to read our Gherkin Specs?
 The effort (money) needed to create and maintain the
Specs needs to taken into account
 The Team needs to be agile & adopt Gherkin and “Spec
first mentality”
 Change in thinking & culture
© Copyright 2011 ADP, Inc. Proprietary and Confidential Information22
Further Study
 http://stackoverflow.com/questions/307895/what-is-the-
most-mature-bdd-framework-for-net
 http://www.specflow.org/resources/
 Specification by Example [Gojko Adzic, 2011]
 The Cucumber Book [Matt Waynne, 2012]
 The Art of Unit Testing [Roy Osherove, 2009]
© Copyright 2011 ADP, Inc. Proprietary and Confidential Information23
Questions?
BE AGILE
© Copyright 2011 ADP, Inc. Proprietary and Confidential Information24
Thank you

More Related Content

What's hot

Automated Acceptance Tests in .NET
Automated Acceptance Tests in .NETAutomated Acceptance Tests in .NET
Automated Acceptance Tests in .NETWyn B. Van Devanter
 
Behavior Driven Development with SpecFlow
Behavior Driven Development with SpecFlowBehavior Driven Development with SpecFlow
Behavior Driven Development with SpecFlowRachid Kherrazi
 
BDD in Action – principles, practices and real-world application
BDD in Action – principles, practices and real-world applicationBDD in Action – principles, practices and real-world application
BDD in Action – principles, practices and real-world applicationJohn Ferguson Smart Limited
 
Selenium + Specflow
Selenium + SpecflowSelenium + Specflow
Selenium + Specflowcromwellryan
 
Unit Testing in Action - C#, NUnit, and Moq
Unit Testing in Action - C#, NUnit, and MoqUnit Testing in Action - C#, NUnit, and Moq
Unit Testing in Action - C#, NUnit, and MoqXPDays
 
Win at life with unit testing
Win at life with unit testingWin at life with unit testing
Win at life with unit testingmarkstory
 
FluentSelenium Presentation Code Camp09
FluentSelenium Presentation Code Camp09FluentSelenium Presentation Code Camp09
FluentSelenium Presentation Code Camp09Pyxis Technologies
 
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
 
TDD vs. ATDD - What, Why, Which, When & Where
TDD vs. ATDD - What, Why, Which, When & WhereTDD vs. ATDD - What, Why, Which, When & Where
TDD vs. ATDD - What, Why, Which, When & WhereDaniel Davis
 
Bye Bye Cowboy Coder Days! (Legacy Code & TDD)
Bye Bye Cowboy Coder Days! (Legacy Code & TDD)Bye Bye Cowboy Coder Days! (Legacy Code & TDD)
Bye Bye Cowboy Coder Days! (Legacy Code & TDD)Kaunas Java User Group
 
Test Driven Development - Overview and Adoption
Test Driven Development - Overview and AdoptionTest Driven Development - Overview and Adoption
Test Driven Development - Overview and AdoptionPyxis Technologies
 
BDD in Action - Automated Web Testing with WebDriver and Serenity
BDD in Action - Automated Web Testing with WebDriver and SerenityBDD in Action - Automated Web Testing with WebDriver and Serenity
BDD in Action - Automated Web Testing with WebDriver and SerenityJohn Ferguson Smart Limited
 
PHPConf.asia 2016 - BDD with Behat for Beginners
PHPConf.asia 2016 - BDD with Behat for BeginnersPHPConf.asia 2016 - BDD with Behat for Beginners
PHPConf.asia 2016 - BDD with Behat for BeginnersAdam Englander
 
Maturing your path toward DevOps with Continuous Testing
Maturing your path toward DevOps with Continuous TestingMaturing your path toward DevOps with Continuous Testing
Maturing your path toward DevOps with Continuous TestingPerfecto Mobile
 
Agile and ATDD the perfect couple
Agile and ATDD the perfect coupleAgile and ATDD the perfect couple
Agile and ATDD the perfect coupleStephen Tucker
 
Tech talks #1- Unit testing and TDD
Tech talks #1- Unit testing and TDDTech talks #1- Unit testing and TDD
Tech talks #1- Unit testing and TDDDUONG Trong Tan
 

What's hot (20)

Automated Acceptance Tests in .NET
Automated Acceptance Tests in .NETAutomated Acceptance Tests in .NET
Automated Acceptance Tests in .NET
 
Behavior Driven Development with SpecFlow
Behavior Driven Development with SpecFlowBehavior Driven Development with SpecFlow
Behavior Driven Development with SpecFlow
 
BDD for APIs
BDD for APIsBDD for APIs
BDD for APIs
 
BDD in Action – principles, practices and real-world application
BDD in Action – principles, practices and real-world applicationBDD in Action – principles, practices and real-world application
BDD in Action – principles, practices and real-world application
 
Selenium + Specflow
Selenium + SpecflowSelenium + Specflow
Selenium + Specflow
 
Help! My Legacy Application is Unmaintainable!
Help! My Legacy Application is Unmaintainable!Help! My Legacy Application is Unmaintainable!
Help! My Legacy Application is Unmaintainable!
 
Unit Testing in Action - C#, NUnit, and Moq
Unit Testing in Action - C#, NUnit, and MoqUnit Testing in Action - C#, NUnit, and Moq
Unit Testing in Action - C#, NUnit, and Moq
 
Win at life with unit testing
Win at life with unit testingWin at life with unit testing
Win at life with unit testing
 
BDD-Driven Microservices
BDD-Driven MicroservicesBDD-Driven Microservices
BDD-Driven Microservices
 
FluentSelenium Presentation Code Camp09
FluentSelenium Presentation Code Camp09FluentSelenium Presentation Code Camp09
FluentSelenium Presentation Code Camp09
 
ATDD in practice
ATDD in practiceATDD in practice
ATDD in practice
 
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
 
TDD vs. ATDD - What, Why, Which, When & Where
TDD vs. ATDD - What, Why, Which, When & WhereTDD vs. ATDD - What, Why, Which, When & Where
TDD vs. ATDD - What, Why, Which, When & Where
 
Bye Bye Cowboy Coder Days! (Legacy Code & TDD)
Bye Bye Cowboy Coder Days! (Legacy Code & TDD)Bye Bye Cowboy Coder Days! (Legacy Code & TDD)
Bye Bye Cowboy Coder Days! (Legacy Code & TDD)
 
Test Driven Development - Overview and Adoption
Test Driven Development - Overview and AdoptionTest Driven Development - Overview and Adoption
Test Driven Development - Overview and Adoption
 
BDD in Action - Automated Web Testing with WebDriver and Serenity
BDD in Action - Automated Web Testing with WebDriver and SerenityBDD in Action - Automated Web Testing with WebDriver and Serenity
BDD in Action - Automated Web Testing with WebDriver and Serenity
 
PHPConf.asia 2016 - BDD with Behat for Beginners
PHPConf.asia 2016 - BDD with Behat for BeginnersPHPConf.asia 2016 - BDD with Behat for Beginners
PHPConf.asia 2016 - BDD with Behat for Beginners
 
Maturing your path toward DevOps with Continuous Testing
Maturing your path toward DevOps with Continuous TestingMaturing your path toward DevOps with Continuous Testing
Maturing your path toward DevOps with Continuous Testing
 
Agile and ATDD the perfect couple
Agile and ATDD the perfect coupleAgile and ATDD the perfect couple
Agile and ATDD the perfect couple
 
Tech talks #1- Unit testing and TDD
Tech talks #1- Unit testing and TDDTech talks #1- Unit testing and TDD
Tech talks #1- Unit testing and TDD
 

Viewers also liked

ADP ReThink 2016: All Roads Lead to Transformation
ADP ReThink 2016: All Roads Lead to TransformationADP ReThink 2016: All Roads Lead to Transformation
ADP ReThink 2016: All Roads Lead to TransformationADP, LLC
 
ADP ReThink 2016: A Trusted Partner
ADP ReThink 2016: A Trusted Partner ADP ReThink 2016: A Trusted Partner
ADP ReThink 2016: A Trusted Partner ADP, LLC
 
Specflow: Specification by Example
Specflow: Specification by ExampleSpecflow: Specification by Example
Specflow: Specification by ExampleSam Leach
 
Behavior Driven Development with Cucumber
Behavior Driven Development with CucumberBehavior Driven Development with Cucumber
Behavior Driven Development with CucumberBrandon Keepers
 
Writing Software not Code with Cucumber
Writing Software not Code with CucumberWriting Software not Code with Cucumber
Writing Software not Code with CucumberBen Mabey
 

Viewers also liked (7)

ADP ReThink 2016: All Roads Lead to Transformation
ADP ReThink 2016: All Roads Lead to TransformationADP ReThink 2016: All Roads Lead to Transformation
ADP ReThink 2016: All Roads Lead to Transformation
 
BDD with JBehave
BDD with JBehaveBDD with JBehave
BDD with JBehave
 
ADP ReThink 2016: A Trusted Partner
ADP ReThink 2016: A Trusted Partner ADP ReThink 2016: A Trusted Partner
ADP ReThink 2016: A Trusted Partner
 
Specflow: Specification by Example
Specflow: Specification by ExampleSpecflow: Specification by Example
Specflow: Specification by Example
 
BDD using JBehave
BDD using JBehaveBDD using JBehave
BDD using JBehave
 
Behavior Driven Development with Cucumber
Behavior Driven Development with CucumberBehavior Driven Development with Cucumber
Behavior Driven Development with Cucumber
 
Writing Software not Code with Cucumber
Writing Software not Code with CucumberWriting Software not Code with Cucumber
Writing Software not Code with Cucumber
 

Similar to SpecFlow Executable Specifications

Best Practices for Upgrading your JD Edwards Software from Oracle
Best Practices for Upgrading your JD Edwards Software from OracleBest Practices for Upgrading your JD Edwards Software from Oracle
Best Practices for Upgrading your JD Edwards Software from OracleUBC Corporation
 
Return material authorization advance replacement programs apr 27, suite wo...
Return material authorization   advance replacement programs apr 27, suite wo...Return material authorization   advance replacement programs apr 27, suite wo...
Return material authorization advance replacement programs apr 27, suite wo...Bala Ramachandran
 
From Outlawed to Outstanding
From Outlawed to OutstandingFrom Outlawed to Outstanding
From Outlawed to OutstandingLewandog, Inc,
 
"Implementing Eye Tracking for Medical, Automotive and Headset Applications,"...
"Implementing Eye Tracking for Medical, Automotive and Headset Applications,"..."Implementing Eye Tracking for Medical, Automotive and Headset Applications,"...
"Implementing Eye Tracking for Medical, Automotive and Headset Applications,"...Edge AI and Vision Alliance
 
Oracle Openworld Presentation with Paul Kent (SAS) on Big Data Appliance and ...
Oracle Openworld Presentation with Paul Kent (SAS) on Big Data Appliance and ...Oracle Openworld Presentation with Paul Kent (SAS) on Big Data Appliance and ...
Oracle Openworld Presentation with Paul Kent (SAS) on Big Data Appliance and ...jdijcks
 
PeopleTools 8.52 - Five reasons to upgrade
PeopleTools 8.52 - Five reasons to upgrade PeopleTools 8.52 - Five reasons to upgrade
PeopleTools 8.52 - Five reasons to upgrade hbiroglu
 
FlexPod-Performance-Fall2014-slideshare
FlexPod-Performance-Fall2014-slideshareFlexPod-Performance-Fall2014-slideshare
FlexPod-Performance-Fall2014-slideshareMichael Harding
 
Intel NFVi Enabling Kit Demo/Lab
Intel NFVi Enabling Kit Demo/LabIntel NFVi Enabling Kit Demo/Lab
Intel NFVi Enabling Kit Demo/LabMichelle Holley
 
SPCA2013 - Building a SharePoint Factory
SPCA2013 - Building a SharePoint FactorySPCA2013 - Building a SharePoint Factory
SPCA2013 - Building a SharePoint FactoryNCCOMMS
 
Praktische handvatten voor een private cloud implementatie
Praktische handvatten voor een private cloud implementatiePraktische handvatten voor een private cloud implementatie
Praktische handvatten voor een private cloud implementatieProact Netherlands B.V.
 
Create your Big Data vision and Hadoop-ify your data warehouse
Create your Big Data vision and Hadoop-ify your data warehouseCreate your Big Data vision and Hadoop-ify your data warehouse
Create your Big Data vision and Hadoop-ify your data warehouseJeff Kelly
 
Profiling of Engagers and Converters with Audience Analytics and Look-alike M...
Profiling of Engagers and Converters with Audience Analytics and Look-alike M...Profiling of Engagers and Converters with Audience Analytics and Look-alike M...
Profiling of Engagers and Converters with Audience Analytics and Look-alike M...Datacratic
 
Partner Webcast – Oracle Public Cloud for ISVs: Migrating Java EE and ADF app...
Partner Webcast – Oracle Public Cloud for ISVs: Migrating Java EE and ADF app...Partner Webcast – Oracle Public Cloud for ISVs: Migrating Java EE and ADF app...
Partner Webcast – Oracle Public Cloud for ISVs: Migrating Java EE and ADF app...Thanos TP
 
OOW15 - Planning Your Upgrade to Oracle E-Business Suite 12.2
OOW15 - Planning Your Upgrade to Oracle E-Business Suite 12.2OOW15 - Planning Your Upgrade to Oracle E-Business Suite 12.2
OOW15 - Planning Your Upgrade to Oracle E-Business Suite 12.2vasuballa
 
Con8493 simplified ui 2013 tailoring dubois_evers_teter_o'broin_uob_partner
Con8493 simplified ui 2013 tailoring dubois_evers_teter_o'broin_uob_partnerCon8493 simplified ui 2013 tailoring dubois_evers_teter_o'broin_uob_partner
Con8493 simplified ui 2013 tailoring dubois_evers_teter_o'broin_uob_partnerBerry Clemens
 
Evolution of Big Data at Intel - Crawl, Walk and Run Approach
Evolution of Big Data at Intel - Crawl, Walk and Run ApproachEvolution of Big Data at Intel - Crawl, Walk and Run Approach
Evolution of Big Data at Intel - Crawl, Walk and Run ApproachDataWorks Summit
 
Tectonic Summit 2016: It's Go Time
Tectonic Summit 2016: It's Go Time Tectonic Summit 2016: It's Go Time
Tectonic Summit 2016: It's Go Time CoreOS
 

Similar to SpecFlow Executable Specifications (20)

Best Practices for Upgrading your JD Edwards Software from Oracle
Best Practices for Upgrading your JD Edwards Software from OracleBest Practices for Upgrading your JD Edwards Software from Oracle
Best Practices for Upgrading your JD Edwards Software from Oracle
 
Return material authorization advance replacement programs apr 27, suite wo...
Return material authorization   advance replacement programs apr 27, suite wo...Return material authorization   advance replacement programs apr 27, suite wo...
Return material authorization advance replacement programs apr 27, suite wo...
 
From Outlawed to Outstanding
From Outlawed to OutstandingFrom Outlawed to Outstanding
From Outlawed to Outstanding
 
Big Data: Myths and Realities
Big Data: Myths and RealitiesBig Data: Myths and Realities
Big Data: Myths and Realities
 
"Implementing Eye Tracking for Medical, Automotive and Headset Applications,"...
"Implementing Eye Tracking for Medical, Automotive and Headset Applications,"..."Implementing Eye Tracking for Medical, Automotive and Headset Applications,"...
"Implementing Eye Tracking for Medical, Automotive and Headset Applications,"...
 
Oracle Openworld Presentation with Paul Kent (SAS) on Big Data Appliance and ...
Oracle Openworld Presentation with Paul Kent (SAS) on Big Data Appliance and ...Oracle Openworld Presentation with Paul Kent (SAS) on Big Data Appliance and ...
Oracle Openworld Presentation with Paul Kent (SAS) on Big Data Appliance and ...
 
Supply chain analytics
Supply chain analyticsSupply chain analytics
Supply chain analytics
 
PeopleTools 8.52 - Five reasons to upgrade
PeopleTools 8.52 - Five reasons to upgrade PeopleTools 8.52 - Five reasons to upgrade
PeopleTools 8.52 - Five reasons to upgrade
 
FlexPod-Performance-Fall2014-slideshare
FlexPod-Performance-Fall2014-slideshareFlexPod-Performance-Fall2014-slideshare
FlexPod-Performance-Fall2014-slideshare
 
Intel NFVi Enabling Kit Demo/Lab
Intel NFVi Enabling Kit Demo/LabIntel NFVi Enabling Kit Demo/Lab
Intel NFVi Enabling Kit Demo/Lab
 
SPCA2013 - Building a SharePoint Factory
SPCA2013 - Building a SharePoint FactorySPCA2013 - Building a SharePoint Factory
SPCA2013 - Building a SharePoint Factory
 
SB Support System
SB Support SystemSB Support System
SB Support System
 
Praktische handvatten voor een private cloud implementatie
Praktische handvatten voor een private cloud implementatiePraktische handvatten voor een private cloud implementatie
Praktische handvatten voor een private cloud implementatie
 
Create your Big Data vision and Hadoop-ify your data warehouse
Create your Big Data vision and Hadoop-ify your data warehouseCreate your Big Data vision and Hadoop-ify your data warehouse
Create your Big Data vision and Hadoop-ify your data warehouse
 
Profiling of Engagers and Converters with Audience Analytics and Look-alike M...
Profiling of Engagers and Converters with Audience Analytics and Look-alike M...Profiling of Engagers and Converters with Audience Analytics and Look-alike M...
Profiling of Engagers and Converters with Audience Analytics and Look-alike M...
 
Partner Webcast – Oracle Public Cloud for ISVs: Migrating Java EE and ADF app...
Partner Webcast – Oracle Public Cloud for ISVs: Migrating Java EE and ADF app...Partner Webcast – Oracle Public Cloud for ISVs: Migrating Java EE and ADF app...
Partner Webcast – Oracle Public Cloud for ISVs: Migrating Java EE and ADF app...
 
OOW15 - Planning Your Upgrade to Oracle E-Business Suite 12.2
OOW15 - Planning Your Upgrade to Oracle E-Business Suite 12.2OOW15 - Planning Your Upgrade to Oracle E-Business Suite 12.2
OOW15 - Planning Your Upgrade to Oracle E-Business Suite 12.2
 
Con8493 simplified ui 2013 tailoring dubois_evers_teter_o'broin_uob_partner
Con8493 simplified ui 2013 tailoring dubois_evers_teter_o'broin_uob_partnerCon8493 simplified ui 2013 tailoring dubois_evers_teter_o'broin_uob_partner
Con8493 simplified ui 2013 tailoring dubois_evers_teter_o'broin_uob_partner
 
Evolution of Big Data at Intel - Crawl, Walk and Run Approach
Evolution of Big Data at Intel - Crawl, Walk and Run ApproachEvolution of Big Data at Intel - Crawl, Walk and Run Approach
Evolution of Big Data at Intel - Crawl, Walk and Run Approach
 
Tectonic Summit 2016: It's Go Time
Tectonic Summit 2016: It's Go Time Tectonic Summit 2016: It's Go Time
Tectonic Summit 2016: It's Go Time
 

Recently uploaded

%in Rustenburg+277-882-255-28 abortion pills for sale in Rustenburg
%in Rustenburg+277-882-255-28 abortion pills for sale in Rustenburg%in Rustenburg+277-882-255-28 abortion pills for sale in Rustenburg
%in Rustenburg+277-882-255-28 abortion pills for sale in Rustenburgmasabamasaba
 
Devoxx UK 2024 - Going serverless with Quarkus, GraalVM native images and AWS...
Devoxx UK 2024 - Going serverless with Quarkus, GraalVM native images and AWS...Devoxx UK 2024 - Going serverless with Quarkus, GraalVM native images and AWS...
Devoxx UK 2024 - Going serverless with Quarkus, GraalVM native images and AWS...Bert Jan Schrijver
 
The title is not connected to what is inside
The title is not connected to what is insideThe title is not connected to what is inside
The title is not connected to what is insideshinachiaurasa2
 
What Goes Wrong with Language Definitions and How to Improve the Situation
What Goes Wrong with Language Definitions and How to Improve the SituationWhat Goes Wrong with Language Definitions and How to Improve the Situation
What Goes Wrong with Language Definitions and How to Improve the SituationJuha-Pekka Tolvanen
 
Announcing Codolex 2.0 from GDK Software
Announcing Codolex 2.0 from GDK SoftwareAnnouncing Codolex 2.0 from GDK Software
Announcing Codolex 2.0 from GDK SoftwareJim McKeeth
 
%in Benoni+277-882-255-28 abortion pills for sale in Benoni
%in Benoni+277-882-255-28 abortion pills for sale in Benoni%in Benoni+277-882-255-28 abortion pills for sale in Benoni
%in Benoni+277-882-255-28 abortion pills for sale in Benonimasabamasaba
 
%in Soweto+277-882-255-28 abortion pills for sale in soweto
%in Soweto+277-882-255-28 abortion pills for sale in soweto%in Soweto+277-882-255-28 abortion pills for sale in soweto
%in Soweto+277-882-255-28 abortion pills for sale in sowetomasabamasaba
 
%in tembisa+277-882-255-28 abortion pills for sale in tembisa
%in tembisa+277-882-255-28 abortion pills for sale in tembisa%in tembisa+277-882-255-28 abortion pills for sale in tembisa
%in tembisa+277-882-255-28 abortion pills for sale in tembisamasabamasaba
 
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...panagenda
 
MarTech Trend 2024 Book : Marketing Technology Trends (2024 Edition) How Data...
MarTech Trend 2024 Book : Marketing Technology Trends (2024 Edition) How Data...MarTech Trend 2024 Book : Marketing Technology Trends (2024 Edition) How Data...
MarTech Trend 2024 Book : Marketing Technology Trends (2024 Edition) How Data...Jittipong Loespradit
 
WSO2CON2024 - It's time to go Platformless
WSO2CON2024 - It's time to go PlatformlessWSO2CON2024 - It's time to go Platformless
WSO2CON2024 - It's time to go PlatformlessWSO2
 
Love witchcraft +27768521739 Binding love spell in Sandy Springs, GA |psychic...
Love witchcraft +27768521739 Binding love spell in Sandy Springs, GA |psychic...Love witchcraft +27768521739 Binding love spell in Sandy Springs, GA |psychic...
Love witchcraft +27768521739 Binding love spell in Sandy Springs, GA |psychic...chiefasafspells
 
8257 interfacing 2 in microprocessor for btech students
8257 interfacing 2 in microprocessor for btech students8257 interfacing 2 in microprocessor for btech students
8257 interfacing 2 in microprocessor for btech studentsHimanshiGarg82
 
AI & Machine Learning Presentation Template
AI & Machine Learning Presentation TemplateAI & Machine Learning Presentation Template
AI & Machine Learning Presentation TemplatePresentation.STUDIO
 
%in Midrand+277-882-255-28 abortion pills for sale in midrand
%in Midrand+277-882-255-28 abortion pills for sale in midrand%in Midrand+277-882-255-28 abortion pills for sale in midrand
%in Midrand+277-882-255-28 abortion pills for sale in midrandmasabamasaba
 
WSO2CON 2024 - Building the API First Enterprise – Running an API Program, fr...
WSO2CON 2024 - Building the API First Enterprise – Running an API Program, fr...WSO2CON 2024 - Building the API First Enterprise – Running an API Program, fr...
WSO2CON 2024 - Building the API First Enterprise – Running an API Program, fr...WSO2
 
Direct Style Effect Systems - The Print[A] Example - A Comprehension Aid
Direct Style Effect Systems -The Print[A] Example- A Comprehension AidDirect Style Effect Systems -The Print[A] Example- A Comprehension Aid
Direct Style Effect Systems - The Print[A] Example - A Comprehension AidPhilip Schwarz
 
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...Health
 
Artyushina_Guest lecture_YorkU CS May 2024.pptx
Artyushina_Guest lecture_YorkU CS May 2024.pptxArtyushina_Guest lecture_YorkU CS May 2024.pptx
Artyushina_Guest lecture_YorkU CS May 2024.pptxAnnaArtyushina1
 

Recently uploaded (20)

%in Rustenburg+277-882-255-28 abortion pills for sale in Rustenburg
%in Rustenburg+277-882-255-28 abortion pills for sale in Rustenburg%in Rustenburg+277-882-255-28 abortion pills for sale in Rustenburg
%in Rustenburg+277-882-255-28 abortion pills for sale in Rustenburg
 
Devoxx UK 2024 - Going serverless with Quarkus, GraalVM native images and AWS...
Devoxx UK 2024 - Going serverless with Quarkus, GraalVM native images and AWS...Devoxx UK 2024 - Going serverless with Quarkus, GraalVM native images and AWS...
Devoxx UK 2024 - Going serverless with Quarkus, GraalVM native images and AWS...
 
The title is not connected to what is inside
The title is not connected to what is insideThe title is not connected to what is inside
The title is not connected to what is inside
 
Microsoft AI Transformation Partner Playbook.pdf
Microsoft AI Transformation Partner Playbook.pdfMicrosoft AI Transformation Partner Playbook.pdf
Microsoft AI Transformation Partner Playbook.pdf
 
What Goes Wrong with Language Definitions and How to Improve the Situation
What Goes Wrong with Language Definitions and How to Improve the SituationWhat Goes Wrong with Language Definitions and How to Improve the Situation
What Goes Wrong with Language Definitions and How to Improve the Situation
 
Announcing Codolex 2.0 from GDK Software
Announcing Codolex 2.0 from GDK SoftwareAnnouncing Codolex 2.0 from GDK Software
Announcing Codolex 2.0 from GDK Software
 
%in Benoni+277-882-255-28 abortion pills for sale in Benoni
%in Benoni+277-882-255-28 abortion pills for sale in Benoni%in Benoni+277-882-255-28 abortion pills for sale in Benoni
%in Benoni+277-882-255-28 abortion pills for sale in Benoni
 
%in Soweto+277-882-255-28 abortion pills for sale in soweto
%in Soweto+277-882-255-28 abortion pills for sale in soweto%in Soweto+277-882-255-28 abortion pills for sale in soweto
%in Soweto+277-882-255-28 abortion pills for sale in soweto
 
%in tembisa+277-882-255-28 abortion pills for sale in tembisa
%in tembisa+277-882-255-28 abortion pills for sale in tembisa%in tembisa+277-882-255-28 abortion pills for sale in tembisa
%in tembisa+277-882-255-28 abortion pills for sale in tembisa
 
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
 
MarTech Trend 2024 Book : Marketing Technology Trends (2024 Edition) How Data...
MarTech Trend 2024 Book : Marketing Technology Trends (2024 Edition) How Data...MarTech Trend 2024 Book : Marketing Technology Trends (2024 Edition) How Data...
MarTech Trend 2024 Book : Marketing Technology Trends (2024 Edition) How Data...
 
WSO2CON2024 - It's time to go Platformless
WSO2CON2024 - It's time to go PlatformlessWSO2CON2024 - It's time to go Platformless
WSO2CON2024 - It's time to go Platformless
 
Love witchcraft +27768521739 Binding love spell in Sandy Springs, GA |psychic...
Love witchcraft +27768521739 Binding love spell in Sandy Springs, GA |psychic...Love witchcraft +27768521739 Binding love spell in Sandy Springs, GA |psychic...
Love witchcraft +27768521739 Binding love spell in Sandy Springs, GA |psychic...
 
8257 interfacing 2 in microprocessor for btech students
8257 interfacing 2 in microprocessor for btech students8257 interfacing 2 in microprocessor for btech students
8257 interfacing 2 in microprocessor for btech students
 
AI & Machine Learning Presentation Template
AI & Machine Learning Presentation TemplateAI & Machine Learning Presentation Template
AI & Machine Learning Presentation Template
 
%in Midrand+277-882-255-28 abortion pills for sale in midrand
%in Midrand+277-882-255-28 abortion pills for sale in midrand%in Midrand+277-882-255-28 abortion pills for sale in midrand
%in Midrand+277-882-255-28 abortion pills for sale in midrand
 
WSO2CON 2024 - Building the API First Enterprise – Running an API Program, fr...
WSO2CON 2024 - Building the API First Enterprise – Running an API Program, fr...WSO2CON 2024 - Building the API First Enterprise – Running an API Program, fr...
WSO2CON 2024 - Building the API First Enterprise – Running an API Program, fr...
 
Direct Style Effect Systems - The Print[A] Example - A Comprehension Aid
Direct Style Effect Systems -The Print[A] Example- A Comprehension AidDirect Style Effect Systems -The Print[A] Example- A Comprehension Aid
Direct Style Effect Systems - The Print[A] Example - A Comprehension Aid
 
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
 
Artyushina_Guest lecture_YorkU CS May 2024.pptx
Artyushina_Guest lecture_YorkU CS May 2024.pptxArtyushina_Guest lecture_YorkU CS May 2024.pptx
Artyushina_Guest lecture_YorkU CS May 2024.pptx
 

SpecFlow Executable Specifications

  • 1. Agile Continuous Improvement Lunch & Learn Adventures in SpecFlow BDD in Data Hub Configuration (a.k.a. SEC)
  • 2. © Copyright 2011 ADP, Inc. Proprietary and Confidential Information2 Agenda - 1 hour • [10 min] - Introduction to BDD & Executable Specifications • [05 min] - Overview of .NET BDD Tools • [05 min] - Introducing SpecFlow • [20 min] - DEMO / Hands on • [05 min] - Benefits • [05 min] - Problems & Pro Tips • [05 min] - BDD vs. Unit Tests • [05 min] – Conclusion & further study
  • 3. © Copyright 2011 ADP, Inc. Proprietary and Confidential Information3 Agenda - 1 hour *NO FREE PIZZA*
  • 4. © Copyright 2011 ADP, Inc. Proprietary and Confidential Information4 Introduction to BDD & Executable Specifications
  • 5. © Copyright 2011 ADP, Inc. Proprietary and Confidential Information5 The Question What does the Customer want?
  • 6. © Copyright 2011 ADP, Inc. Proprietary and Confidential Information6 Not (only) about testing 1. User Story Acceptance Criteria 2. Shared understanding about outcomes 3. Removes implicit expectations (assumptions) 4. Reduces friction in the team 5. What does our solution do and not do?
  • 7. © Copyright 2011 ADP, Inc. Proprietary and Confidential Information7 * Driven Development  “Behavior Driven Development” – Dan North  “Specification by Example”  “Executable Specifications”  “Acceptance Test Driven Development” (ATDD)  “Test Driven Development”
  • 8. © Copyright 2011 ADP, Inc. Proprietary and Confidential Information8 Overview of .NET BDD Tools (there are a lot)
  • 9. © Copyright 2011 ADP, Inc. Proprietary and Confidential Information9 .NET BDD Frameworks & Libraries  SpecFlow – Cucumber for .NET  NSpec  MSpec  TestStack.BDDify  NBehave  “Vanila” NUnit/MSTest/xUnit.net
  • 10. © Copyright 2011 ADP, Inc. Proprietary and Confidential Information10 Explore what’s out there Have a play and figure out which is best for your team and organisation SpecFlow is one of many options A new awesome framework might be released tomorrow
  • 11. © Copyright 2011 ADP, Inc. Proprietary and Confidential Information11 Introducing SpecFlow
  • 12. © Copyright 2011 ADP, Inc. Proprietary and Confidential Information12 DEMO CODE
  • 13. © Copyright 2011 ADP, Inc. Proprietary and Confidential Information13 Benefits
  • 14. © Copyright 2011 ADP, Inc. Proprietary and Confidential Information14 Benefits  Human readable (Gherkin - DSL)  Build Context Incrementally  Specification & Documentation  Early discovery of assumptions in acceptance criteria  Early discovery of technical assumptions  Intermediary (Gherkin) between User Story and Code
  • 15. © Copyright 2011 ADP, Inc. Proprietary and Confidential Information15 Problems & Pro Tips
  • 16. © Copyright 2011 ADP, Inc. Proprietary and Confidential Information16 Problems & Pro Tips  SpecFlow comes from Cucumber (Ruby)  Sharing state between Steps  Test organisation & structure  Test naming  Mock or end-to-end?  Maintenance
  • 17. © Copyright 2011 ADP, Inc. Proprietary and Confidential Information17 BDD and Unit Tests
  • 18. © Copyright 2011 ADP, Inc. Proprietary and Confidential Information18 BDD and Unit Tests  Do SpecFlow Specs replace unit tests?  SpecFlow more suited for larger End-to-end tests  Unit Tests for Devs, BDDS for SCRUM Team & Stackholders  SpecFlow generates NUnit tests automatically  DEMO
  • 19. © Copyright 2011 ADP, Inc. Proprietary and Confidential Information19 Conclusion
  • 20. © Copyright 2011 ADP, Inc. Proprietary and Confidential Information20 Conclusion Sam’s 3 step guide to success! 1. Capture the User Story Acceptance Criteria as Gherkins 2. Implement SpecFlow Specs and iterate with changes to Gherkins [Acceptance Criteria WILL change] 3. You get detailed and correct acceptance criteria and automated regression tests. Everybody wins.
  • 21. © Copyright 2011 ADP, Inc. Proprietary and Confidential Information21 Conclusion  Was it worth it?  Is anyone going to read our Gherkin Specs?  The effort (money) needed to create and maintain the Specs needs to taken into account  The Team needs to be agile & adopt Gherkin and “Spec first mentality”  Change in thinking & culture
  • 22. © Copyright 2011 ADP, Inc. Proprietary and Confidential Information22 Further Study  http://stackoverflow.com/questions/307895/what-is-the- most-mature-bdd-framework-for-net  http://www.specflow.org/resources/  Specification by Example [Gojko Adzic, 2011]  The Cucumber Book [Matt Waynne, 2012]  The Art of Unit Testing [Roy Osherove, 2009]
  • 23. © Copyright 2011 ADP, Inc. Proprietary and Confidential Information23 Questions? BE AGILE
  • 24. © Copyright 2011 ADP, Inc. Proprietary and Confidential Information24 Thank you