SlideShare a Scribd company logo
Narrative Acceptance Tests A Behaviour Driven Approach Antony Marcano & Andy Palmer
Introduction
@AntonyMarcano http://antonymarcano.com @AndyPalmer http://andypalmer.com
May-07 Antony Marcano 8
Photo taken at www.tnmoc.org on site at www.bletchleypark.org.uk
Photo taken at www.tnmoc.org on site at www.bletchleypark.org.uk
Telephone Game We lose information by repeatedly switching between examples and abstractions http://www.brokenpicturetelephone.com/
Example Driven Approaches Why not just use the same examples for the whole process? The developers might even preserve the language of the business domain
2009 Antony Marcano 13
Example Driven Approaches Common attributes: Desired behaviour is expressed as a concrete example The example is evaluated against the product, demonstrating the absence of the behaviour The behaviour is implemented The example is re-evaluated to determine if the correct behaviour has been implemented Such as: ATDD, TDD, BDD
2009 15 http://www.parlezuml.com/blog/?postid=490
User Stories are elaborated with Examples For each story likely to be worked on in next iteration Have a conversation Customer, Developer & Tester Discuss examples & summarise on back of story card Or, one card per example
Implement story  (TDD with unit tests) test should pass Have a conversation For each  Example noted earlier Express the example as automated  acceptance    test Test should fail When all  tests pass,  story is done (almost) During the iteration
Given-When-Then Given-When-Then Given some initial context (the givens), When an event occurs, then ensure some outcomes. For example… http://dannorth.net/introducing-bdd
2009 19 Activity ,[object Object]
 Use CasesGeneral Specific ,[object Object]
 Automated Test Script     using GUI Test tool (e.g.     selenium, QTP, SilkTest) ,[object Object],   Test scripts Task
A Place To Start As a Team Member I want a place to start So that I know that the software is running
Given thatthe FitNesse wiki was able to start for the first time When the Project Team Member attempts to go to the Home Page Then the content of the Home Page for the Project Team Member  should be "Welcome to the Wonderful World of FitNesse!"
Given that the FitNesse wiki was able to start for the first time When the Project Team Member attempts to go to the Home Page Then the content of the Home Page for the Project Team Membershould be "Welcome to the Wonderful World of FitNesse!"
Given that the FitNesse wiki was able to start for the first time When the Project Team Member attempts to go to the Home Page Then the content of the Home Pagefor the Project Team Membershould be "Welcome to the Wonderful World of FitNesse!"
Given that the FitNesse wiki was able to start for the first time When the Project Team Member attempts to go to the Home Page Then the content of the Home Pagefor the Project Team Membershould be "Welcome to the Wonderful World of FitNesse!"
Edit the Home Page As a Project Team Member I want to edit the Front Page So that it is relevant to my project Let’s leave the slides and do something real…
Putting it on the table
A more fluent approach Let’s take a look at JNarrate...
Other tools and frameworks JBehave Nbehave Cucumber RSpec
Further reading… Bridging the Communication Gap -Gojko Adzic Agile Testing: A Practical Guide for Testers and Agile Teams -Lisa Crispin & Janet Gregory FIT for Developing Software: Framework for Integrated Tests-Rick Mugridge & Ward Cunningham

More Related Content

Similar to Narrative Acceptance Tests River Glide Antony Marcano

Download mien phi slide 29
Download mien phi slide 29Download mien phi slide 29
Download mien phi slide 29
sudokid
 
L3 diploma-cmpt-project-proposal-guidance-and-template
L3 diploma-cmpt-project-proposal-guidance-and-templateL3 diploma-cmpt-project-proposal-guidance-and-template
L3 diploma-cmpt-project-proposal-guidance-and-template
ICECUBE89
 
Apps as Machines — at FH Potsdam
Apps as Machines — at FH PotsdamApps as Machines — at FH Potsdam
Apps as Machines — at FH Potsdam
Martin Jordan
 
The Soft Side of Software Development / Devoxx 2019
The Soft Side of Software Development / Devoxx 2019The Soft Side of Software Development / Devoxx 2019
The Soft Side of Software Development / Devoxx 2019
🎤 Hanno Embregts 🎸
 
Championing accessibility
Championing accessibilityChampioning accessibility
Championing accessibility
Chris Sherry
 
