SlideShare a Scribd company logo
1 of 30
How and why we should use
Behat?
About me
• Bozhidar Boshnakov
• QA Department Manager @ FFW
• bozhidar.boshnakov@gmail.com
• Drupal.org – bboshnakov
• Linkedin.com/in/bboshnakov
Agenda
• BDD – Behaviour-Driven Development
• Gherkin
• Behat
• Mink
Can make progress …
… without process
This is not a good thing!
SMART PEOPLE
•Design, plan and prepare first
•… then do the work
•This produces better results FASTER!
Professionals
What is Behaviour-Driven
Development? (BDD)
“BDD is about implementing an
application by describing its behavior
from the perspective of its
stakeholders.” – Dan North
“BDD is when you use examples in
conversations to illustrate behaviour.” –
Liz Keogh
BDD is about delivering
software that matters.
Never
45%
Rarely
19%
Sometimes
16%
Often
13%
Always
7%
THE STANDISH GROUP
Feature usage in enterprise software
WE DELIVER WASTE
IN FORM OF THE FEATURES
Your client
does not care
about your scope
Your client
does not care
about his budget
Your client
only care
about his business
Your client worries about
his budget and your scope
because you do not care
about his business
START TALKING!
USING THE LANGUAGE BUSINESS CAN UNDERSTAND
Gherkin is a Business Readable, Domain
Specific Language created especially for
behavior descriptions. It gives you the
ability to remove logic details
from behavior tests.
Gherkin
Feature: Banana Calculator
As Bob the Banana merchant,
I want a calculator that can add the amount of
bananas so that I can know how many bananas I
currently have
Scenario: Will add 2 banana amounts
Given I have 3 Bananas
When I add 5 Bananas
Then I should have 8 Banana
Gherkin Syntax
This is where
and come in
Behat is an open source behavior-
driven development framework
for PHP 5.3+.
One of the most important parts in the
web is a browser. A browser is the
window through which web application
users interact with the application and
other users.
Headless
browser
emulators
Browser
controllers?
•Control the Browser – Session
•Cookies and Headers management
•HTTP Authentication
•Traverse the Page - Selectors
•Manipulate the Page
Selenium WebDriver
Full web stack
No browser required!
PhantomJS
All configuration happens inside a
single configuration file in the
YAML format.
Behat.yml
•Behat is built upon BDD
•Behat is flexible
•Behat is open-source
•Behat is a challange
Why Behat?
What is the difference
between TDD and BDD?
Thank you!
www.qachallengeaccepted.com

More Related Content

Similar to QA Challange Accepted - How and why we should use Behat?

Agile and data driven product development oleh Dhiku VP Product KMK Online
Agile and data driven product development oleh Dhiku VP Product KMK OnlineAgile and data driven product development oleh Dhiku VP Product KMK Online
Agile and data driven product development oleh Dhiku VP Product KMK OnlineRein Mahatma
 
How to make a great website
How to make a great websiteHow to make a great website
How to make a great websiteDr. Taher Ghazal
 
SenchaCon 2016: Using Ext JS 6 for Cross-Platform Development on Mobile - And...
SenchaCon 2016: Using Ext JS 6 for Cross-Platform Development on Mobile - And...SenchaCon 2016: Using Ext JS 6 for Cross-Platform Development on Mobile - And...
SenchaCon 2016: Using Ext JS 6 for Cross-Platform Development on Mobile - And...Sencha
 
Agile Software Development
Agile Software DevelopmentAgile Software Development
Agile Software DevelopmentAhmet Bulut
 
A step-by-step guide to behavior-driven development
A step-by-step guide to behavior-driven developmentA step-by-step guide to behavior-driven development
A step-by-step guide to behavior-driven developmentvaluebound
 
How to build an awesome mobile APP
How to build an awesome mobile APPHow to build an awesome mobile APP
How to build an awesome mobile APPBSP Media Group
 
How to build an awesome mobile APP
How to build an awesome mobile APPHow to build an awesome mobile APP
How to build an awesome mobile APPBSP Media Group
 
Dominoapplikationen im Wandel der Zeit: Alles neu mit HCL Nomad Web
Dominoapplikationen im Wandel der Zeit: Alles neu mit HCL Nomad WebDominoapplikationen im Wandel der Zeit: Alles neu mit HCL Nomad Web
Dominoapplikationen im Wandel der Zeit: Alles neu mit HCL Nomad Webpanagenda
 
