A new way to behavior-driven development on Drupal

The goal of this session is to present a new way to BDD on Drupal using Barbor BDD framework, to have a continous quality assurance process.

BDD (behavior-driven development) is a good way to develop software in a language that can be understood by non-technical and technical people, in a very agile way.

Behavior-driven development is used to write feature specifications in the canonical format of users stories. Then, test scenarios are created for each feature, to verify that the feature is working as expected after its development, and also to be used for regression testing when new features start coming.

With BDD, the communication between business and development flows very well, because the business guys can say what they need, using their own language, and the development team can know, not only what needs to be developed, but also why and for who this is being developed.

Behind the scene, Cucumber uses regular expressions to call Ruby methods to interact with the web browser, like Behat does, but it has its own peculiarities, and it's been a nice experience until now.

Barbor is an open source BDD framework, integrated with Cucumber, and built at Taller Web Solution, for testing web applications, including Drupal web apps. With it, we can run our tests in many different browsers, like headless browsers (XVFB and PhantomJS), and the most common ones, like Firefox, Chrome and Opera.

Barbor can be used for writing regression tests with Cucumber, to guarantee regression testing, constant feedback, and an easy way to document and understand the developing application.

Behavior-driven development can be a nice way to develop Drupal apps, to make developers understand not just what must be build, but also why the application is being built and for who this is being built.

We intend to demonstrate how Cucumber can help us to build regression testing, how we can integrate it with our CI tool, and then build web apps in a really agile way.

Schedule info
Track: 
Coding and Development
Experience level: 
Advanced
Drupal Version: 
Drupal 7.x
Status: 
Unprocessed