SlideShare a Scribd company logo
1 of 44
human-readable automated testing






Who
What
Why
Where
How






Who am I? Who should use this?
What
Why
Where
How






Who am I? Who should use this?
What is Behat?
Why
Where
How






Who am I? Who should use this?
What is Behat?
Why should you care?
Where
How






Who am I? Who should use this?
What is Behat?
Why should you care?
Where did this come from?
How






Who am I? Who should use this?
What is Behat?
Why should you care?
Where did this come from?
How does it work? How can you use it?
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


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
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?
What is that?
Coined by Dan North, http://dannorth.net
who was teaching Test Driven
Development, and asking questions like:
o Where to start in the process?
o What to test and what not to test?
o How much to test in one go?
o What to call the tests?
o How to understand why a test fails?
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?
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?
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?
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?
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?
• UI
• Service
• Unit
http://www.mountaingoatsoftware.com/blog/the-forgotten-layer-of-the-test-automation-pyramid

* no relation
• UI
• Service
• Unit
http://www.mountaingoatsoftware.com/blog/the-forgotten-layer-of-the-test-automation-pyramid

* no relation
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 criteria in
terms of scenarios and implemented as classes:
 Given [initial context], when [event occurs], then

[ensure some outcomes]
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 criteria in
terms of scenarios and implemented as classes:
 Given [initial context], when [event occurs], then

[ensure some outcomes]
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 criteria in
terms of scenarios and implemented as classes:
 Given [initial context], when [event occurs], then

[ensure some outcomes]
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 criteria in
terms of scenarios and implemented as classes:
 Given [initial context], when [event occurs], then

[ensure some outcomes]
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 criteria in
terms of scenarios and implemented as classes:
 Given [initial context], when [event occurs], then

[ensure some outcomes]
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 criteria in
terms of scenarios and implemented as classes:
 Given [initial context], when [event occurs], then

[ensure some outcomes]
What is Behat?
Behat is a PHP clone of Cucumber
(which was written in Ruby).
It works with Mink, to….
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….


Behat tests the
behavior of your
application described
in special language
called Gherkin.


Behat tests 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?
Behat tests the
behavior of your
application described
in special language
called Gherkin.
 Gherkin is a “Business
Readable Domain
Specific Language”
created especially for
behavior descriptions.

Behat tests 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]
Behat tests 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
Behat tests 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
Behat tests 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
Behat tests 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
Behat tests 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
Behat tests 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
Behat tests 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
Behat tests 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
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


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
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.org site w/ behat.


Why does Drupal.org now 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…


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


The entire team at BioRAFT and especially
 Nathan & Ben, the CEO & CTO who ‘get it’
 Jeremy, Justin, Dan, Diliny, & Michelle



Behat coders everywhere and especially
 Konstantin Kudryashov (everzet)



Drupal coders everywhere and especially
 Melissa Anderson (eliza411)

More Related Content

What's hot

What Is Cucumber?
What Is Cucumber?What Is Cucumber?
What Is Cucumber?QATestLab
 
Detangling Your JavaScript
Detangling Your JavaScriptDetangling Your JavaScript
Detangling Your JavaScriptChris Powers
 
Javascript Tests with Jasmine for Front-end Devs
Javascript Tests with Jasmine for Front-end DevsJavascript Tests with Jasmine for Front-end Devs
Javascript Tests with Jasmine for Front-end DevsChris Powers
 
Behaviour Driven Development
Behaviour Driven DevelopmentBehaviour Driven Development
Behaviour Driven DevelopmentRichard Ruiter
 
Containerized build
Containerized buildContainerized build
Containerized buildDaniel Foo
 
Letter to a Junior Developer: The Engineering Side of Programming
Letter to a Junior Developer: The Engineering Side of ProgrammingLetter to a Junior Developer: The Engineering Side of Programming
Letter to a Junior Developer: The Engineering Side of ProgrammingLazar Kovacevic
 
BDD testing with cucumber
BDD testing with cucumberBDD testing with cucumber
BDD testing with cucumberDaniel Kummer
 