Search Engine Optimization (Seo) for Developers
Search Engine Optimization (Seo) for DevelopersSearch Engine Optimization (Seo) for Developers
Search Engine Optimization (Seo) for DevelopersMatthew Robinson
 
Improving frontend performance
Improving frontend performanceImproving frontend performance
Improving frontend performanceSagar Desarda
 
Automating Web Application Deployment
Automating Web Application DeploymentAutomating Web Application Deployment
Automating Web Application DeploymentMathew Byrne
 
Inflow June Workshop: Amy little on Site Quality
Inflow June Workshop: Amy little on Site QualityInflow June Workshop: Amy little on Site Quality
Inflow June Workshop: Amy little on Site QualityGoInflow
 
Myths and Challenges of Behaviour Driven Development
Myths and Challenges of Behaviour Driven DevelopmentMyths and Challenges of Behaviour Driven Development
Myths and Challenges of Behaviour Driven DevelopmentPankaj Nakhat
 
"Prismapp Product Demo And Behind The Scenes" by Fauzan Emmerling (Prism)
"Prismapp Product Demo And Behind The Scenes" by Fauzan Emmerling (Prism)"Prismapp Product Demo And Behind The Scenes" by Fauzan Emmerling (Prism)
"Prismapp Product Demo And Behind The Scenes" by Fauzan Emmerling (Prism)Tech in Asia ID
 
Getting started with dev tools (atl)
Getting started with dev tools (atl)Getting started with dev tools (atl)
Getting started with dev tools (atl)Thinkful
 
SEO and User Experience (UX): A Vision of Collaboration
SEO and User Experience (UX): A Vision of CollaborationSEO and User Experience (UX): A Vision of Collaboration
SEO and User Experience (UX): A Vision of CollaborationJonathon Colman
 
Intranet Success Series: Part 5- Organizational & User requirements
Intranet Success Series: Part 5- Organizational & User requirements Intranet Success Series: Part 5- Organizational & User requirements
Intranet Success Series: Part 5- Organizational & User requirements Bonzai Intranet
 
You cant be agile if your code sucks
You cant be agile if your code sucksYou cant be agile if your code sucks
You cant be agile if your code sucksPeter Gfader
 

Similar to QA Challange Accepted - How and why we should use Behat? (20)

BDD, Behat & Drupal
BDD, Behat & DrupalBDD, Behat & Drupal
BDD, Behat & Drupal
 
Agile and data driven product development oleh Dhiku VP Product KMK Online
Agile and data driven product development oleh Dhiku VP Product KMK OnlineAgile and data driven product development oleh Dhiku VP Product KMK Online
Agile and data driven product development oleh Dhiku VP Product KMK Online
 
How to make a great website
How to make a great websiteHow to make a great website
How to make a great website
 
SenchaCon 2016: Using Ext JS 6 for Cross-Platform Development on Mobile - And...
SenchaCon 2016: Using Ext JS 6 for Cross-Platform Development on Mobile - And...SenchaCon 2016: Using Ext JS 6 for Cross-Platform Development on Mobile - And...
SenchaCon 2016: Using Ext JS 6 for Cross-Platform Development on Mobile - And...
 
Agile Software Development
Agile Software DevelopmentAgile Software Development
Agile Software Development
 
A step-by-step guide to behavior-driven development
A step-by-step guide to behavior-driven developmentA step-by-step guide to behavior-driven development
A step-by-step guide to behavior-driven development
 
Seo ux-panel-sic
Seo ux-panel-sicSeo ux-panel-sic
Seo ux-panel-sic
 
How to build an awesome mobile APP
How to build an awesome mobile APPHow to build an awesome mobile APP
How to build an awesome mobile APP
 
How to build an awesome mobile APP
How to build an awesome mobile APPHow to build an awesome mobile APP
How to build an awesome mobile APP
 
Dominoapplikationen im Wandel der Zeit: Alles neu mit HCL Nomad Web
Dominoapplikationen im Wandel der Zeit: Alles neu mit HCL Nomad WebDominoapplikationen im Wandel der Zeit: Alles neu mit HCL Nomad Web
Dominoapplikationen im Wandel der Zeit: Alles neu mit HCL Nomad Web
 
