For those that aren't aware, BDD stands for Behaviour Driven Development. It is a style of writing (often) acceptance tests, in a Given, When Then format. I've spoke about them in previous blog posts.
People often say what are the benefits of them? Why not just write normal tests?
Firstly, I feel that BDD isn't just useful as an automation framework, but more of a method of documenting the system that is under test. The Feature files become the documentation, and the great thing is, if the system changes, then the feature files need to be kept up to date to ensure they still pass! Documentation that is always kept up to date sounds too good to be true right!? Not with BDD!!! It provides a living specification of the software under test.
Secondly, BDD is a method of getting teams to discuss Acceptance Criteria, and ensuring that teams fully understand the business requirements up front, and it's a great enabler for Acceptance Test Driven Development.
Related to the above, using BDD ensures a common language is adopted for discussing new features and removes a lot of the ambiguity that can sometimes creep into User Stories or PBIs.
So there you have it, what I see as the main benefits of BDD. I'm a big advocator of it, having used it for over a year now, I can safely say it is a great method of creating living documentation and encouraging conversations between relevant parties with the goal of producing quality software.