We're suggesting to ADOPT behavioral tests by using the Cucumber specification language (called Gherkin) in projects.
- encourages a consistent language for describing functionality and test cases throughout a project
- separate test setup (technical) from test intent (business)
- this greatly reduces the incentive to copy-paste code throughout different test cases
- can be used to test arbitrary parts of the system, though it is often used to test the complete system
- Refactoring the test language has to be done through search/replace (as it is text-based, there is no tool-support)
- Java: Cucumber
- PHP: Behat
- ... there exist implementations for almost every widely-known language.