SlideShare una empresa de Scribd logo
1 de 35
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

Más contenido relacionado

Similar a Narrative Acceptance Tests River Glide Antony Marcano

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
 
Technology professionallearning aug 2011 (protected)
Technology professionallearning aug 2011 (protected)Technology professionallearning aug 2011 (protected)
Technology professionallearning aug 2011 (protected)
David C. Barrow Elementary
 

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

Más de 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 manheim
Skills Matter
 
Russ miles-cloudfoundry-deep-dive
Russ miles-cloudfoundry-deep-diveRuss miles-cloudfoundry-deep-dive
Russ miles-cloudfoundry-deep-dive
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_t
Skills Matter
 

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

Último

Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
Joaquim Jorge
 

Último (20)

Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a Fresher
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonets
 
What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century education
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men
 

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

Notas del editor

  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)