I realize that Cucumber is all about business processes and getting developers / testers / product owners engaged, etc. I take that as given, but exactly how you business develops (or should develop) software is another thread entirely. But my questions relates to the specific way the software works to achieve this end. And, therefore, to the features which any BDD process should have. To the best of my knowledge the software (BDD / ATDD) may be summarized below. Is this correct? Did I leave a step out.
My understanding of what BDD software (Cucumber) is aiming to do:
1. Specifications are written as business rules in a formal language, (e.g. Gherkin).
2. These specifications are compiled to test stubs (usually codegen). In a distinct compile phase. A test runner may do this transparently (invisibly).
3. Running these test stubs initially shows failing tests (which correspond to unmet business features).
4. The test stubs are edited to pass.
5. In this test stub editing phase (4) a programmer creates the program code which implements each business feature/rule.
6. When the tests run, there is feedback to the original Specs. So you can see, by looking at the specs, which ones fail, pass or lack an implementation (red / green / amber).
7. Alternatively/additionally test reports are created. These reports demonstrate which business rules/features work.
8. We have a kind of audit trail, from specifications, to tests, to code, to test results which demonstrate what works, or does not.
In your opinion, is the list above the least required to implement a suitable (software) system which forms the bedrock of a process we may call BDD, or ATDD? Am I right in thinking that Cucumber, FIT, and Fitnesse do all steps above?