Transform a web team into a Sitecore dream-team
Transform a web team into a Sitecore dream-teamTransform a web team into a Sitecore dream-team
Transform a web team into a Sitecore dream-team
NavigationArts
 
Collaboration and Productivity: The Missing Links in API Development
Collaboration and Productivity: The Missing Links in API DevelopmentCollaboration and Productivity: The Missing Links in API Development
Collaboration and Productivity: The Missing Links in API Development
Postman
 
Flat
FlatFlat
Planning booklet lewis hill
Planning booklet lewis hillPlanning booklet lewis hill
Planning booklet lewis hill
Lewis Hill
 
Storytelling & Social Media: Video Creation
Storytelling & Social Media: Video Creation Storytelling & Social Media: Video Creation
Storytelling & Social Media: Video Creation
TechSoup
 
Bullshit, Own It: A Temperamental SEO's Guide To Getting Shit Done
Bullshit, Own It: A Temperamental SEO's Guide To Getting Shit DoneBullshit, Own It: A Temperamental SEO's Guide To Getting Shit Done
Bullshit, Own It: A Temperamental SEO's Guide To Getting Shit Done
Ian Lurie
 
Pixlr and small apps in the classroom
Pixlr and small apps in the classroomPixlr and small apps in the classroom
Pixlr and small apps in the classroom
ArtfulArtsyAmy
 
Technology professionallearning aug 2011 (protected)
Technology professionallearning aug 2011 (protected)Technology professionallearning aug 2011 (protected)
Technology professionallearning aug 2011 (protected)David C. Barrow Elementary
 
Why You Must Be Mobile First Now
Why You Must Be Mobile First NowWhy You Must Be Mobile First Now
Why You Must Be Mobile First Now
Eric Enge
 
Thinking Reactively
Thinking ReactivelyThinking Reactively
Thinking Reactively
Sabin Marcu
 
Content is ux
Content is uxContent is ux
Content is ux
Sarah Richards
 
Blogworkshop Part 1
Blogworkshop Part 1Blogworkshop Part 1
Blogworkshop Part 1
planetsab
 
O365Con19 - UI:UX 101 Learn How to Design Custom Experiences for SharePoint -...
O365Con19 - UI:UX 101 Learn How to Design Custom Experiences for SharePoint -...O365Con19 - UI:UX 101 Learn How to Design Custom Experiences for SharePoint -...
O365Con19 - UI:UX 101 Learn How to Design Custom Experiences for SharePoint -...
NCCOMMS
 
MT and Post-Editing User-Generated Content AMTA 2014
MT and Post-Editing User-Generated Content AMTA 2014MT and Post-Editing User-Generated Content AMTA 2014
MT and Post-Editing User-Generated Content AMTA 2014
Welocalize
 
Personal introduction
Personal introductionPersonal introduction
Personal introduction
Jose Sanchez
 

Similar to Narrative Acceptance Tests River Glide Antony Marcano (20)

Download mien phi slide 29
Download mien phi slide 29Download mien phi slide 29
Download mien phi slide 29
 
L3 diploma-cmpt-project-proposal-guidance-and-template
L3 diploma-cmpt-project-proposal-guidance-and-templateL3 diploma-cmpt-project-proposal-guidance-and-template
L3 diploma-cmpt-project-proposal-guidance-and-template
 
Apps as Machines — at FH Potsdam
Apps as Machines — at FH PotsdamApps as Machines — at FH Potsdam
Apps as Machines — at FH Potsdam
 
The Soft Side of Software Development / Devoxx 2019
The Soft Side of Software Development / Devoxx 2019The Soft Side of Software Development / Devoxx 2019
The Soft Side of Software Development / Devoxx 2019
 
Championing accessibility
Championing accessibilityChampioning accessibility
Championing accessibility
 
Transform a web team into a Sitecore dream-team
Transform a web team into a Sitecore dream-teamTransform a web team into a Sitecore dream-team
Transform a web team into a Sitecore dream-team
 
Collaboration and Productivity: The Missing Links in API Development
Collaboration and Productivity: The Missing Links in API DevelopmentCollaboration and Productivity: The Missing Links in API Development
Collaboration and Productivity: The Missing Links in API Development
 
Flat
FlatFlat
Flat
 
Planning booklet lewis hill
Planning booklet lewis hillPlanning booklet lewis hill
Planning booklet lewis hill
 