BDD Testing Using Godog - Bangalore Golang Meetup # 32
BDD Testing Using Godog - Bangalore Golang Meetup # 32BDD Testing Using Godog - Bangalore Golang Meetup # 32
BDD Testing Using Godog - Bangalore Golang Meetup # 32OpenEBS
 
Testing with cucumber testing framework
Testing with cucumber testing frameworkTesting with cucumber testing framework
Testing with cucumber testing frameworkAIMDek Technologies
 
Javascript Framework Roundup FYB
Javascript Framework Roundup FYBJavascript Framework Roundup FYB
Javascript Framework Roundup FYBnukeevry1
 
BDD with the Cucumber
BDD with the CucumberBDD with the Cucumber
BDD with the CucumberMücahit Kurt
 
Hands on BDD with cucumber - Agile Goa Sept 2013
Hands on BDD with cucumber -  Agile Goa Sept 2013Hands on BDD with cucumber -  Agile Goa Sept 2013
Hands on BDD with cucumber - Agile Goa Sept 2013Sonik Chopra
 
Perl Behavior Driven Development (BDD)
Perl Behavior Driven Development (BDD)Perl Behavior Driven Development (BDD)
Perl Behavior Driven Development (BDD)Tudor Constantin
 
Bdd – with cucumber and gherkin
Bdd – with cucumber and gherkinBdd – with cucumber and gherkin
Bdd – with cucumber and gherkinArati Joshi
 
Good code, Bad Code
Good code, Bad CodeGood code, Bad Code
Good code, Bad Codejosedasilva
 

What's hot (20)

What Is Cucumber?
What Is Cucumber?What Is Cucumber?
What Is Cucumber?
 
Detangling Your JavaScript
Detangling Your JavaScriptDetangling Your JavaScript
Detangling Your JavaScript
 
Javascript Tests with Jasmine for Front-end Devs
Javascript Tests with Jasmine for Front-end DevsJavascript Tests with Jasmine for Front-end Devs
Javascript Tests with Jasmine for Front-end Devs
 
Behaviour Driven Development
Behaviour Driven DevelopmentBehaviour Driven Development
Behaviour Driven Development
 
Cucumber BDD
Cucumber BDDCucumber BDD
Cucumber BDD
 
Containerized build
Containerized buildContainerized build
Containerized build
 
Letter to a Junior Developer: The Engineering Side of Programming
Letter to a Junior Developer: The Engineering Side of ProgrammingLetter to a Junior Developer: The Engineering Side of Programming
Letter to a Junior Developer: The Engineering Side of Programming
 
Phpers day 2019
Phpers day 2019Phpers day 2019
Phpers day 2019
 
BDD testing with cucumber
BDD testing with cucumberBDD testing with cucumber
BDD testing with cucumber
 
BDD & Cucumber
BDD & CucumberBDD & Cucumber
BDD & Cucumber
 
BDD Testing Using Godog - Bangalore Golang Meetup # 32
BDD Testing Using Godog - Bangalore Golang Meetup # 32BDD Testing Using Godog - Bangalore Golang Meetup # 32
BDD Testing Using Godog - Bangalore Golang Meetup # 32
 
Testing with cucumber testing framework
Testing with cucumber testing frameworkTesting with cucumber testing framework
Testing with cucumber testing framework
 
Javascript Framework Roundup FYB
Javascript Framework Roundup FYBJavascript Framework Roundup FYB
Javascript Framework Roundup FYB
 
SGIN2013-ScrumStartRek-CucumberRecipes-SonikChopra
SGIN2013-ScrumStartRek-CucumberRecipes-SonikChopraSGIN2013-ScrumStartRek-CucumberRecipes-SonikChopra
SGIN2013-ScrumStartRek-CucumberRecipes-SonikChopra
 
How to write bad code using C#
How to write bad code using C#How to write bad code using C#
How to write bad code using C#
 
BDD with the Cucumber
BDD with the CucumberBDD with the Cucumber
BDD with the Cucumber
 
