1 / 44

Behat – an introduction

human-readable automated testing. Behat – an introduction. Overview of this presentation . Who What Why Where How. Overview of this presentation . Who am I? Who should use this? What Why Where How. Overview of this presentation . Who am I? Who should use this?

chibale
Download Presentation

Behat – an introduction

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. human-readable automated testing Behat – an introduction

  2. Overview of this presentation • Who • What • Why • Where • How

  3. Overview of this presentation • Who am I?Who should use this? • What • Why • Where • How

  4. Overview of this presentation • Who am I? Who should use this? • What is Behat? • Why • Where • How

  5. Overview of this presentation • Who am I? Who should use this? • What is Behat? • Why should you care? • Where • How

  6. Overview of this presentation • Who am I? Who should use this? • What is Behat? • Why should you care? • Where did thiscome from? • How

  7. Overview of this presentation • Who am I? Who should use this? • What is Behat? • Why should you care? • Where did thiscome from? • How does it work? How can you use it?

  8. Who am I? Seth Cohn • @sethcohn at drupal.org, twitter, and elsewhere • Almost 9 years of Drupal • Worked as independent, part of development companies,non-profits, and more.. • Elected in NH in 2010 as State Representative, prime sponsored the first Open Source/Open Data bill passed into law in USA

  9. Who should use this? • Who is the target of this talk? • Developers who want to be clear on what they are being asked to build • Project Managers who want to be clear on what they are requesting be built • Anyone using Agile methods or who wants to… • End Users working to get new useful features built • Anyone wanting to drive focused development

  10. Behat is? What is Behat? “Behat is a tool that makes behavior driven development (BDD) possible.” http://docs.behat.org first line of the quick intro So let’s ask what BDD is?

  11. behavior driven development (BDD)? What is that? Coined by Dan North, http://dannorth.net who was teaching Test Driven Development, and asking questions like: • Where to start in the process? • What to test and what not to test? • How much to test in one go? • What to call the tests? • How to understand why a test fails?

  12. behavior driven development (BDD)? What is that? Coined by Dan North, http://dannorth.net who was teaching Test Driven Development, and asking questions like: • Where to start in the process? • What to test and what not to test? • How much to test in one go? • What to call the tests? • How to understand why a test fails?

  13. behavior driven development (BDD)? What is that? Coined by Dan North, http://dannorth.net who was teaching Test Driven Development, and asking questions like: • Where to start in the process? • What to test and what not to test? • How much to test in one go? • What to call the tests? • How to understand why a test fails?

  14. behavior driven development (BDD)? What is that? Coined by Dan North, http://dannorth.net who was teaching Test Driven Development, and asking questions like: • Where to start in the process? • What to test and what not to test? • How much to test in one go? • What to call the tests? • How to understand why a test fails?

  15. behavior driven development (BDD)? What is that? Coined by Dan North, http://dannorth.net who was teaching Test Driven Development, and asking questions like: • Where to start in the process? • What to test and what not to test? • How much to test in one go? • What to call the tests? • How to understand why a test fails?

  16. behavior driven development (BDD)? What is that? Coined by Dan North, http://dannorth.net who was teaching Test Driven Development, and asking questions like: • Where to start in the process? • What to test and what not to test? • How much to test in one go? • What to call the tests? • How to understand why a test fails?

  17. Testing Pyramid – Mike Cohn* • UI • Service • Unit http://www.mountaingoatsoftware.com/blog/the-forgotten-layer-of-the-test-automation-pyramid* no relation

  18. Testing Pyramid – Mike Cohn* • UI • Service • Unit http://www.mountaingoatsoftware.com/blog/the-forgotten-layer-of-the-test-automation-pyramid* no relation

  19. behavior driven development (BDD)? BDD rethinks testing: • should be written in order of business value • should use the standard agile framework of a User story: • "As a [role] I want [feature] so that [benefit]” • should be written with Acceptance criteriain terms of scenarios and implemented as classes: • Given [initial context], when [event occurs], then [ensure some outcomes]

  20. behavior driven development (BDD)? BDD rethinks testing: • should be written in order of business value • should use the standard agile framework of a User story: • "As a [role] I want [feature] so that [benefit]” • should be written with Acceptance criteriain terms of scenarios and implemented as classes: • Given [initial context], when [event occurs], then [ensure some outcomes]

  21. behavior driven development (BDD)? BDD rethinks testing: • should be written in order of business value • should use the standard agile framework of a User story: • "As a [role] I want [feature] so that [benefit]” • should be written with Acceptance criteriain terms of scenarios and implemented as classes: • Given [initial context], when [event occurs], then [ensure some outcomes]

  22. behavior driven development (BDD)? BDD rethinks testing: • should be written in order of business value • should use the standard agile framework of a User story: • "As a [role] I want [feature] so that [benefit]” • should be written with Acceptance criteriain terms of scenarios and implemented as classes: • Given [initial context], when [event occurs], then [ensure some outcomes]

  23. behavior driven development (BDD)? BDD rethinks testing: • should be written in order of business value • should use the standard agile framework of a User story: • "As a [role] I want [feature] so that [benefit]” • should be written with Acceptance criteriain terms of scenarios and implemented as classes: • Given [initial context], when [event occurs], then [ensure some outcomes]

  24. behavior driven development (BDD)? BDDrethinks testing: • should be written in order of business value • should use the standard agileframework of a User story: • "As a [role] I want [feature] so that [benefit]” • should be written with Acceptance criteriain terms of scenariosand implemented asclasses: • Given [initial context], when [event occurs], then [ensure some outcomes]

  25. Behat is? (let’s try again!) What is Behat? Behat is a PHP clone of Cucumber (which was written in Ruby). It works with Mink, to….

  26. Behat is? (let’s try again!) What is Behat? Behat is a PHP clone of Cucumber (which was written in Ruby). It works with Mink, to…. WHA? Ok, let’s try again….

  27. Pieces that make up ‘Behat’ • Behattests the behavior of your application described in special language called Gherkin.

  28. Pieces that make up ‘Behat’ • Behattests the behavior of your application described in special language called Gherkin. • Behat is a clone of a similar tool in Ruby called Cucumber. • Cucumber? • Gherkin! • Behat?

  29. Pieces that make up ‘Behat’ • Behattests the behavior of your application described in special language called Gherkin. • Gherkin is a “Business Readable Domain Specific Language” created especially for behavior descriptions.

  30. Pieces that make up ‘Behat’ • Behattests the behavior of your application described in special language called Gherkin. • Gherkin is a “Business Readable Domain Specific Language” created especially for behavior descriptions. Example? Feature:"As a [role] I want [feature] so that [benefit]” Scenario: Given [initial context], when [event occurs], then [ensure some outcomes]

  31. Pieces that make up ‘Behat’ • Behattests the behavior of your application described in special language called Gherkin. • Gherkin is a Business Readable, Domain Specific Language created especially for behavior descriptions. • Mink is an open source acceptance test framework for web applications, written in PHP 5.3

  32. Pieces that make up ‘Behat’ • Behattests the behavior of your application described in special language called Gherkin. • Gherkin is a Business Readable, Domain Specific Language created especially for behavior descriptions. • Mink is an open source acceptance test framework for web applications, written in PHP 5.3 • GoutteDriver • SahiDriver • ZombieDriver • SeleniumDriver • Selenium2Driver

  33. Pieces that make up ‘Behat’ • Behattests the behavior of your application described in special language called Gherkin. • Gherkin is a Business Readable, Domain Specific Language created especially for behavior descriptions. • Mink is an open source acceptance test framework for web applications, written in PHP 5.3 • GoutteDriver • SahiDriver • ZombieDriver • SeleniumDriver • Selenium2Driver

  34. Pieces that make up ‘Behat’ • Behattests the behavior of your application described in special language called Gherkin. • Gherkin is a Business Readable, Domain Specific Language created especially for behavior descriptions. • Mink is an open source acceptance test framework for web applications, written in PHP 5.3 • No Javascript driver • SahiDriver • ZombieDriver • SeleniumDriver • Selenium2Driver

  35. Pieces that make up ‘Behat’ • Behattests the behavior of your application described in special language called Gherkin. • Gherkin is a Business Readable, Domain Specific Language created especially for behavior descriptions. • Mink is an open source acceptance test framework for web applications, written in PHP 5.3 • No Javascript driver • Sahi Proxy Driver • ZombieDriver • SeleniumDriver • Selenium2Driver

  36. Pieces that make up ‘Behat’ • Behattests the behavior of your application described in special language called Gherkin. • Gherkin is a Business Readable, Domain Specific Language created especially for behavior descriptions. • Mink is an open source acceptance test framework for web applications, written in PHP 5.3 • No Javascript driver • Sahi Proxy Driver • Headless JS Driver • SeleniumDriver • Selenium2Driver

  37. Pieces that make up ‘Behat’ • Behattests the behavior of your application described in special language called Gherkin. • Gherkin is a Business Readable, Domain Specific Language created especially for behavior descriptions. • Mink is an open source acceptance test framework for web applications, written in PHP 5.3 • No Javascript driver • Sahi Proxy Driver • Headless JS Driver • Selenium! Driver • Selenium2 Driver

  38. Pieces that make up ‘Behat’ • Behattests the behavior of your application described in special language called Gherkin. • Gherkinis a Business Readable, Domain Specific Language created especially for behavior descriptions. • Minkis an open source acceptance test framework for web applications, written in PHP 5.3 • No Javascript driver • Sahi Proxy Driver • Headless JS Driver • SeleniumDriver • Selenium2Driver

  39. Nitty Gritty details Or how the heck does this work? • Sites we don’t control (blackbox) – Wikipedia demo example • Sites we do control (but still blackbox) – local Drupal 8 install demo example • Whitebox – not demoing today

  40. Why should Drupal embrace BDD? • Benefits to community • Better testing of all of the code, especially code you didn’t author yourself • Benefits to developer • Write simpler tests and get cleaner tests • improve your code, and your overall site especially with help of non-tech folks • Benefits to end user and site owners • PROFIT! Business focus = productive changes! • Better communication of needs and goals

  41. Which behat‘module’ to use? Modules at Drupal.org: • behat: It allows you to write feature tests for a Drupal site using SimpleTest API functions and assertions in step definitions. • behat_testing: Integrates behat with drush and adds own step definitions for Drupal • drupalextension: Provides a DrupalExtension with Drupal step definitions. • doobie: used to test Drupal.orgsite w/ behat.

  42. Drupal.org • Why does Drupal.orgnow use Behat? • Developers don’t get access to the main Drupal boxes… • Breaking Drupal.org is a bad thing! • Updating from D5 to D6 to D7 (to D8…)? Don’t want to lose features, functionality, etc…

  43. Drupal/BehatResources • Behat Drupal Group http://groups.drupal.org/behat • Melissa’s articles in Drupal Watchdog • http://drupalwatchdog.com/2/2/behat-mink • Slide shows • http://bdd.alexo.it/slides/dcessen.html • https://portland2013.drupal.org/session/behat-behavioral-driven-development-and-selenium-drupal

  44. Thank you to… • The entire team at BioRAFT and especially • Nathan & Ben, the CEO & CTO who ‘get it’ • Jeremy, Justin, Dan, Diliny, & Michelle • Behatcoders everywhere and especially • Konstantin Kudryashov(everzet) • Drupal coders everywhere and especially • Melissa Anderson (eliza411)

More Related