SlideShare a Scribd company logo
1 of 41
Executable Requirements Godfrey Nolan RIIS LLC GANG 10 Year Celebration 10/1/11
SPAM RIIS LLC - IT Consultants and Developers since ‘98 Based in Southfield, MI Skills Requirements, Development, Testing iOS/Android, Java/C#, Oracle/SQL Server Clients Fandango, Federal APD, Comerica, Cengage, Broadsoft, DTE, BondDesk, Proctor Financial, Blue Cross Blue Shield MI, TK, Hanson Godfrey Nolan godfrey@riis.com 10 years ago – Unraveling the .Net executable
Agenda
What Makes a Good Requirement? Unique – address one thing only Complete – no missing information Consistent – doesn’t contradict other requirement Traceable back to business need Current – not obsolete Feasible – can be implemented Unambiguous – objective facts not subjective opinions Mandatory – not a nice to have Verifiable – testable
What makes a Bad Requirement? Lengthy Unfocused Ambiguous Verified Manually
Attempts at Writing Good Requirements RIIS History – yours may be different Company Wide Templates Use Cases or User Stories Requirement Reviews Traceability Matrix tools Requirement Metrics tools  Visualization/Simulation tools – iRise, Axure, Balsamiq Agile Development – TDD, Scrum, Kanban ALM, CLM tools
Use Case  Scope: ATM Level: User Goal 1. The card gets inserted. 2. The card information gets validated. 3. The transaction information gets collected and validated. 4. The cash is issued, card returned, cash removed, account debited, screen reset.
Use Cases  1. Customer runs ATM card through the card reader. 2. ATM reads the bank id and account number. 3. ATM asks customer whether to proceed in Spanish/English. 4. Customer selects language. 5. ATM asks for PIN number and to press Enter. 6. Customer enters PIN number, presses Enter. 7. ATM presents list of activities for the Customer to perform. 8. Customer selects “withdraw cash”. 9. ATM asks customer to say how much to withdraw, in multiples of $5, and to press Enter. 10. Customer enters an amount, a multiple of $5, presses Enter. 11. ATM notifies main banking system of customer account, amount being withdrawn. 12. Main banking system accepts the withdrawal, tells ATM new balance. 13. ATM delivers the cash. 14. ATM asks whether customer would like a receipt. 15. Customer replies, yes. 16. ATM issues receipt showing new balance. 17. ATM logs the transaction.
User Story 1. User checks balance 2. User logs into the machine 3. User get "Fast Cash" 4. User makes a deposit 5. User withdraws from checking 6. User withdraws from savings
Traceability Matrix
Visualization
But inevitably… Some or all the following happen Scope change Requirements confusion, opinions not facts Developer interprets the requirement Business stakeholder doesn’t get what they’re expecting Completelymissed some crucial requirement Requirements never kept up to date
But What if? Imagine a world where developers get detailed requirements in a format and mechanism that is readable by the business facing people... ...completely devoid of ambiguity in terms of what the correct behavior is... ...and can also be used as an automated test within your team's continuous integration processes. (Tim Wingfield)
But What If? (TechTalk)
But What If?
TDD
Executable Requirements
Executable Requirements These were the Droids you were looking for.. BDD or Behavior Driven Design Functional Tests Integration Tests Acceptance Tests ATDD or Acceptance Test Driven Design Specification by Example Outside In Development Executable Requirements
Outside In Development
Manual Testing Problem (Matt Stine)
Testing Pyramid (Lisa Crispin)
Continuous Integration
Continuous Integration Automated Build Process Code gets checked in Unit tests run Executable Requirements tests run Code gets deployed only if everything passes Requirements are kept up to date!
Writing Executable Requirements Features file  Written in DSL called Gherkin Feature description Scenario Outline Given/When/Then Examples (optional) Sample test data Step Definitions Setup Regular Expressions for each Given/When/Then Executable C# test code Tear down
Writing Executable Requirements
Given/When/Then
What is SpecFlow .Nettool to write Executable Requirement in Gherkin format Integrates with Visual Studio 2010 File->New templates for creating new feature files Code generation Glue between Feature and Step Definition files Gives VS debugger support Set breakpoints on Given/When/Then lines in your .feature files Integrates with your existing CI infrastructure Also integrates with NUnit Selenium WatiN
Good Executable Requirements Understandable to developer Understandable to business Unambiguous Automated Run frequently
Writing Executable Requirements
Writing Executable Requirements Features file Feature description Scenario Outline Given/When/Then Examples Sample test data
Feature File
Writing Executable Requirements Step Definitions Setup Regular Expressions for each Given/When/Then Executable C# test code Tear down
SpecFlow Glue
Demo SpecFlow demo
Sample Features files Feature: Account Holder withdraws cash  In order to have access to my money  As an Account Holder  I want to withdraw cash from an ATM  Scenario: Card has been disabled  Given card is disabled  When the account holder requests money  Then the ATM should retain the card  And the ATM should say the card has been retained
Sample Features files Feature: Serve coffee   In order to earn money   Customers should be able to    buy coffee at all times   Scenario: Buy last coffee     Given there is 1 coffee left in the machine     And I have deposited $1     When I press the coffee button     Then I should be served a coffee
Languages and Tools Languages C# - Specflow, Cuke4Nuke, StorEvil Ruby – Cucumber Java – Cuke4Duke Also Phython, PHP etc. Tools Cucumber Selenium RC Fitnesse
Tear Down Executable Requirements or Coding the right thing Outside In Development Works well in Scrum teams BA does feature file Developer/tester does step definitions  Works well with VS10 Evolutionary not Revolutionary Might be for you if you’re asking the question? What business requirement does code coverage really provide?
Resources URLs http://www.specflow.org http://dannorth.net/whats-in-a-story/ http://www.codeproject.com/KB/architecture/BddWithSpecFlow.aspx http://cukes.info Books