Search Engine Optimization (Seo) for Developers
Search Engine Optimization (Seo) for DevelopersSearch Engine Optimization (Seo) for Developers
Search Engine Optimization (Seo) for Developers
 
Improving frontend performance
Improving frontend performanceImproving frontend performance
Improving frontend performance
 
Automating Web Application Deployment
Automating Web Application DeploymentAutomating Web Application Deployment
Automating Web Application Deployment
 
Inflow June Workshop: Amy little on Site Quality
Inflow June Workshop: Amy little on Site QualityInflow June Workshop: Amy little on Site Quality
Inflow June Workshop: Amy little on Site Quality
 
Myths and Challenges of Behaviour Driven Development
Myths and Challenges of Behaviour Driven DevelopmentMyths and Challenges of Behaviour Driven Development
Myths and Challenges of Behaviour Driven Development
 
"Prismapp Product Demo And Behind The Scenes" by Fauzan Emmerling (Prism)
"Prismapp Product Demo And Behind The Scenes" by Fauzan Emmerling (Prism)"Prismapp Product Demo And Behind The Scenes" by Fauzan Emmerling (Prism)
"Prismapp Product Demo And Behind The Scenes" by Fauzan Emmerling (Prism)
 
Getting started with dev tools (atl)
Getting started with dev tools (atl)Getting started with dev tools (atl)
Getting started with dev tools (atl)
 
SEO and User Experience (UX): A Vision of Collaboration
SEO and User Experience (UX): A Vision of CollaborationSEO and User Experience (UX): A Vision of Collaboration
SEO and User Experience (UX): A Vision of Collaboration
 
Intranet Success Series: Part 5- Organizational & User requirements
Intranet Success Series: Part 5- Organizational & User requirements Intranet Success Series: Part 5- Organizational & User requirements
Intranet Success Series: Part 5- Organizational & User requirements
 
You cant be agile if your code sucks
You cant be agile if your code sucksYou cant be agile if your code sucks
You cant be agile if your code sucks
 

More from Bozhidar Boshnakov

Object-Oriented Programming with PHP (part 1)
Object-Oriented Programming with PHP (part 1)Object-Oriented Programming with PHP (part 1)
Object-Oriented Programming with PHP (part 1)Bozhidar Boshnakov
 
PMG Gabrovo - Web Development Level 0 - Introduction
PMG Gabrovo - Web Development Level 0 - IntroductionPMG Gabrovo - Web Development Level 0 - Introduction
PMG Gabrovo - Web Development Level 0 - IntroductionBozhidar Boshnakov
 
Как да направим живота си по - лесен с добър QA подход
Как да направим живота си по - лесен с добър QA подходКак да направим живота си по - лесен с добър QA подход
Как да направим живота си по - лесен с добър QA подходBozhidar Boshnakov
 

More from Bozhidar Boshnakov (9)

Mission possible - revival
Mission possible - revivalMission possible - revival
Mission possible - revival
 
Object-Oriented Programming with PHP (part 1)
Object-Oriented Programming with PHP (part 1)Object-Oriented Programming with PHP (part 1)
Object-Oriented Programming with PHP (part 1)
 
Introduction in php part 2
Introduction in php part 2Introduction in php part 2
Introduction in php part 2
 
Introduction in php
Introduction in phpIntroduction in php
Introduction in php
 
Web fundamentals 2
Web fundamentals 2Web fundamentals 2
Web fundamentals 2
 
Web fundamentals - part 1
Web fundamentals - part 1Web fundamentals - part 1
Web fundamentals - part 1
 
PMG Gabrovo - Web Development Level 0 - Introduction
PMG Gabrovo - Web Development Level 0 - IntroductionPMG Gabrovo - Web Development Level 0 - Introduction
PMG Gabrovo - Web Development Level 0 - Introduction
 
DrupalCamp Sofia 2015
DrupalCamp Sofia 2015DrupalCamp Sofia 2015
DrupalCamp Sofia 2015
 
Как да направим живота си по - лесен с добър QA подход
Как да направим живота си по - лесен с добър QA подходКак да направим живота си по - лесен с добър QA подход
Как да направим живота си по - лесен с добър QA подход
 

Recently uploaded