Storytelling & Social Media: Video Creation
Storytelling & Social Media: Video Creation Storytelling & Social Media: Video Creation
Storytelling & Social Media: Video Creation
 
Bullshit, Own It: A Temperamental SEO's Guide To Getting Shit Done
Bullshit, Own It: A Temperamental SEO's Guide To Getting Shit DoneBullshit, Own It: A Temperamental SEO's Guide To Getting Shit Done
Bullshit, Own It: A Temperamental SEO's Guide To Getting Shit Done
 
Pixlr and small apps in the classroom
Pixlr and small apps in the classroomPixlr and small apps in the classroom
Pixlr and small apps in the classroom
 
Technology professionallearning aug 2011 (protected)
Technology professionallearning aug 2011 (protected)Technology professionallearning aug 2011 (protected)
Technology professionallearning aug 2011 (protected)
 
Why You Must Be Mobile First Now
Why You Must Be Mobile First NowWhy You Must Be Mobile First Now
Why You Must Be Mobile First Now
 
Thinking Reactively
Thinking ReactivelyThinking Reactively
Thinking Reactively
 
Content is ux
Content is uxContent is ux
Content is ux
 
Blogworkshop Part 1
Blogworkshop Part 1Blogworkshop Part 1
Blogworkshop Part 1
 
O365Con19 - UI:UX 101 Learn How to Design Custom Experiences for SharePoint -...
O365Con19 - UI:UX 101 Learn How to Design Custom Experiences for SharePoint -...O365Con19 - UI:UX 101 Learn How to Design Custom Experiences for SharePoint -...
O365Con19 - UI:UX 101 Learn How to Design Custom Experiences for SharePoint -...
 
MT and Post-Editing User-Generated Content AMTA 2014
MT and Post-Editing User-Generated Content AMTA 2014MT and Post-Editing User-Generated Content AMTA 2014
MT and Post-Editing User-Generated Content AMTA 2014
 
Personal introduction
Personal introductionPersonal introduction
Personal introduction
 

More from Skills Matter

5 things cucumber is bad at by Richard Lawrence
5 things cucumber is bad at by Richard Lawrence5 things cucumber is bad at by Richard Lawrence
5 things cucumber is bad at by Richard Lawrence
Skills Matter
 
Patterns for slick database applications
Patterns for slick database applicationsPatterns for slick database applications
Patterns for slick database applications
Skills Matter
 
Scala e xchange 2013 haoyi li on metascala a tiny diy jvm
Scala e xchange 2013 haoyi li on metascala a tiny diy jvmScala e xchange 2013 haoyi li on metascala a tiny diy jvm
Scala e xchange 2013 haoyi li on metascala a tiny diy jvm
Skills Matter
 
Oscar reiken jr on our success at manheim
Oscar reiken jr on our success at manheimOscar reiken jr on our success at manheim
Oscar reiken jr on our success at manheimSkills Matter
 
Progressive f# tutorials nyc dmitry mozorov & jack pappas on code quotations ...
Progressive f# tutorials nyc dmitry mozorov & jack pappas on code quotations ...Progressive f# tutorials nyc dmitry mozorov & jack pappas on code quotations ...
Progressive f# tutorials nyc dmitry mozorov & jack pappas on code quotations ...
Skills Matter
 
Cukeup nyc ian dees on elixir, erlang, and cucumberl
Cukeup nyc ian dees on elixir, erlang, and cucumberlCukeup nyc ian dees on elixir, erlang, and cucumberl
Cukeup nyc ian dees on elixir, erlang, and cucumberl
Skills Matter
 
Cukeup nyc peter bell on getting started with cucumber.js
Cukeup nyc peter bell on getting started with cucumber.jsCukeup nyc peter bell on getting started with cucumber.js
Cukeup nyc peter bell on getting started with cucumber.js
Skills Matter
 
Agile testing & bdd e xchange nyc 2013 jeffrey davidson & lav pathak & sam ho...
Agile testing & bdd e xchange nyc 2013 jeffrey davidson & lav pathak & sam ho...Agile testing & bdd e xchange nyc 2013 jeffrey davidson & lav pathak & sam ho...
Agile testing & bdd e xchange nyc 2013 jeffrey davidson & lav pathak & sam ho...
Skills Matter
 