More Related Content

Viewers also liked

Gang announcements 2010 08
Gang announcements 2010 08Gang announcements 2010 08
Gang announcements 2010 08David Giard
 
50 Words Powerpoint Mia
50 Words Powerpoint Mia50 Words Powerpoint Mia
50 Words Powerpoint Miamrrobbo
 
Open Source Presentation
Open Source PresentationOpen Source Presentation
Open Source Presentationguest9a617
 
Cultural Quiz - Across Borders
Cultural Quiz  - Across BordersCultural Quiz  - Across Borders
Cultural Quiz - Across BordersStuart Friedman
 
Presentazione al Bando d'Idee per il Distretto Turistico Valle dei Templi
Presentazione al Bando d'Idee per il Distretto Turistico Valle dei TempliPresentazione al Bando d'Idee per il Distretto Turistico Valle dei Templi
Presentazione al Bando d'Idee per il Distretto Turistico Valle dei TempliEugenio Agnello
 
Gang announcements 2011 05
Gang announcements 2011 05Gang announcements 2011 05
Gang announcements 2011 05David Giard
 
Managed Extensibility Framework 2010 01
Managed Extensibility Framework 2010 01Managed Extensibility Framework 2010 01
Managed Extensibility Framework 2010 01David Giard
 
Class 6 data visualization
Class 6  data visualizationClass 6  data visualization
Class 6 data visualizationDigiProf
 
Validazione del Progetto Opere Pubbliche Russo
Validazione del Progetto Opere Pubbliche RussoValidazione del Progetto Opere Pubbliche Russo
Validazione del Progetto Opere Pubbliche RussoEugenio Agnello
 
Calidad Seis Sigma con R: Competitividad e Innovación
Calidad Seis Sigma con R: Competitividad e InnovaciónCalidad Seis Sigma con R: Competitividad e Innovación
Calidad Seis Sigma con R: Competitividad e InnovaciónEmilio L. Cano
 
smoky and the habitat
smoky and the habitatsmoky and the habitat
smoky and the habitatdrewn
 
