Thanks for the comment, but I kindly disagree. From my understanding Obehave is not about writing executable specifications but about automating user-testing of a web application. Many tools are available in that space, for instance:
- Tellerium is very similar to Obehave as it provides a ready-to-go experience to automate web testing, and even though the language is not 100% pure Gherkin, it really is the same idea
- Mink is an extension to Behat (Cucumber for PHP) that provides out-of-the-box step definitions to drive a web application
- Ghost Inspector uses record-and-replay to build automated tests of a web application, and parts of such tests can then be regrouped as common steps to be shared between different tests
In my point of view, this is not the goal behind Gherkin and Cucumber, and it seems that some people share this view. The whole point here is to talk about business concepts, not about technical components; to talk about business domain instead of technical implementation.
So for instance tests may not be directly related to the end-user experience, but may be about some key internal algorithm implementing the business rules. In which case the steps must be implemented by developers, by essence: the steps are completely specific to the current application.
Or say that you want to describe the navigation workflow of your product. This is test will typically made of the user interface level. Still the user interface shall be described in terms of functional components and behavior and not in terms of technical web components and behavior: this is the famous Page Object pattern.
The whole idea of Behavior-Driven Development (BDD) is, as its name implies, that you describe a behavior and not an implementation. And since it is an acceptance test, then the implementation simply do not exist yet at the time of the writing of the test. You do not know yet what the product will look like when you describe its behavior.
All this not to say that Obehave is an unworthy tool. Just be aware that it is not about writing executable specifications and doing acceptance testing but about automating end-user testing of web applications.