Progressive f# tutorials nyc rachel reese & phil trelford on try f# from zero...
Progressive f# tutorials nyc rachel reese & phil trelford on try f# from zero...Progressive f# tutorials nyc rachel reese & phil trelford on try f# from zero...
Progressive f# tutorials nyc rachel reese & phil trelford on try f# from zero...
Skills Matter
 
Progressive f# tutorials nyc don syme on keynote f# in the open source world
Progressive f# tutorials nyc don syme on keynote f# in the open source worldProgressive f# tutorials nyc don syme on keynote f# in the open source world
Progressive f# tutorials nyc don syme on keynote f# in the open source world
Skills Matter
 
Agile testing & bdd e xchange nyc 2013 gojko adzic on bond villain guide to s...
Agile testing & bdd e xchange nyc 2013 gojko adzic on bond villain guide to s...Agile testing & bdd e xchange nyc 2013 gojko adzic on bond villain guide to s...
Agile testing & bdd e xchange nyc 2013 gojko adzic on bond villain guide to s...
Skills Matter
 
Dmitry mozorov on code quotations code as-data for f#
Dmitry mozorov on code quotations code as-data for f#Dmitry mozorov on code quotations code as-data for f#
Dmitry mozorov on code quotations code as-data for f#
Skills Matter
 
A poet's guide_to_acceptance_testing
A poet's guide_to_acceptance_testingA poet's guide_to_acceptance_testing
A poet's guide_to_acceptance_testing
Skills Matter
 
Russ miles-cloudfoundry-deep-dive
Russ miles-cloudfoundry-deep-diveRuss miles-cloudfoundry-deep-dive
Russ miles-cloudfoundry-deep-diveSkills Matter
 
Simon Peyton Jones: Managing parallelism
Simon Peyton Jones: Managing parallelismSimon Peyton Jones: Managing parallelism
Simon Peyton Jones: Managing parallelism
Skills Matter
 
I went to_a_communications_workshop_and_they_t
I went to_a_communications_workshop_and_they_tI went to_a_communications_workshop_and_they_t
I went to_a_communications_workshop_and_they_tSkills Matter
 

More from Skills Matter (20)

5 things cucumber is bad at by Richard Lawrence
5 things cucumber is bad at by Richard Lawrence5 things cucumber is bad at by Richard Lawrence
5 things cucumber is bad at by Richard Lawrence
 
Patterns for slick database applications
Patterns for slick database applicationsPatterns for slick database applications
Patterns for slick database applications
 
Scala e xchange 2013 haoyi li on metascala a tiny diy jvm
Scala e xchange 2013 haoyi li on metascala a tiny diy jvmScala e xchange 2013 haoyi li on metascala a tiny diy jvm
Scala e xchange 2013 haoyi li on metascala a tiny diy jvm
 
Oscar reiken jr on our success at manheim
Oscar reiken jr on our success at manheimOscar reiken jr on our success at manheim
Oscar reiken jr on our success at manheim
 
Progressive f# tutorials nyc dmitry mozorov & jack pappas on code quotations ...
Progressive f# tutorials nyc dmitry mozorov & jack pappas on code quotations ...Progressive f# tutorials nyc dmitry mozorov & jack pappas on code quotations ...
Progressive f# tutorials nyc dmitry mozorov & jack pappas on code quotations ...
 
Cukeup nyc ian dees on elixir, erlang, and cucumberl
Cukeup nyc ian dees on elixir, erlang, and cucumberlCukeup nyc ian dees on elixir, erlang, and cucumberl
Cukeup nyc ian dees on elixir, erlang, and cucumberl
 
Cukeup nyc peter bell on getting started with cucumber.js
Cukeup nyc peter bell on getting started with cucumber.jsCukeup nyc peter bell on getting started with cucumber.js
Cukeup nyc peter bell on getting started with cucumber.js
 
Agile testing & bdd e xchange nyc 2013 jeffrey davidson & lav pathak & sam ho...
Agile testing & bdd e xchange nyc 2013 jeffrey davidson & lav pathak & sam ho...Agile testing & bdd e xchange nyc 2013 jeffrey davidson & lav pathak & sam ho...
Agile testing & bdd e xchange nyc 2013 jeffrey davidson & lav pathak & sam ho...
 