Defined Benefit Plans Amid Market Volatility
Defined Benefit Plans Amid Market VolatilityDefined Benefit Plans Amid Market Volatility
Defined Benefit Plans Amid Market Volatilitywelshms
 
Advice for Entrepreneurs from an Internet Startup Enthusiast, Brian Link
Advice for Entrepreneurs from an Internet Startup Enthusiast, Brian LinkAdvice for Entrepreneurs from an Internet Startup Enthusiast, Brian Link
Advice for Entrepreneurs from an Internet Startup Enthusiast, Brian LinkBrian Link
 
Gang announcements April 2010
Gang announcements April 2010Gang announcements April 2010
Gang announcements April 2010David Giard
 
Structure Of An Ecosystem
Structure Of An EcosystemStructure Of An Ecosystem
Structure Of An Ecosystemmrrobbo
 
Cloud and azure and rock and roll
Cloud and azure and rock and rollCloud and azure and rock and roll
Cloud and azure and rock and rollDavid Giard
 

Viewers also liked (20)

Gang announcements 2010 08
Gang announcements 2010 08Gang announcements 2010 08
Gang announcements 2010 08
 
50 Words Powerpoint Mia
50 Words Powerpoint Mia50 Words Powerpoint Mia
50 Words Powerpoint Mia
 
Open Source Presentation
Open Source PresentationOpen Source Presentation
Open Source Presentation
 
Cultural Quiz - Across Borders
Cultural Quiz  - Across BordersCultural Quiz  - Across Borders
Cultural Quiz - Across Borders
 
Violazioni Cantieri
Violazioni CantieriViolazioni Cantieri
Violazioni Cantieri
 
Presentazione al Bando d'Idee per il Distretto Turistico Valle dei Templi
Presentazione al Bando d'Idee per il Distretto Turistico Valle dei TempliPresentazione al Bando d'Idee per il Distretto Turistico Valle dei Templi
Presentazione al Bando d'Idee per il Distretto Turistico Valle dei Templi
 
Dm 3708
Dm 3708Dm 3708
Dm 3708
 
Gang announcements 2011 05
Gang announcements 2011 05Gang announcements 2011 05
Gang announcements 2011 05
 
Managed Extensibility Framework 2010 01
Managed Extensibility Framework 2010 01Managed Extensibility Framework 2010 01
Managed Extensibility Framework 2010 01
 
Class 6 data visualization
Class 6  data visualizationClass 6  data visualization
Class 6 data visualization
 
Validazione del Progetto Opere Pubbliche Russo
Validazione del Progetto Opere Pubbliche RussoValidazione del Progetto Opere Pubbliche Russo
Validazione del Progetto Opere Pubbliche Russo
 
Template-devil
Template-devilTemplate-devil
Template-devil
 
Calidad Seis Sigma con R: Competitividad e Innovación
Calidad Seis Sigma con R: Competitividad e InnovaciónCalidad Seis Sigma con R: Competitividad e Innovación
Calidad Seis Sigma con R: Competitividad e Innovación
 
smoky and the habitat
smoky and the habitatsmoky and the habitat
smoky and the habitat
 
Defined Benefit Plans Amid Market Volatility
Defined Benefit Plans Amid Market VolatilityDefined Benefit Plans Amid Market Volatility
Defined Benefit Plans Amid Market Volatility
 
Advice for Entrepreneurs from an Internet Startup Enthusiast, Brian Link
Advice for Entrepreneurs from an Internet Startup Enthusiast, Brian LinkAdvice for Entrepreneurs from an Internet Startup Enthusiast, Brian Link
Advice for Entrepreneurs from an Internet Startup Enthusiast, Brian Link
 
Gang announcements April 2010
Gang announcements April 2010Gang announcements April 2010
Gang announcements April 2010
 
Structure Of An Ecosystem
Structure Of An EcosystemStructure Of An Ecosystem
Structure Of An Ecosystem
 
Cloud and azure and rock and roll
Cloud and azure and rock and rollCloud and azure and rock and roll
Cloud and azure and rock and roll
 
