Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.
Upcoming SlideShare
What to Upload to SlideShare
What to Upload to SlideShare
Loading in …3
×
1 of 55

"Our BDDs are broken!" Lean Agile Exchange 2020

1

Share

Download to read offline

Is the goal of your QA team to increase the number of automated tests? Are managers looking for tools that allow test-automation without the need for development skills? Are you using Given/When/Then phrasing to write automation tests?

In this session we’ll briefly define what BDD is, spend a bit longer describing what it isn’t, and look at several typical examples of what can go wrong if you use Cucumber when you’re not following a BDD approach.

Related Books

Free with a 30 day trial from Scribd

See all

Related Audiobooks

Free with a 30 day trial from Scribd

See all

"Our BDDs are broken!" Lean Agile Exchange 2020

  1. 1. “Our BDDs are broken!” Seb Rose, BDD advocate seb.rose@smartbear.com @sebrose
  2. 2. @sebrose seb.rose@smartbear.com Agenda • Preface • Background • Discovery • Formulation • Automation • Epilogue
  3. 3. @sebrose seb.rose@smartbear.com “Our BDDs are broken” - A. Client, 2019
  4. 4. @sebrose seb.rose@smartbear.com Flashback - DOORS, 1998
  5. 5. @sebrose seb.rose@smartbear.com What’s changed in those 20 years?
  6. 6. @sebrose seb.rose@smartbear.com What’s changed in those 20 years?
  7. 7. @sebrose seb.rose@smartbear.com What’s changed in those 20 years? Faster feedback + More frequent releases
  8. 8. @sebrose seb.rose@smartbear.com What’s changed in those 20 years? Faster feedback + More frequent releases Fast, reliable, automated tests
  9. 9. @sebrose seb.rose@smartbear.com Agenda • Preface • Background • Discovery • Formulation • Automation • Epilogue
  10. 10. @sebrose seb.rose@smartbear.com BDD core practices Create a shared understanding of the requirements through collaboraDon, typically achieved through a structured conversaDon centered on rules and examples Examples of system behaviour are documented using business terminology The documentaDon is automated, creaDng living documentaDon that verifies the system’s behaviour
  11. 11. @sebrose seb.rose@smartbear.com BDD core practices Examples of system behaviour are documented using business terminology The documentaDon is automated, creaDng living documentaDon that verifies the system’s behaviour Create a shared understanding of the requirements through collabora5on, typically achieved through a structured conversa5on centered on rules and examples
  12. 12. @sebrose seb.rose@smartbear.com BDD core practices Create a shared understanding of the requirements through collaboraDon, typically achieved through a structured conversaDon centered on rules and examples The documentaDon is automated, creaDng living documentaDon that verifies the system’s behaviour Examples of system behaviour are documented using business terminology
  13. 13. @sebrose seb.rose@smartbear.com BDD core practices Create a shared understanding of the requirements through collaboraDon, typically achieved through a structured conversaDon centered on rules and examples Examples of system behaviour are documented using business terminology The documenta5on is automated, crea5ng living documenta5on that verifies the system’s behaviour
  14. 14. @sebrose seb.rose@smartbear.com Cucumber core concepts
  15. 15. @sebrose seb.rose@smartbear.com Cucumber core concepts Feature files - plain text Scenarios - aka examples - contain steps Gherkin - Business readable
  16. 16. @sebrose seb.rose@smartbear.com Cucumber core concepts Feature files - plain text Scenarios - aka examples - contain steps Gherkin - Business readable AutomaDon - “glue” code Step definiDons Many languages - Java, Ruby, JS, Go - .
  17. 17. @sebrose seb.rose@smartbear.com Cucumber core concepts ApplicaDon Feature files - plain text Scenarios - aka examples - contain steps Gherkin - Business readable AutomaDon - “glue” code Step definiDons Many languages - Java, Ruby, JS, Go - .
  18. 18. @sebrose seb.rose@smartbear.com Cucumber core concepts ApplicaDon Feature files - plain text Scenarios - aka examples - contain steps Gherkin - Business readable AutomaDon - “glue” code Step definiDons Many languages - Java, Ruby, JS, Go - .
  19. 19. @sebrose seb.rose@smartbear.com Terminology
  20. 20. @sebrose seb.rose@smartbear.com Terminology BDD - soPware development approach driven by desired behaviour
  21. 21. @sebrose seb.rose@smartbear.com Terminology BDD - soPware development approach driven by desired behaviour Example - concrete illustraDon of how the system behaves
  22. 22. @sebrose seb.rose@smartbear.com Terminology BDD - soPware development approach driven by desired behaviour Example - concrete illustraDon of how the system behaves Scenario - example formulated in business language
  23. 23. @sebrose seb.rose@smartbear.com Terminology BDD - soPware development approach driven by desired behaviour Example - concrete illustraDon of how the system behaves Scenario - example formulated in business language “the BDDs” - collecDve term for automated tests executed by Cucumber
  24. 24. @sebrose seb.rose@smartbear.com Terminology BDD - soPware development approach driven by desired behaviour Example - concrete illustraDon of how the system behaves Scenario - example formulated in business language “the BDDs” - collecDve term for automated tests executed by Cucumber “the BDDs” - collecDve term for automated tests executed by Cucumber
  25. 25. @sebrose seb.rose@smartbear.com Agenda • Preface • Background • Discovery • Formulation • Automation • Epilogue
  26. 26. @sebrose seb.rose@smartbear.com Discovery should be collaborative https://cucumber.io/blog/bdd/example-mapping-introduction/ https://www.youtube.com/watch?v=VwvrGfWmG_U http://bddbooks.com
  27. 27. @sebrose seb.rose@smartbear.com Agenda • Preface • Background • Discovery • Formulation • Automation • Epilogue
  28. 28. @sebrose seb.rose@smartbear.com Tester writes scenarios • Take one manual test script
  29. 29. @sebrose seb.rose@smartbear.com PO/BA writes scenarios
  30. 30. @sebrose seb.rose@smartbear.com Scenarios are not reviewed Problem domain SoluDon domain Ubiquitous language
  31. 31. @sebrose seb.rose@smartbear.com Agenda • Preface • Background • Discovery • Formulation • Automation • Epilogue
  32. 32. @sebrose seb.rose@smartbear.com Scenarios automated after coding Behaviour-Driven Development
  33. 33. @sebrose seb.rose@smartbear.com Scenarios automated after coding Behaviour-Driven DevelopmentDriven
  34. 34. @sebrose seb.rose@smartbear.com Test automation team does automation hZps://cucumber.io/blog/bdd/bdd-is-not-test-automaDon/
  35. 35. @sebrose seb.rose@smartbear.com Test automation team does automation hZps://cucumber.io/blog/bdd/bdd-is-not-test-automaDon/ Test automation != BDD
  36. 36. @sebrose seb.rose@smartbear.com Behaviour-Driven Development Devs write automation library for testers
  37. 37. @sebrose seb.rose@smartbear.com Devs write automation library for testers hZps://aslakhellesoy.com/post/11055981222/the-training-wheels-came-off
  38. 38. @sebrose seb.rose@smartbear.com Devs write automation library for testers hZps://aslakhellesoy.com/post/11055981222/the-training-wheels-came-off
  39. 39. @sebrose seb.rose@smartbear.com Developers don’t use TDD hZp://growing-object-oriented-soPware.com/figures/tdd-with-acceptance-tests.svg
  40. 40. @sebrose seb.rose@smartbear.com Agenda • Preface • Background • Discovery • Formulation • Automation • Epilogue
  41. 41. @sebrose seb.rose@smartbear.com BDD tasks and activities hZps://www.linkedin.com/pulse/bdd-tasks-acDviDes-seb-rose/ http://bddbooks.com
  42. 42. @sebrose seb.rose@smartbear.com Drinking our own champagne hZps://reports.cucumber.io/
  43. 43. @sebrose seb.rose@smartbear.com Multiple example maps hZps://studio.cucumber.io
  44. 44. @sebrose seb.rose@smartbear.com Example map hZps://examplemapping.cucumber.io
  45. 45. @sebrose seb.rose@smartbear.com Features hZps://github.com/cucumber/cucumber-ruby/blob/master/features/docs/cli/publish_banner.feature
  46. 46. @sebrose seb.rose@smartbear.com Programmer tests hZps://github.com/cucumber/cucumber-jvm/blob/main/core/src/test/java/io/cucumber/core/opDons/ CucumberProperDesParserTest.java
  47. 47. @sebrose seb.rose@smartbear.com Results
  48. 48. @sebrose seb.rose@smartbear.com bddbooks.com Wrap-up
  49. 49. @sebrose seb.rose@smartbear.com BDD is collaborative bddbooks.com Wrap-up
  50. 50. @sebrose seb.rose@smartbear.com BDD != Test Automation BDD is collaborative bddbooks.com Wrap-up
  51. 51. @sebrose seb.rose@smartbear.com BDD != Test Automation The 2nd “D” in BDD stands for “Driven” BDD is collaborative bddbooks.com Wrap-up
  52. 52. @sebrose seb.rose@smartbear.com BDD != Test Automation The 2nd “D” in BDD stands for “Driven” BDD is collaborative There’s no such thing as “BDDs” ! bddbooks.com Wrap-up
  53. 53. @sebrose seb.rose@smartbear.com BDD != Test Automation The 2nd “D” in BDD stands for “Driven” BDD is collaborative There’s no such thing as “BDDs” ! bddbooks.com Wrap-up Tests of all sorts are a source of valuable feedback
  54. 54. Seb Rose Twitter: @sebrose Blog: https://cucumber.io/blog/ E-mail: seb.rose@smartbear.com http://bddbooks.com hZps://cucumber.io/resources/ webinars/beZer-requirements- by-harnessing-examples/

×