Machine Learning Software Engineering Patterns and Their Engineering
Machine Learning Software Engineering Patterns and Their EngineeringMachine Learning Software Engineering Patterns and Their Engineering
Machine Learning Software Engineering Patterns and Their EngineeringHironori Washizaki
 
MYjobs Presentation Django-based project
MYjobs Presentation Django-based projectMYjobs Presentation Django-based project
MYjobs Presentation Django-based projectAnoyGreter
 
React Server Component in Next.js by Hanief Utama
React Server Component in Next.js by Hanief UtamaReact Server Component in Next.js by Hanief Utama
React Server Component in Next.js by Hanief UtamaHanief Utama
 
Catch the Wave: SAP Event-Driven and Data Streaming for the Intelligence Ente...
Catch the Wave: SAP Event-Driven and Data Streaming for the Intelligence Ente...Catch the Wave: SAP Event-Driven and Data Streaming for the Intelligence Ente...
Catch the Wave: SAP Event-Driven and Data Streaming for the Intelligence Ente...confluent
 
Implementing Zero Trust strategy with Azure
Implementing Zero Trust strategy with AzureImplementing Zero Trust strategy with Azure
Implementing Zero Trust strategy with AzureDinusha Kumarasiri
 
Powering Real-Time Decisions with Continuous Data Streams
Powering Real-Time Decisions with Continuous Data StreamsPowering Real-Time Decisions with Continuous Data Streams
Powering Real-Time Decisions with Continuous Data StreamsSafe Software
 
How to submit a standout Adobe Champion Application
How to submit a standout Adobe Champion ApplicationHow to submit a standout Adobe Champion Application
How to submit a standout Adobe Champion ApplicationBradBedford3
 
Taming Distributed Systems: Key Insights from Wix's Large-Scale Experience - ...
Taming Distributed Systems: Key Insights from Wix's Large-Scale Experience - ...Taming Distributed Systems: Key Insights from Wix's Large-Scale Experience - ...
Taming Distributed Systems: Key Insights from Wix's Large-Scale Experience - ...Natan Silnitsky
 
What is Fashion PLM and Why Do You Need It
What is Fashion PLM and Why Do You Need ItWhat is Fashion PLM and Why Do You Need It
What is Fashion PLM and Why Do You Need ItWave PLM
 
Odoo 14 - eLearning Module In Odoo 14 Enterprise
Odoo 14 - eLearning Module In Odoo 14 EnterpriseOdoo 14 - eLearning Module In Odoo 14 Enterprise
Odoo 14 - eLearning Module In Odoo 14 Enterprisepreethippts
 
CRM Contender Series: HubSpot vs. Salesforce
CRM Contender Series: HubSpot vs. SalesforceCRM Contender Series: HubSpot vs. Salesforce
CRM Contender Series: HubSpot vs. SalesforceBrainSell Technologies
 
SensoDat: Simulation-based Sensor Dataset of Self-driving Cars
SensoDat: Simulation-based Sensor Dataset of Self-driving CarsSensoDat: Simulation-based Sensor Dataset of Self-driving Cars
SensoDat: Simulation-based Sensor Dataset of Self-driving CarsChristian Birchler
 
Cyber security and its impact on E commerce
Cyber security and its impact on E commerceCyber security and its impact on E commerce
Cyber security and its impact on E commercemanigoyal112
 
Cloud Data Center Network Construction - IEEE
Cloud Data Center Network Construction - IEEECloud Data Center Network Construction - IEEE
Cloud Data Center Network Construction - IEEEVICTOR MAESTRE RAMIREZ
 
Introduction Computer Science - Software Design.pdf
Introduction Computer Science - Software Design.pdfIntroduction Computer Science - Software Design.pdf
Introduction Computer Science - Software Design.pdfFerryKemperman
 
GOING AOT WITH GRAALVM – DEVOXX GREECE.pdf
GOING AOT WITH GRAALVM – DEVOXX GREECE.pdfGOING AOT WITH GRAALVM – DEVOXX GREECE.pdf
GOING AOT WITH GRAALVM – DEVOXX GREECE.pdfAlina Yurenko
 