Nase Zoo
Nase ZooNase Zoo
Nase Zoo
 

Similar to BDD

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
 
Design Patterns Every ISV Needs to Know (October 15, 2014)
Design Patterns Every ISV Needs to Know (October 15, 2014)Design Patterns Every ISV Needs to Know (October 15, 2014)
Design Patterns Every ISV Needs to Know (October 15, 2014)Salesforce Partners
 
Emvigo Data Visualization - E Commerce Deck
Emvigo Data Visualization - E Commerce DeckEmvigo Data Visualization - E Commerce Deck
Emvigo Data Visualization - E Commerce DeckEmvigo Technologies
 
2-1 Remember the Help Desk with AFCU - Jared Flanders, Final
2-1 Remember the Help Desk with AFCU - Jared Flanders, Final2-1 Remember the Help Desk with AFCU - Jared Flanders, Final
2-1 Remember the Help Desk with AFCU - Jared Flanders, FinalJared Flanders
 
CV_PurnimaBalla_WCS-Consultant_7Yrs
CV_PurnimaBalla_WCS-Consultant_7YrsCV_PurnimaBalla_WCS-Consultant_7Yrs
CV_PurnimaBalla_WCS-Consultant_7YrsPurnima Balla
 
Stitching Shop Management System.pptx
Stitching Shop Management System.pptxStitching Shop Management System.pptx
Stitching Shop Management System.pptxSMS Hasan
 
Design Patterns: ISV Recipes for Success (Dreamforce 2015)
Design Patterns: ISV Recipes for Success (Dreamforce 2015)Design Patterns: ISV Recipes for Success (Dreamforce 2015)
Design Patterns: ISV Recipes for Success (Dreamforce 2015)Salesforce Partners
 
When Data Visualizations and Data Imports Just Don’t Work
When Data Visualizations and Data Imports Just Don’t WorkWhen Data Visualizations and Data Imports Just Don’t Work
When Data Visualizations and Data Imports Just Don’t WorkJim Kaplan CIA CFE
 
Bdd with Cucumber and Mocha
Bdd with Cucumber and MochaBdd with Cucumber and Mocha
Bdd with Cucumber and MochaAtish Narlawar
 
Using feature teams to deliver high business value
Using feature teams to deliver high business valueUsing feature teams to deliver high business value
Using feature teams to deliver high business valueThoughtworks
 
Scrum Bangalore 13th meet up 13 june 2015 - behaviour driven development - vi...
Scrum Bangalore 13th meet up 13 june 2015 - behaviour driven development - vi...Scrum Bangalore 13th meet up 13 june 2015 - behaviour driven development - vi...
Scrum Bangalore 13th meet up 13 june 2015 - behaviour driven development - vi...Scrum Bangalore
 
Alagu Ganesh SQL Server
Alagu Ganesh SQL ServerAlagu Ganesh SQL Server
Alagu Ganesh SQL ServerAlagu Ganesh A
 
To swipe or not to swipe payment card processing in sap
To swipe or not to swipe payment card processing in sapTo swipe or not to swipe payment card processing in sap
To swipe or not to swipe payment card processing in sapSunando Ghosh
 

