Recently stumbled upon BDD and the process of describing software from behaviour. I know there are seriously prolific software engineers amongst the Hacker News crowd and I could use a second opinion from within the industry.<p>What are your thoughts on BDD in general, with everything included (Gherkin, Cucumber etc.). What benefits have you yourself experienced (if any) or perhaps disadvantages of such ideas?
I like the overall idea a <i>lot</i> but I felt that the Gherkin language itself hamstrings the process - for four main reasons:<p>* Excessive verbosity<p>* Not type safe<p>* It lacks story abstractions (i.e. you can't flexibly create variations on a scenario, extend existing scenarios, etc.).<p>* You need to fiddle with regexes.<p>A side effect of these semantic/syntactic problems is that gherkin stories end up being too vague to be useful - i.e. the meat of the story is often missing.<p>I created a StrictYAML based alternative with python that I think has all of the benefits, fixes those 4 problems and doesnt suffer from traditional "YAML" problems: <a href="https://github.com/hitchdev/hitchstory">https://github.com/hitchdev/hitchstory</a><p>I call this "BDD with meat".
I last gave it a good try about 12 years ago. In principle I liked it, but in practice it’s fairly verbose and slow. I much prefer Cypress/Capybara style testing.