Progressive f# tutorials nyc rachel reese & phil trelford on try f# from zero...
Progressive f# tutorials nyc rachel reese & phil trelford on try f# from zero...Progressive f# tutorials nyc rachel reese & phil trelford on try f# from zero...
Progressive f# tutorials nyc rachel reese & phil trelford on try f# from zero...
 
Progressive f# tutorials nyc don syme on keynote f# in the open source world
Progressive f# tutorials nyc don syme on keynote f# in the open source worldProgressive f# tutorials nyc don syme on keynote f# in the open source world
Progressive f# tutorials nyc don syme on keynote f# in the open source world
 
Agile testing & bdd e xchange nyc 2013 gojko adzic on bond villain guide to s...
Agile testing & bdd e xchange nyc 2013 gojko adzic on bond villain guide to s...Agile testing & bdd e xchange nyc 2013 gojko adzic on bond villain guide to s...
Agile testing & bdd e xchange nyc 2013 gojko adzic on bond villain guide to s...
 
Dmitry mozorov on code quotations code as-data for f#
Dmitry mozorov on code quotations code as-data for f#Dmitry mozorov on code quotations code as-data for f#
Dmitry mozorov on code quotations code as-data for f#
 
A poet's guide_to_acceptance_testing
A poet's guide_to_acceptance_testingA poet's guide_to_acceptance_testing
A poet's guide_to_acceptance_testing
 
Russ miles-cloudfoundry-deep-dive
Russ miles-cloudfoundry-deep-diveRuss miles-cloudfoundry-deep-dive
Russ miles-cloudfoundry-deep-dive
 
Serendipity-neo4j
Serendipity-neo4jSerendipity-neo4j
Serendipity-neo4j
 
Simon Peyton Jones: Managing parallelism
Simon Peyton Jones: Managing parallelismSimon Peyton Jones: Managing parallelism
Simon Peyton Jones: Managing parallelism
 
Plug 20110217
Plug   20110217Plug   20110217
Plug 20110217
 
Lug presentation
Lug presentationLug presentation
Lug presentation
 
I went to_a_communications_workshop_and_they_t
I went to_a_communications_workshop_and_they_tI went to_a_communications_workshop_and_they_t
I went to_a_communications_workshop_and_they_t
 
Plug saiku
Plug   saikuPlug   saiku
Plug saiku
 

Recently uploaded

From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
Product School
 
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
Product School
 
Key Trends Shaping the Future of Infrastructure.pdf
Key Trends Shaping the Future of Infrastructure.pdfKey Trends Shaping the Future of Infrastructure.pdf
Key Trends Shaping the Future of Infrastructure.pdf
Cheryl Hung
 
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
DanBrown980551
 
Essentials of Automations: Optimizing FME Workflows with Parameters
Essentials of Automations: Optimizing FME Workflows with ParametersEssentials of Automations: Optimizing FME Workflows with Parameters
Essentials of Automations: Optimizing FME Workflows with Parameters
Safe Software
 
Connector Corner: Automate dynamic content and events by pushing a button
Connector Corner: Automate dynamic content and events by pushing a buttonConnector Corner: Automate dynamic content and events by pushing a button
Connector Corner: Automate dynamic content and events by pushing a button
DianaGray10
 
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
James Anderson
 
From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...
From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...
From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...
Product School
 
Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...
Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...
Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...
Ramesh Iyer
 
UiPath Test Automation using UiPath Test Suite series, part 4
UiPath Test Automation using UiPath Test Suite series, part 4UiPath Test Automation using UiPath Test Suite series, part 4
UiPath Test Automation using UiPath Test Suite series, part 4
DianaGray10
 
UiPath Test Automation using UiPath Test Suite series, part 3
UiPath Test Automation using UiPath Test Suite series, part 3UiPath Test Automation using UiPath Test Suite series, part 3
UiPath Test Automation using UiPath Test Suite series, part 3
DianaGray10
 
Bits & Pixels using AI for Good.........
Bits & Pixels using AI for Good.........Bits & Pixels using AI for Good.........
Bits & Pixels using AI for Good.........
Alison B. Lowndes
 
The Art of the Pitch: WordPress Relationships and Sales
The Art of the Pitch: WordPress Relationships and SalesThe Art of the Pitch: WordPress Relationships and Sales
The Art of the Pitch: WordPress Relationships and Sales
Laura Byrne
 