Similar to BDD (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
 
Design Patterns Every ISV Needs to Know (October 15, 2014)
Design Patterns Every ISV Needs to Know (October 15, 2014)Design Patterns Every ISV Needs to Know (October 15, 2014)
Design Patterns Every ISV Needs to Know (October 15, 2014)
 
Emvigo Data Visualization - E Commerce Deck
Emvigo Data Visualization - E Commerce DeckEmvigo Data Visualization - E Commerce Deck
Emvigo Data Visualization - E Commerce Deck
 
Srs for banking system
Srs for banking systemSrs for banking system
Srs for banking system
 
2-1 Remember the Help Desk with AFCU - Jared Flanders, Final
2-1 Remember the Help Desk with AFCU - Jared Flanders, Final2-1 Remember the Help Desk with AFCU - Jared Flanders, Final
2-1 Remember the Help Desk with AFCU - Jared Flanders, Final
 
Fayaz_CV
Fayaz_CVFayaz_CV
Fayaz_CV
 
CV_PurnimaBalla_WCS-Consultant_7Yrs
CV_PurnimaBalla_WCS-Consultant_7YrsCV_PurnimaBalla_WCS-Consultant_7Yrs
CV_PurnimaBalla_WCS-Consultant_7Yrs
 
AppliFire Platform
AppliFire PlatformAppliFire Platform
AppliFire Platform
 
Stitching Shop Management System.pptx
Stitching Shop Management System.pptxStitching Shop Management System.pptx
Stitching Shop Management System.pptx
 
Resume astha.
Resume astha.Resume astha.
Resume astha.
 
Design Patterns: ISV Recipes for Success (Dreamforce 2015)
Design Patterns: ISV Recipes for Success (Dreamforce 2015)Design Patterns: ISV Recipes for Success (Dreamforce 2015)
Design Patterns: ISV Recipes for Success (Dreamforce 2015)
 
When Data Visualizations and Data Imports Just Don’t Work
When Data Visualizations and Data Imports Just Don’t WorkWhen Data Visualizations and Data Imports Just Don’t Work
When Data Visualizations and Data Imports Just Don’t Work
 
Resume
ResumeResume
Resume
 
Om_Resume
Om_ResumeOm_Resume
Om_Resume
 
Bdd with Cucumber and Mocha
Bdd with Cucumber and MochaBdd with Cucumber and Mocha
Bdd with Cucumber and Mocha
 
Using feature teams to deliver high business value
Using feature teams to deliver high business valueUsing feature teams to deliver high business value
Using feature teams to deliver high business value
 
Scrum Bangalore 13th meet up 13 june 2015 - behaviour driven development - vi...
Scrum Bangalore 13th meet up 13 june 2015 - behaviour driven development - vi...Scrum Bangalore 13th meet up 13 june 2015 - behaviour driven development - vi...
Scrum Bangalore 13th meet up 13 june 2015 - behaviour driven development - vi...
 
Alagu Ganesh SQL Server
Alagu Ganesh SQL ServerAlagu Ganesh SQL Server
Alagu Ganesh SQL Server
 
Nazeer Resume
Nazeer ResumeNazeer Resume
Nazeer Resume
 
To swipe or not to swipe payment card processing in sap
To swipe or not to swipe payment card processing in sapTo swipe or not to swipe payment card processing in sap
To swipe or not to swipe payment card processing in sap
 

More from David Giard

Data Visualization - CodeMash 2022
Data Visualization - CodeMash 2022Data Visualization - CodeMash 2022
Data Visualization - CodeMash 2022David Giard
 
Azure data factory
Azure data factoryAzure data factory
Azure data factoryDavid Giard
 
University of Texas lecture: Data Science Tools in Microsoft Azure
University of Texas lecture: Data Science Tools in Microsoft AzureUniversity of Texas lecture: Data Science Tools in Microsoft Azure
University of Texas lecture: Data Science Tools in Microsoft AzureDavid Giard
 
University of Texas, Data Science, March 29, 2018
University of Texas, Data Science, March 29, 2018University of Texas, Data Science, March 29, 2018
University of Texas, Data Science, March 29, 2018David Giard
 
Intro to cloud and azure
Intro to cloud and azureIntro to cloud and azure
Intro to cloud and azureDavid Giard
 
Azure and deep learning
Azure and deep learningAzure and deep learning
Azure and deep learningDavid Giard
 
Azure and Deep Learning
Azure and Deep LearningAzure and Deep Learning
Azure and Deep LearningDavid Giard
 
Cloud and azure and rock and roll
Cloud and azure and rock and rollCloud and azure and rock and roll
Cloud and azure and rock and rollDavid Giard
 
Own your own career advice from a veteran consultant
Own your own career   advice from a veteran consultantOwn your own career   advice from a veteran consultant
Own your own career advice from a veteran consultantDavid Giard
 
You and Your Tech Community
You and Your Tech CommunityYou and Your Tech Community
You and Your Tech CommunityDavid Giard
 
Microsoft Azure IoT overview
Microsoft Azure IoT overviewMicrosoft Azure IoT overview
Microsoft Azure IoT overviewDavid Giard
 
Cloud and azure and rock and roll
Cloud and azure and rock and rollCloud and azure and rock and roll
Cloud and azure and rock and rollDavid Giard
 
Big Data on azure
Big Data on azureBig Data on azure
Big Data on azureDavid Giard
 
Microsoft azure without microsoft
Microsoft azure without microsoftMicrosoft azure without microsoft
Microsoft azure without microsoftDavid Giard
 
Azure mobile apps
Azure mobile appsAzure mobile apps
Azure mobile appsDavid Giard
 
Building a TV show with Angular, Bootstrap, and Web Services
Building a TV show with Angular, Bootstrap, and Web ServicesBuilding a TV show with Angular, Bootstrap, and Web Services
Building a TV show with Angular, Bootstrap, and Web ServicesDavid Giard
 
Effective Data Visualization
Effective Data VisualizationEffective Data Visualization
Effective Data VisualizationDavid Giard
 
Angular2 and TypeScript
Angular2 and TypeScriptAngular2 and TypeScript
Angular2 and TypeScriptDavid Giard
 

More from David Giard (20)

Data Visualization - CodeMash 2022
Data Visualization - CodeMash 2022Data Visualization - CodeMash 2022
Data Visualization - CodeMash 2022
 
Azure data factory
Azure data factoryAzure data factory
Azure data factory
 
Azure functions
Azure functionsAzure functions
Azure functions
 
University of Texas lecture: Data Science Tools in Microsoft Azure
University of Texas lecture: Data Science Tools in Microsoft AzureUniversity of Texas lecture: Data Science Tools in Microsoft Azure
University of Texas lecture: Data Science Tools in Microsoft Azure
 
University of Texas, Data Science, March 29, 2018
University of Texas, Data Science, March 29, 2018University of Texas, Data Science, March 29, 2018
University of Texas, Data Science, March 29, 2018
 
Intro to cloud and azure
Intro to cloud and azureIntro to cloud and azure
Intro to cloud and azure
 
Azure and deep learning
Azure and deep learningAzure and deep learning
Azure and deep learning
 
Azure and Deep Learning
Azure and Deep LearningAzure and Deep Learning
Azure and Deep Learning
 
Custom vision
Custom visionCustom vision
Custom vision
 
Cloud and azure and rock and roll
Cloud and azure and rock and rollCloud and azure and rock and roll
Cloud and azure and rock and roll
 
Own your own career advice from a veteran consultant
Own your own career   advice from a veteran consultantOwn your own career   advice from a veteran consultant
Own your own career advice from a veteran consultant
 
You and Your Tech Community
You and Your Tech CommunityYou and Your Tech Community
You and Your Tech Community
 
Microsoft Azure IoT overview
Microsoft Azure IoT overviewMicrosoft Azure IoT overview
Microsoft Azure IoT overview
 
Cloud and azure and rock and roll
Cloud and azure and rock and rollCloud and azure and rock and roll
Cloud and azure and rock and roll
 
Big Data on azure
Big Data on azureBig Data on azure
Big Data on azure
 
Microsoft azure without microsoft
Microsoft azure without microsoftMicrosoft azure without microsoft
Microsoft azure without microsoft
 
Azure mobile apps
Azure mobile appsAzure mobile apps
Azure mobile apps
 
Building a TV show with Angular, Bootstrap, and Web Services
Building a TV show with Angular, Bootstrap, and Web ServicesBuilding a TV show with Angular, Bootstrap, and Web Services
Building a TV show with Angular, Bootstrap, and Web Services
 
Effective Data Visualization
Effective Data VisualizationEffective Data Visualization
Effective Data Visualization
 
Angular2 and TypeScript
Angular2 and TypeScriptAngular2 and TypeScript
Angular2 and TypeScript
 

Recently uploaded

Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Manik S Magar
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
The State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxThe State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxLoriGlavin3
 
How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.Curtis Poe
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Mark Simos
 
What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024Stephanie Beckett
 
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxMerck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxLoriGlavin3
 
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024BookNet Canada
 
Time Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directionsTime Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directionsNathaniel Shimoni
 
From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .Alan Dix
 
A Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software DevelopersA Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software DevelopersNicole Novielli
 
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxA Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxLoriGlavin3
 
How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity PlanDatabarracks
 
Visualising and forecasting stocks using Dash
Visualising and forecasting stocks using DashVisualising and forecasting stocks using Dash
Visualising and forecasting stocks using Dashnarutouzumaki53779
 
What is Artificial Intelligence?????????
What is Artificial Intelligence?????????What is Artificial Intelligence?????????
What is Artificial Intelligence?????????blackmambaettijean
 
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxUse of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxLoriGlavin3
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Commit University
 
Take control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteTake control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteDianaGray10
 
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxDigital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxLoriGlavin3
 
What is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdfWhat is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdfMounikaPolabathina
 

Recently uploaded (20)

Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
The State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxThe State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptx
 
How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
 
What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024
 
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxMerck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
 
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
 
Time Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directionsTime Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directions
 
From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .
 
A Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software DevelopersA Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software Developers
 
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxA Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
 
How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity Plan
 
Visualising and forecasting stocks using Dash
Visualising and forecasting stocks using DashVisualising and forecasting stocks using Dash
Visualising and forecasting stocks using Dash
 
What is Artificial Intelligence?????????
What is Artificial Intelligence?????????What is Artificial Intelligence?????????
What is Artificial Intelligence?????????
 
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxUse of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!
 
Take control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteTake control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test Suite
 
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxDigital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
 
What is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdfWhat is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdf
 

BDD

  • 1. Executable Requirements Godfrey Nolan RIIS LLC GANG 10 Year Celebration 10/1/11
  • 2. SPAM RIIS LLC - IT Consultants and Developers since ‘98 Based in Southfield, MI Skills Requirements, Development, Testing iOS/Android, Java/C#, Oracle/SQL Server Clients Fandango, Federal APD, Comerica, Cengage, Broadsoft, DTE, BondDesk, Proctor Financial, Blue Cross Blue Shield MI, TK, Hanson Godfrey Nolan godfrey@riis.com 10 years ago – Unraveling the .Net executable
  • 4. What Makes a Good Requirement? Unique – address one thing only Complete – no missing information Consistent – doesn’t contradict other requirement Traceable back to business need Current – not obsolete Feasible – can be implemented Unambiguous – objective facts not subjective opinions Mandatory – not a nice to have Verifiable – testable
  • 5. What makes a Bad Requirement? Lengthy Unfocused Ambiguous Verified Manually
  • 6. Attempts at Writing Good Requirements RIIS History – yours may be different Company Wide Templates Use Cases or User Stories Requirement Reviews Traceability Matrix tools Requirement Metrics tools Visualization/Simulation tools – iRise, Axure, Balsamiq Agile Development – TDD, Scrum, Kanban ALM, CLM tools
  • 7. Use Case Scope: ATM Level: User Goal 1. The card gets inserted. 2. The card information gets validated. 3. The transaction information gets collected and validated. 4. The cash is issued, card returned, cash removed, account debited, screen reset.
  • 8. Use Cases 1. Customer runs ATM card through the card reader. 2. ATM reads the bank id and account number. 3. ATM asks customer whether to proceed in Spanish/English. 4. Customer selects language. 5. ATM asks for PIN number and to press Enter. 6. Customer enters PIN number, presses Enter. 7. ATM presents list of activities for the Customer to perform. 8. Customer selects “withdraw cash”. 9. ATM asks customer to say how much to withdraw, in multiples of $5, and to press Enter. 10. Customer enters an amount, a multiple of $5, presses Enter. 11. ATM notifies main banking system of customer account, amount being withdrawn. 12. Main banking system accepts the withdrawal, tells ATM new balance. 13. ATM delivers the cash. 14. ATM asks whether customer would like a receipt. 15. Customer replies, yes. 16. ATM issues receipt showing new balance. 17. ATM logs the transaction.
  • 9. User Story 1. User checks balance 2. User logs into the machine 3. User get "Fast Cash" 4. User makes a deposit 5. User withdraws from checking 6. User withdraws from savings
  • 12. But inevitably… Some or all the following happen Scope change Requirements confusion, opinions not facts Developer interprets the requirement Business stakeholder doesn’t get what they’re expecting Completelymissed some crucial requirement Requirements never kept up to date
  • 13. But What if? Imagine a world where developers get detailed requirements in a format and mechanism that is readable by the business facing people... ...completely devoid of ambiguity in terms of what the correct behavior is... ...and can also be used as an automated test within your team's continuous integration processes. (Tim Wingfield)
  • 14. But What If? (TechTalk)
  • 16. TDD
  • 18. Executable Requirements These were the Droids you were looking for.. BDD or Behavior Driven Design Functional Tests Integration Tests Acceptance Tests ATDD or Acceptance Test Driven Design Specification by Example Outside In Development Executable Requirements
  • 19.
  • 21. Manual Testing Problem (Matt Stine)
  • 24. Continuous Integration Automated Build Process Code gets checked in Unit tests run Executable Requirements tests run Code gets deployed only if everything passes Requirements are kept up to date!
  • 25. Writing Executable Requirements Features file Written in DSL called Gherkin Feature description Scenario Outline Given/When/Then Examples (optional) Sample test data Step Definitions Setup Regular Expressions for each Given/When/Then Executable C# test code Tear down
  • 28. What is SpecFlow .Nettool to write Executable Requirement in Gherkin format Integrates with Visual Studio 2010 File->New templates for creating new feature files Code generation Glue between Feature and Step Definition files Gives VS debugger support Set breakpoints on Given/When/Then lines in your .feature files Integrates with your existing CI infrastructure Also integrates with NUnit Selenium WatiN
  • 29. Good Executable Requirements Understandable to developer Understandable to business Unambiguous Automated Run frequently
  • 31. Writing Executable Requirements Features file Feature description Scenario Outline Given/When/Then Examples Sample test data
  • 33. Writing Executable Requirements Step Definitions Setup Regular Expressions for each Given/When/Then Executable C# test code Tear down
  • 34.
  • 37. Sample Features files Feature: Account Holder withdraws cash In order to have access to my money As an Account Holder I want to withdraw cash from an ATM Scenario: Card has been disabled Given card is disabled When the account holder requests money Then the ATM should retain the card And the ATM should say the card has been retained
  • 38. Sample Features files Feature: Serve coffee In order to earn money Customers should be able to buy coffee at all times Scenario: Buy last coffee Given there is 1 coffee left in the machine And I have deposited $1 When I press the coffee button Then I should be served a coffee
  • 39. Languages and Tools Languages C# - Specflow, Cuke4Nuke, StorEvil Ruby – Cucumber Java – Cuke4Duke Also Phython, PHP etc. Tools Cucumber Selenium RC Fitnesse
  • 40. Tear Down Executable Requirements or Coding the right thing Outside In Development Works well in Scrum teams BA does feature file Developer/tester does step definitions Works well with VS10 Evolutionary not Revolutionary Might be for you if you’re asking the question? What business requirement does code coverage really provide?
  • 41. Resources URLs http://www.specflow.org http://dannorth.net/whats-in-a-story/ http://www.codeproject.com/KB/architecture/BddWithSpecFlow.aspx http://cukes.info Books

Editor's Notes

  1. Where’s the PINhttp://alistair.cockburn.us/Sampler+of+good+and+bad+use+cases
  2. Too many scenarios
  3. Gherkin format
  4. http://www.mehdi-khalili.com/executable-requirements