Hands on BDD with cucumber - Agile Goa Sept 2013
Hands on BDD with cucumber -  Agile Goa Sept 2013Hands on BDD with cucumber -  Agile Goa Sept 2013
Hands on BDD with cucumber - Agile Goa Sept 2013
 
Perl Behavior Driven Development (BDD)
Perl Behavior Driven Development (BDD)Perl Behavior Driven Development (BDD)
Perl Behavior Driven Development (BDD)
 
Bdd – with cucumber and gherkin
Bdd – with cucumber and gherkinBdd – with cucumber and gherkin
Bdd – with cucumber and gherkin
 
Good code, Bad Code
Good code, Bad CodeGood code, Bad Code
Good code, Bad Code
 

Similar to Behat - human-readable automated testing

Behaviour Driven Development
Behaviour Driven DevelopmentBehaviour Driven Development
Behaviour Driven DevelopmentAndy Kelk
 
From Specification To Success
From Specification To SuccessFrom Specification To Success
From Specification To SuccessPatchSpace Ltd
 
Developing an Ember Test Strategy - EmberConf 2019
Developing an Ember Test Strategy - EmberConf 2019Developing an Ember Test Strategy - EmberConf 2019
Developing an Ember Test Strategy - EmberConf 2019Todd Jordan
 
Driven Development - Closing the Loop on Scrum
Driven Development - Closing the Loop on ScrumDriven Development - Closing the Loop on Scrum
Driven Development - Closing the Loop on ScrumAdam Englander
 
Behavior Driven Development
Behavior Driven DevelopmentBehavior Driven Development
Behavior Driven DevelopmentNETUserGroupBern
 
Zend con 2016 bdd with behat for beginners
Zend con 2016   bdd with behat for beginnersZend con 2016   bdd with behat for beginners
Zend con 2016 bdd with behat for beginnersAdam Englander
 
PHPConf.asia 2016 - BDD with Behat for Beginners
PHPConf.asia 2016 - BDD with Behat for BeginnersPHPConf.asia 2016 - BDD with Behat for Beginners
PHPConf.asia 2016 - BDD with Behat for BeginnersAdam Englander
 