Elevating Tactical DDD Patterns Through Object Calisthenics
Elevating Tactical DDD Patterns Through Object CalisthenicsElevating Tactical DDD Patterns Through Object Calisthenics
Elevating Tactical DDD Patterns Through Object Calisthenics
Dorra BARTAGUIZ
 
Monitoring Java Application Security with JDK Tools and JFR Events
Monitoring Java Application Security with JDK Tools and JFR EventsMonitoring Java Application Security with JDK Tools and JFR Events
Monitoring Java Application Security with JDK Tools and JFR Events
Ana-Maria Mihalceanu
 
When stars align: studies in data quality, knowledge graphs, and machine lear...
When stars align: studies in data quality, knowledge graphs, and machine lear...When stars align: studies in data quality, knowledge graphs, and machine lear...
When stars align: studies in data quality, knowledge graphs, and machine lear...
Elena Simperl
 
AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...
AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...
AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...
Product School
 
Securing your Kubernetes cluster_ a step-by-step guide to success !
Securing your Kubernetes cluster_ a step-by-step guide to success !Securing your Kubernetes cluster_ a step-by-step guide to success !
Securing your Kubernetes cluster_ a step-by-step guide to success !
KatiaHIMEUR1
 
Assuring Contact Center Experiences for Your Customers With ThousandEyes
Assuring Contact Center Experiences for Your Customers With ThousandEyesAssuring Contact Center Experiences for Your Customers With ThousandEyes
Assuring Contact Center Experiences for Your Customers With ThousandEyes
ThousandEyes
 
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
UiPathCommunity
 

Recently uploaded (20)

From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
 
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
 
Key Trends Shaping the Future of Infrastructure.pdf
Key Trends Shaping the Future of Infrastructure.pdfKey Trends Shaping the Future of Infrastructure.pdf
Key Trends Shaping the Future of Infrastructure.pdf
 
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
 
Essentials of Automations: Optimizing FME Workflows with Parameters
Essentials of Automations: Optimizing FME Workflows with ParametersEssentials of Automations: Optimizing FME Workflows with Parameters
Essentials of Automations: Optimizing FME Workflows with Parameters
 
Connector Corner: Automate dynamic content and events by pushing a button
Connector Corner: Automate dynamic content and events by pushing a buttonConnector Corner: Automate dynamic content and events by pushing a button
Connector Corner: Automate dynamic content and events by pushing a button
 
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
 
From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...
From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...
From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...
 
Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...
Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...
Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...
 
UiPath Test Automation using UiPath Test Suite series, part 4
UiPath Test Automation using UiPath Test Suite series, part 4UiPath Test Automation using UiPath Test Suite series, part 4
UiPath Test Automation using UiPath Test Suite series, part 4
 
UiPath Test Automation using UiPath Test Suite series, part 3
UiPath Test Automation using UiPath Test Suite series, part 3UiPath Test Automation using UiPath Test Suite series, part 3
UiPath Test Automation using UiPath Test Suite series, part 3
 
Bits & Pixels using AI for Good.........
Bits & Pixels using AI for Good.........Bits & Pixels using AI for Good.........
Bits & Pixels using AI for Good.........
 
The Art of the Pitch: WordPress Relationships and Sales
The Art of the Pitch: WordPress Relationships and SalesThe Art of the Pitch: WordPress Relationships and Sales
The Art of the Pitch: WordPress Relationships and Sales
 
Elevating Tactical DDD Patterns Through Object Calisthenics
Elevating Tactical DDD Patterns Through Object CalisthenicsElevating Tactical DDD Patterns Through Object Calisthenics
Elevating Tactical DDD Patterns Through Object Calisthenics
 
Monitoring Java Application Security with JDK Tools and JFR Events
Monitoring Java Application Security with JDK Tools and JFR EventsMonitoring Java Application Security with JDK Tools and JFR Events
Monitoring Java Application Security with JDK Tools and JFR Events
 
When stars align: studies in data quality, knowledge graphs, and machine lear...
When stars align: studies in data quality, knowledge graphs, and machine lear...When stars align: studies in data quality, knowledge graphs, and machine lear...
When stars align: studies in data quality, knowledge graphs, and machine lear...
 
AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...
AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...
AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...
 
Securing your Kubernetes cluster_ a step-by-step guide to success !
Securing your Kubernetes cluster_ a step-by-step guide to success !Securing your Kubernetes cluster_ a step-by-step guide to success !
Securing your Kubernetes cluster_ a step-by-step guide to success !
 
