Member-only story
Defining and Measuring Software Behaviour
Behaviour Driven Development with Cucumber and Selenium: Part I
Introduction
Many of us have (hopefully) already witnessed the benefits of Test Driven Development, usually in the form of unit tests, ensuring your algorithms are returning the right results, the proper events are fired when expected, and that your state machine doesn’t give you any surprises. When we have insight on what’s going on under the hood, we can catch defects early that would otherwise be hard to be debug. This series however, is not about TDD; it’s about a bigger picture and it starts at a user-verifiable level.
If you design your software’s behaviour from the outside-in using Behaviour Driven Development (BDD) practices, you are doing a number of things at once:
- Providing a single source of truth for how the software is intended to behave
- Building a shared understanding from Product Owner, to Developer, QA, UX, and any stakeholder of your product
- Filling out requirements gaps and hashing out lower level details
- Simultaneously documenting the software’s features while building a fully executable test suite against the current behaviour
- Reducing turnaround between Development and QA
This is achieved by providing the language, framework, and practices to account for all roles involved in the introduction of a software feature.