PHPSpec & Behat: Two Testing Tools That Write Code For You (#phptek edition)
PHPSpec & Behat: Two Testing Tools That Write Code For You (#phptek edition)PHPSpec & Behat: Two Testing Tools That Write Code For You (#phptek edition)
PHPSpec & Behat: Two Testing Tools That Write Code For You (#phptek edition)Joshua Warren
 
pnwphp - PHPSpec & Behat: Two Testing Tools That Write Code For You
pnwphp - PHPSpec & Behat: Two Testing Tools That Write Code For Youpnwphp - PHPSpec & Behat: Two Testing Tools That Write Code For You
pnwphp - PHPSpec & Behat: Two Testing Tools That Write Code For YouJoshua Warren
 
Functional testing with behat
Functional testing with behatFunctional testing with behat
Functional testing with behatTahmina Khatoon
 
Infrastructure is development
Infrastructure is developmentInfrastructure is development
Infrastructure is developmentstahnma
 
[drupalday2017] - Behat per Drupal: test automatici e molto di più
[drupalday2017] - Behat per Drupal: test automatici e molto di più[drupalday2017] - Behat per Drupal: test automatici e molto di più
[drupalday2017] - Behat per Drupal: test automatici e molto di piùDrupalDay
 
Behaviour driven infrastructure
Behaviour driven infrastructureBehaviour driven infrastructure
Behaviour driven infrastructureLindsay Holmwood
 
User Experience Bootcamp for Developers
User Experience Bootcamp for DevelopersUser Experience Bootcamp for Developers
User Experience Bootcamp for DevelopersCatherine Robson
 
Shift Remote: Mobile - Efficiently Building Native Frameworks for Multiple Pl...
Shift Remote: Mobile - Efficiently Building Native Frameworks for Multiple Pl...Shift Remote: Mobile - Efficiently Building Native Frameworks for Multiple Pl...
Shift Remote: Mobile - Efficiently Building Native Frameworks for Multiple Pl...Shift Conference
 
Introduction to Bdd and cucumber
Introduction to Bdd and cucumberIntroduction to Bdd and cucumber
Introduction to Bdd and cucumberNibu Baby
 
Citrix Labs Rapid Prototyping Workshop
Citrix Labs Rapid Prototyping WorkshopCitrix Labs Rapid Prototyping Workshop
Citrix Labs Rapid Prototyping WorkshopReuven Cohen
 

Similar to Behat - human-readable automated testing (20)

Behaviour Driven Development
Behaviour Driven DevelopmentBehaviour Driven Development
Behaviour Driven Development
 
From Specification To Success
From Specification To SuccessFrom Specification To Success
From Specification To Success
 
Developing an Ember Test Strategy - EmberConf 2019
Developing an Ember Test Strategy - EmberConf 2019Developing an Ember Test Strategy - EmberConf 2019
Developing an Ember Test Strategy - EmberConf 2019
 
Driven Development - Closing the Loop on Scrum
Driven Development - Closing the Loop on ScrumDriven Development - Closing the Loop on Scrum
Driven Development - Closing the Loop on Scrum
 
Behavior Driven Development
Behavior Driven DevelopmentBehavior Driven Development
Behavior Driven Development
 
Zend con 2016 bdd with behat for beginners
Zend con 2016   bdd with behat for beginnersZend con 2016   bdd with behat for beginners
Zend con 2016 bdd with behat for beginners
 
BDD, Behat & Drupal
BDD, Behat & DrupalBDD, Behat & Drupal
BDD, Behat & Drupal
 
PHPConf.asia 2016 - BDD with Behat for Beginners
PHPConf.asia 2016 - BDD with Behat for BeginnersPHPConf.asia 2016 - BDD with Behat for Beginners
PHPConf.asia 2016 - BDD with Behat for Beginners
 
PHPSpec & Behat: Two Testing Tools That Write Code For You (#phptek edition)
PHPSpec & Behat: Two Testing Tools That Write Code For You (#phptek edition)PHPSpec & Behat: Two Testing Tools That Write Code For You (#phptek edition)
PHPSpec & Behat: Two Testing Tools That Write Code For You (#phptek edition)
 
pnwphp - PHPSpec & Behat: Two Testing Tools That Write Code For You
pnwphp - PHPSpec & Behat: Two Testing Tools That Write Code For Youpnwphp - PHPSpec & Behat: Two Testing Tools That Write Code For You
pnwphp - PHPSpec & Behat: Two Testing Tools That Write Code For You
 
Functional testing with behat
Functional testing with behatFunctional testing with behat
Functional testing with behat
 
Cucumber_Training_ForQA
Cucumber_Training_ForQACucumber_Training_ForQA
Cucumber_Training_ForQA
 
Infrastructure is development
Infrastructure is developmentInfrastructure is development
Infrastructure is development
 
[drupalday2017] - Behat per Drupal: test automatici e molto di più
[drupalday2017] - Behat per Drupal: test automatici e molto di più[drupalday2017] - Behat per Drupal: test automatici e molto di più
[drupalday2017] - Behat per Drupal: test automatici e molto di più
 
Behaviour driven infrastructure
Behaviour driven infrastructureBehaviour driven infrastructure
Behaviour driven infrastructure
 
User Experience Bootcamp for Developers
User Experience Bootcamp for DevelopersUser Experience Bootcamp for Developers
User Experience Bootcamp for Developers
 
Shift Remote: Mobile - Efficiently Building Native Frameworks for Multiple Pl...
Shift Remote: Mobile - Efficiently Building Native Frameworks for Multiple Pl...Shift Remote: Mobile - Efficiently Building Native Frameworks for Multiple Pl...
Shift Remote: Mobile - Efficiently Building Native Frameworks for Multiple Pl...
 
Introduction to Bdd and cucumber
Introduction to Bdd and cucumberIntroduction to Bdd and cucumber
Introduction to Bdd and cucumber
 
Scrum + bdd + ddd
Scrum + bdd + dddScrum + bdd + ddd
Scrum + bdd + ddd
 
Citrix Labs Rapid Prototyping Workshop
Citrix Labs Rapid Prototyping WorkshopCitrix Labs Rapid Prototyping Workshop
Citrix Labs Rapid Prototyping Workshop
 

More from nyccamp

Drupal As A Jigsaw
Drupal As A JigsawDrupal As A Jigsaw
Drupal As A Jigsawnyccamp
 
A/B Testing and Optimizely Module
A/B Testing and Optimizely ModuleA/B Testing and Optimizely Module
A/B Testing and Optimizely Modulenyccamp
 
ALL YOUR BASE (THEMES) ARE BELONG TO US
ALL YOUR BASE (THEMES) ARE BELONG TO USALL YOUR BASE (THEMES) ARE BELONG TO US
ALL YOUR BASE (THEMES) ARE BELONG TO USnyccamp
 
Drupal Commerce - The Product vs Display Conundrum and How to Explain it to a...
Drupal Commerce - The Product vs Display Conundrum and How to Explain it to a...Drupal Commerce - The Product vs Display Conundrum and How to Explain it to a...
Drupal Commerce - The Product vs Display Conundrum and How to Explain it to a...nyccamp
 
Promotions Vouchers and Offers in Drupal Commerce
Promotions Vouchers and Offers in Drupal CommercePromotions Vouchers and Offers in Drupal Commerce
Promotions Vouchers and Offers in Drupal Commercenyccamp
 
Workbench: Managing Content Management
Workbench: Managing Content ManagementWorkbench: Managing Content Management
Workbench: Managing Content Managementnyccamp
 
Deployment Strategies: Managing Code, Content, and Configurations
Deployment Strategies: Managing Code, Content, and ConfigurationsDeployment Strategies: Managing Code, Content, and Configurations
Deployment Strategies: Managing Code, Content, and Configurationsnyccamp
 
Drupal Aware Design: Good Techniques for Better Themes
Drupal Aware Design: Good Techniques for Better ThemesDrupal Aware Design: Good Techniques for Better Themes
Drupal Aware Design: Good Techniques for Better Themesnyccamp
 
Drupal and Higher Education
Drupal and Higher EducationDrupal and Higher Education
Drupal and Higher Educationnyccamp
 
A New Theme Layer for Drupal 8
A New Theme Layer for Drupal 8A New Theme Layer for Drupal 8
A New Theme Layer for Drupal 8nyccamp
 
Mobile and Responsive Design with Sass
Mobile and Responsive Design with SassMobile and Responsive Design with Sass
Mobile and Responsive Design with Sassnyccamp
 
Drupal and Apache Solr Search Go Together Like Pizza and Beer for Your Site
Drupal and Apache Solr Search Go Together Like Pizza and Beer for Your SiteDrupal and Apache Solr Search Go Together Like Pizza and Beer for Your Site
Drupal and Apache Solr Search Go Together Like Pizza and Beer for Your Sitenyccamp
 
Building Social Networks
Building Social NetworksBuilding Social Networks
Building Social Networksnyccamp
 
The State of Drupal 8
The State of Drupal 8The State of Drupal 8
The State of Drupal 8nyccamp
 
Building Social Networks
Building Social NetworksBuilding Social Networks
Building Social Networksnyccamp
 
Move Into Drupal Using The Migrate Module
Move Into Drupal Using The Migrate ModuleMove Into Drupal Using The Migrate Module
Move Into Drupal Using The Migrate Modulenyccamp
 
Hack Into Drupal Sites (or, How to Secure Your Drupal Site)
Hack Into Drupal Sites (or, How to Secure Your Drupal Site)Hack Into Drupal Sites (or, How to Secure Your Drupal Site)
Hack Into Drupal Sites (or, How to Secure Your Drupal Site)nyccamp
 
Drulenium - Testing Made Easy
Drulenium - Testing Made EasyDrulenium - Testing Made Easy
Drulenium - Testing Made Easynyccamp
 
Node Access in Drupal 7 (and Drupal 8)
Node Access in Drupal 7 (and Drupal 8)Node Access in Drupal 7 (and Drupal 8)
Node Access in Drupal 7 (and Drupal 8)nyccamp
 

More from nyccamp (19)

Drupal As A Jigsaw
Drupal As A JigsawDrupal As A Jigsaw
Drupal As A Jigsaw
 
A/B Testing and Optimizely Module
A/B Testing and Optimizely ModuleA/B Testing and Optimizely Module
A/B Testing and Optimizely Module
 
ALL YOUR BASE (THEMES) ARE BELONG TO US
ALL YOUR BASE (THEMES) ARE BELONG TO USALL YOUR BASE (THEMES) ARE BELONG TO US
ALL YOUR BASE (THEMES) ARE BELONG TO US
 
Drupal Commerce - The Product vs Display Conundrum and How to Explain it to a...
Drupal Commerce - The Product vs Display Conundrum and How to Explain it to a...Drupal Commerce - The Product vs Display Conundrum and How to Explain it to a...
Drupal Commerce - The Product vs Display Conundrum and How to Explain it to a...
 
Promotions Vouchers and Offers in Drupal Commerce
Promotions Vouchers and Offers in Drupal CommercePromotions Vouchers and Offers in Drupal Commerce
Promotions Vouchers and Offers in Drupal Commerce
 
Workbench: Managing Content Management
Workbench: Managing Content ManagementWorkbench: Managing Content Management
Workbench: Managing Content Management
 
Deployment Strategies: Managing Code, Content, and Configurations
Deployment Strategies: Managing Code, Content, and ConfigurationsDeployment Strategies: Managing Code, Content, and Configurations
Deployment Strategies: Managing Code, Content, and Configurations
 
Drupal Aware Design: Good Techniques for Better Themes
Drupal Aware Design: Good Techniques for Better ThemesDrupal Aware Design: Good Techniques for Better Themes
Drupal Aware Design: Good Techniques for Better Themes
 
Drupal and Higher Education
Drupal and Higher EducationDrupal and Higher Education
Drupal and Higher Education
 
A New Theme Layer for Drupal 8
A New Theme Layer for Drupal 8A New Theme Layer for Drupal 8
A New Theme Layer for Drupal 8
 
Mobile and Responsive Design with Sass
Mobile and Responsive Design with SassMobile and Responsive Design with Sass
Mobile and Responsive Design with Sass
 
Drupal and Apache Solr Search Go Together Like Pizza and Beer for Your Site
Drupal and Apache Solr Search Go Together Like Pizza and Beer for Your SiteDrupal and Apache Solr Search Go Together Like Pizza and Beer for Your Site
Drupal and Apache Solr Search Go Together Like Pizza and Beer for Your Site
 
Building Social Networks
Building Social NetworksBuilding Social Networks
Building Social Networks
 
The State of Drupal 8
The State of Drupal 8The State of Drupal 8
The State of Drupal 8
 
Building Social Networks
Building Social NetworksBuilding Social Networks
Building Social Networks
 
Move Into Drupal Using The Migrate Module
Move Into Drupal Using The Migrate ModuleMove Into Drupal Using The Migrate Module
Move Into Drupal Using The Migrate Module
 
Hack Into Drupal Sites (or, How to Secure Your Drupal Site)
Hack Into Drupal Sites (or, How to Secure Your Drupal Site)Hack Into Drupal Sites (or, How to Secure Your Drupal Site)
Hack Into Drupal Sites (or, How to Secure Your Drupal Site)
 
Drulenium - Testing Made Easy
Drulenium - Testing Made EasyDrulenium - Testing Made Easy
Drulenium - Testing Made Easy
 
Node Access in Drupal 7 (and Drupal 8)
Node Access in Drupal 7 (and Drupal 8)Node Access in Drupal 7 (and Drupal 8)
Node Access in Drupal 7 (and Drupal 8)
 

Recently uploaded

Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountPuma Security, LLC
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Servicegiselly40
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonAnna Loughnan Colquhoun
 
Google AI Hackathon: LLM based Evaluator for RAG
Google AI Hackathon: LLM based Evaluator for RAGGoogle AI Hackathon: LLM based Evaluator for RAG
Google AI Hackathon: LLM based Evaluator for RAGSujit Pal
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptxHampshireHUG
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsMaria Levchenko
 
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 AutomationSafe Software
 
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024BookNet Canada
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationRadu Cotescu
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Miguel Araújo
 
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...shyamraj55
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Igalia
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Drew Madelung
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdfhans926745
 
Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Paola De la Torre
 
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...HostedbyConfluent
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxMalak Abu Hammad
 
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersEnhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersThousandEyes
 
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 3652toLead Limited
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreternaman860154
 

Recently uploaded (20)

Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path Mount
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Service
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 
Google AI Hackathon: LLM based Evaluator for RAG
Google AI Hackathon: LLM based Evaluator for RAGGoogle AI Hackathon: LLM based Evaluator for RAG
Google AI Hackathon: LLM based Evaluator for RAG
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
 
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
 
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf
 
Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101
 
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptx
 
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersEnhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
 
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreter
 

Behat - human-readable automated testing

  • 3.      Who am I? Who should use this? What Why Where How
  • 4.      Who am I? Who should use this? What is Behat? Why Where How
  • 5.      Who am I? Who should use this? What is Behat? Why should you care? Where How
  • 6.      Who am I? Who should use this? What is Behat? Why should you care? Where did this come from? How
  • 7.      Who am I? Who should use this? What is Behat? Why should you care? Where did this come from? How does it work? How can you use it?
  • 8. 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 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. 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. What is that? Coined by Dan North, http://dannorth.net who was teaching Test Driven Development, and asking questions like: o Where to start in the process? o What to test and what not to test? o How much to test in one go? o What to call the tests? o How to understand why a test fails?
  • 12. 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. 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. 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. 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. 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. • UI • Service • Unit http://www.mountaingoatsoftware.com/blog/the-forgotten-layer-of-the-test-automation-pyramid * no relation
  • 18. • UI • Service • Unit http://www.mountaingoatsoftware.com/blog/the-forgotten-layer-of-the-test-automation-pyramid * no relation
  • 19. 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 criteria in terms of scenarios and implemented as classes:  Given [initial context], when [event occurs], then [ensure some outcomes]
  • 20. 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 criteria in terms of scenarios and implemented as classes:  Given [initial context], when [event occurs], then [ensure some outcomes]
  • 21. 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 criteria in terms of scenarios and implemented as classes:  Given [initial context], when [event occurs], then [ensure some outcomes]
  • 22. 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 criteria in terms of scenarios and implemented as classes:  Given [initial context], when [event occurs], then [ensure some outcomes]
  • 23. 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 criteria in terms of scenarios and implemented as classes:  Given [initial context], when [event occurs], then [ensure some outcomes]
  • 24. 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 criteria in terms of scenarios and implemented as classes:  Given [initial context], when [event occurs], then [ensure some outcomes]
  • 25. What is Behat? Behat is a PHP clone of Cucumber (which was written in Ruby). It works with Mink, to….
  • 26. 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.  Behat tests the behavior of your application described in special language called Gherkin.
  • 28.  Behat tests 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. Behat tests 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. Behat tests 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. Behat tests 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. Behat tests 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. Behat tests 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. Behat tests 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. Behat tests 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. Behat tests 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. Behat tests 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. Behat tests 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
  • 39. 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.  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. 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.org site w/ behat.
  • 42.  Why does Drupal.org now 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.  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.  The entire team at BioRAFT and especially  Nathan & Ben, the CEO & CTO who ‘get it’  Jeremy, Justin, Dan, Diliny, & Michelle  Behat coders everywhere and especially  Konstantin Kudryashov (everzet)  Drupal coders everywhere and especially  Melissa Anderson (eliza411)