Note from the field: the purpose of BDD&#x2F;ATDD and Cucumber (aside from validating work and making sure the system is still up) is to work with the business to get agreement on common business terms. That means there&#x27;s a fair bit of factoring involved as the system grows. Things like &quot;When you say &#x27;content&#x27;, do you mean &#x27;html content&#x27;, or also user manuals?&#x27;.<p>It&#x27;s like English is the programming language, and you&#x27;re constantly looking to refactor terms so that the English used is more structured.<p>What I&#x27;m beginning to see is cucumber being used for system or even unit tests. You&#x27;ll get Cucumber full of magic numbers, table names, API calls, and it looks very scripty.<p>Testing is great, but this is using the wrong tool for the job. We end up confusing terms and thinking we understand BDD&#x2F;ATDD when in reality -- not so much. (Insert long discussion here about teams working on middle layers, how APIs and microservices fit into the picture, and so on)