Assuring Contact Center Experiences for Your Customers With ThousandEyes
Assuring Contact Center Experiences for Your Customers With ThousandEyesAssuring Contact Center Experiences for Your Customers With ThousandEyes
Assuring Contact Center Experiences for Your Customers With ThousandEyes
 
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
 

Narrative Acceptance Tests River Glide Antony Marcano

  • 1. Narrative Acceptance Tests A Behaviour Driven Approach Antony Marcano & Andy Palmer
  • 4.
  • 5.
  • 6.
  • 7.
  • 9. Photo taken at www.tnmoc.org on site at www.bletchleypark.org.uk
  • 10. Photo taken at www.tnmoc.org on site at www.bletchleypark.org.uk
  • 11. Telephone Game We lose information by repeatedly switching between examples and abstractions http://www.brokenpicturetelephone.com/
  • 12. Example Driven Approaches Why not just use the same examples for the whole process? The developers might even preserve the language of the business domain
  • 14. Example Driven Approaches Common attributes: Desired behaviour is expressed as a concrete example The example is evaluated against the product, demonstrating the absence of the behaviour The behaviour is implemented The example is re-evaluated to determine if the correct behaviour has been implemented Such as: ATDD, TDD, BDD
  • 16. User Stories are elaborated with Examples For each story likely to be worked on in next iteration Have a conversation Customer, Developer & Tester Discuss examples & summarise on back of story card Or, one card per example
  • 17. Implement story (TDD with unit tests) test should pass Have a conversation For each Example noted earlier Express the example as automated acceptance test Test should fail When all tests pass, story is done (almost) During the iteration
  • 18. Given-When-Then Given-When-Then Given some initial context (the givens), When an event occurs, then ensure some outcomes. For example… http://dannorth.net/introducing-bdd
  • 19.
  • 20.
  • 21.
  • 22. A Place To Start As a Team Member I want a place to start So that I know that the software is running
  • 23. Given thatthe FitNesse wiki was able to start for the first time When the Project Team Member attempts to go to the Home Page Then the content of the Home Page for the Project Team Member should be "Welcome to the Wonderful World of FitNesse!"
  • 24. Given that the FitNesse wiki was able to start for the first time When the Project Team Member attempts to go to the Home Page Then the content of the Home Page for the Project Team Membershould be "Welcome to the Wonderful World of FitNesse!"
  • 25. Given that the FitNesse wiki was able to start for the first time When the Project Team Member attempts to go to the Home Page Then the content of the Home Pagefor the Project Team Membershould be "Welcome to the Wonderful World of FitNesse!"
  • 26. Given that the FitNesse wiki was able to start for the first time When the Project Team Member attempts to go to the Home Page Then the content of the Home Pagefor the Project Team Membershould be "Welcome to the Wonderful World of FitNesse!"
  • 27. Edit the Home Page As a Project Team Member I want to edit the Front Page So that it is relevant to my project Let’s leave the slides and do something real…
  • 28. Putting it on the table
  • 29.
  • 30.
  • 31.
  • 32.
  • 33. A more fluent approach Let’s take a look at JNarrate...
  • 34. Other tools and frameworks JBehave Nbehave Cucumber RSpec
  • 35. Further reading… Bridging the Communication Gap -Gojko Adzic Agile Testing: A Practical Guide for Testers and Agile Teams -Lisa Crispin & Janet Gregory FIT for Developing Software: Framework for Integrated Tests-Rick Mugridge & Ward Cunningham

Editor's Notes

  1. Antony Marcano & Andy PalmerExperienced Agile Developers & Coaches for hireCreated http://pairwith.usCreated Narrative Fixture
  2. Requirements are given to BA as examplesBA infers Abstract RulesDevelopers code Abstract Rules (they test by inferring examples from the rules)Testers use BA rules and the software to infer new examples (edge cases)
  3. 10-15 Presenters summarise a User Story to the group15-25 Presenters play the role of customer with participants playing the part of the team - guided to ask appropriate questions to capture examples that illustrate the story25-40 Presenters exchange roles with the participants and elaborate the first example for the user story into an acceptance test (captured in plain text)
  4. It’s technical, aimed at the programmers, not the customerIt doesn’t actually test that you can edit the page (it doesn’t click the save button)