Am reading "The Cucumber Book". I like concise statements like this one:
"Acceptance test ensures you build the right thing
while unit test ensure you build the thing right".
While developers write unit test to drive their designs, it is essential that
the business (or product owner or business analyst acting as proxies for the business)
write feature files to describe the software's behavior. Developers then
automate the step definitions. Following the principles of Outside-In, the scenarios tell the developers what
unit tests to write. TDD helps the developers "build the
Given that some business people are unable to write feature files, the
business can work in collaboration with cross-functional teams to write the Gherkin.
What cannot be delegated to developers by the business is the behavior
expressed by the scenarios in the feature files. Before the feature files can be automated
by the developers, the business must ensure that the scenarios define the behavior
of the software from their perspective. Only then has the business properly
defined what it means to "build the right thing".