Unveiling Design Patterns: A Visual Guide with UML Diagrams
Unveiling Design Patterns: A Visual Guide with UML DiagramsUnveiling Design Patterns: A Visual Guide with UML Diagrams
Unveiling Design Patterns: A Visual Guide with UML DiagramsAhmed Mohamed
 
Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...
Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...
Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...Matt Ray
 

Recently uploaded (20)

Machine Learning Software Engineering Patterns and Their Engineering
Machine Learning Software Engineering Patterns and Their EngineeringMachine Learning Software Engineering Patterns and Their Engineering
Machine Learning Software Engineering Patterns and Their Engineering
 
MYjobs Presentation Django-based project
MYjobs Presentation Django-based projectMYjobs Presentation Django-based project
MYjobs Presentation Django-based project
 
Hot Sexy call girls in Patel Nagar🔝 9953056974 🔝 escort Service
Hot Sexy call girls in Patel Nagar🔝 9953056974 🔝 escort ServiceHot Sexy call girls in Patel Nagar🔝 9953056974 🔝 escort Service
Hot Sexy call girls in Patel Nagar🔝 9953056974 🔝 escort Service
 
React Server Component in Next.js by Hanief Utama
React Server Component in Next.js by Hanief UtamaReact Server Component in Next.js by Hanief Utama
React Server Component in Next.js by Hanief Utama
 
Catch the Wave: SAP Event-Driven and Data Streaming for the Intelligence Ente...
Catch the Wave: SAP Event-Driven and Data Streaming for the Intelligence Ente...Catch the Wave: SAP Event-Driven and Data Streaming for the Intelligence Ente...
Catch the Wave: SAP Event-Driven and Data Streaming for the Intelligence Ente...
 
Implementing Zero Trust strategy with Azure
Implementing Zero Trust strategy with AzureImplementing Zero Trust strategy with Azure
Implementing Zero Trust strategy with Azure
 
Powering Real-Time Decisions with Continuous Data Streams
Powering Real-Time Decisions with Continuous Data StreamsPowering Real-Time Decisions with Continuous Data Streams
Powering Real-Time Decisions with Continuous Data Streams
 
How to submit a standout Adobe Champion Application
How to submit a standout Adobe Champion ApplicationHow to submit a standout Adobe Champion Application
How to submit a standout Adobe Champion Application
 
Taming Distributed Systems: Key Insights from Wix's Large-Scale Experience - ...
Taming Distributed Systems: Key Insights from Wix's Large-Scale Experience - ...Taming Distributed Systems: Key Insights from Wix's Large-Scale Experience - ...
Taming Distributed Systems: Key Insights from Wix's Large-Scale Experience - ...
 
What is Fashion PLM and Why Do You Need It
What is Fashion PLM and Why Do You Need ItWhat is Fashion PLM and Why Do You Need It
What is Fashion PLM and Why Do You Need It
 
Odoo 14 - eLearning Module In Odoo 14 Enterprise
Odoo 14 - eLearning Module In Odoo 14 EnterpriseOdoo 14 - eLearning Module In Odoo 14 Enterprise
Odoo 14 - eLearning Module In Odoo 14 Enterprise
 
Advantages of Odoo ERP 17 for Your Business
Advantages of Odoo ERP 17 for Your BusinessAdvantages of Odoo ERP 17 for Your Business
Advantages of Odoo ERP 17 for Your Business
 
CRM Contender Series: HubSpot vs. Salesforce
CRM Contender Series: HubSpot vs. SalesforceCRM Contender Series: HubSpot vs. Salesforce
CRM Contender Series: HubSpot vs. Salesforce
 
SensoDat: Simulation-based Sensor Dataset of Self-driving Cars
SensoDat: Simulation-based Sensor Dataset of Self-driving CarsSensoDat: Simulation-based Sensor Dataset of Self-driving Cars
SensoDat: Simulation-based Sensor Dataset of Self-driving Cars
 
Cyber security and its impact on E commerce
Cyber security and its impact on E commerceCyber security and its impact on E commerce
Cyber security and its impact on E commerce
 
Cloud Data Center Network Construction - IEEE
Cloud Data Center Network Construction - IEEECloud Data Center Network Construction - IEEE
Cloud Data Center Network Construction - IEEE
 
Introduction Computer Science - Software Design.pdf
Introduction Computer Science - Software Design.pdfIntroduction Computer Science - Software Design.pdf
Introduction Computer Science - Software Design.pdf
 
