BDD is one of the most difficult IT processes to implement properly, I’ve failed at it, but I’ve also seen it work amazingly as well. Here are some of what might be causing your BDD to not be giving you the result you were hoping for.

If you are using cucumber or some gherkin language but not having collaboration between the Devs, BA/PO’s and Testers you aren’t doing BDD you are using a tool in a way it wasn’t intended.

If only your BA/PO’s are writing your scenarios, you aren’t doing BDD you are just writing specifications in cucumber.

If your Testers are the only ones working on your BDD then you are just adding an additional layer of complexity to your tests. It is easy to write readable tests without using cucumber just by using well thought out naming conventions and fluent assertions.

If your Dev’s aren’t using the cucumber to develop from, then why should you expect the tests to pass?

If you have people building the automation who aren’t trained, how can you expect the tests to work and add value?

If your tests are overly complicated and are hard to run, you don’t have a BDD problem you have a testing problem (and possibly an organization problem). You need to look at who is writing the tests and how they can be improved.

To be a truly Agile organization you need to be able to move fast and break things, this means your tests must be in a good state and treated with the same level of respect as the rest of your code base. This means the tests need to be clean and use common conventions, code reviews and be frequently refactored.

BDD isn’t a tool but a process to follow which requires communication and collaboration. Unfortunately, BDD has developed a bad name partly because BDD is synonymous with Cucumber. Using Cucumber in some peoples minds is the same as doing BDD. BDD is more about communication, understanding, and documenting. The tooling used is somewhat irrelevant.

It’s interesting to me that some of the best QA tools are those that foster communication i.e. BDD, Pact testing, etc all focus on communication whilst the worst tools for QA those that hamper or reduce the need for real discussions i.e. Jira, most ALM tools.

If you are interested in learning more or having BDD implemented in your workplace let me know.