GOING AOT WITH GRAALVM – DEVOXX GREECE.pdf
GOING AOT WITH GRAALVM – DEVOXX GREECE.pdfGOING AOT WITH GRAALVM – DEVOXX GREECE.pdf
GOING AOT WITH GRAALVM – DEVOXX GREECE.pdf
 
Unveiling Design Patterns: A Visual Guide with UML Diagrams
Unveiling Design Patterns: A Visual Guide with UML DiagramsUnveiling Design Patterns: A Visual Guide with UML Diagrams
Unveiling Design Patterns: A Visual Guide with UML Diagrams
 
Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...
Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...
Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...
 

QA Challange Accepted - How and why we should use Behat?

Editor's Notes

  1. WEB DEVELOPMENT!!!!
  2. WEB DEVELOPMENT!!!!
  3. “BDD is about implementing an application by describing its behavior from the perspective of its stakeholders.” – Dan North The original developer of BDD (Dan North) came up with the notion of BDD because he was dissatisfied with the lack of any specification within TDD of what should be tested and how. BDD – Second generation of agile methodology User stories Domain-Driven Development Extreme Programmin TDD Acceptance Driven Test Planning Continuous integration
  4. “BDD is about implementing an application by describing its behavior from the perspective of its stakeholders.” – Dan North The original developer of BDD (Dan North) came up with the notion of BDD because he was dissatisfied with the lack of any specification within TDD of what should be tested and how. BDD – Second generation of agile methodology User stories Domain-Driven Development Extreme Programmin TDD Acceptance Driven Test Planning Continuous integration
  5. “BDD is about implementing an application by describing its behavior from the perspective of its stakeholders.” – Dan North The original developer of BDD (Dan North) came up with the notion of BDD because he was dissatisfied with the lack of any specification within TDD of what should be tested and how. BDD – Second generation of agile methodology User stories Domain-Driven Development Extreme Programmin TDD Acceptance Driven Test Planning Continuous integration
  6. “BDD is about implementing an application by describing its behavior from the perspective of its stakeholders.” – Dan North The original developer of BDD (Dan North) came up with the notion of BDD because he was dissatisfied with the lack of any specification within TDD of what should be tested and how. BDD – Second generation of agile methodology User stories Domain-Driven Development Extreme Programmin TDD Acceptance Driven Test Planning Continuous integration
  7. A very oft-cited metric is that 64 percent of features in products are “rarely or never used.” The source for this claim was Jim Johnson, chairman of the Standish Group, who presented it in a keynote at the XP 2002 conference in Sardinia. The data Johnson presented can be seen in the following chart.
  8. Deliver software that matters. Starting conversation is more important than documenting it Documenting is more important the automating Automation is a need
  9. It is impossible to explain the whole framework for one session.
  10. There’s huge amount of browser emulators out there, like Goutte, Selenium, Sahi and others. They all do the same job, but do it very differently. They behave differently and have very different API’s. But, what’s more important - there’s actually 2 completely different types of browser emulators out there: Headless browser emulators Browser controllers
  11. First type browsers are simple pure HTTP specification implementations, likeGoutte. Those browser emulators send a real HTTP requests against an application and parse the response content. They are very simple to run and configure, because this type of emulators can be written in any available programming language and can be run through console on servers without GUI. Headless emulators have both, advantages and disadvantages. Advantages are simplicity, speed and ability to run it without the need in real browser. But this type of browsers have one big disadvantage - they have no JS/AJAX support. So, you can’t test your rich GUI web applications with headless browsers. Second browser emulators type are browser controllers. Those emulators aims to control the real browser. That’s right, a program to control another program. Browser controllers simulate user interactions on browser and are able to retrieve actual information from current browser page. Selenium and Sahi are two most famous browser controllers. The main advantage of browser controllers usage is the support for JS/AJAX interactions on page. Disadvantage is that such browser emulators require installed browser, extra configuration are usually much slower than headless counterparts.
  12. PhantomJS is a headless WebKit scriptable with a JavaScript API. It has fast andnative support for various web standards: DOM handling, CSS selector, JSON, Canvas, and SVG.
  13. For the most important thing was its integration with Drupal.
  14. http://joshldavis.com/2013/05/27/difference-between-tdd-and-bdd/