Cucumber is a tool that supports behavior-driven development (BDD). It allows non-technical users to describe features of a software application in plain English in feature files. Developers then write automated tests in a step definition file to make the scenarios in the feature files pass. The key steps are: 1) write scenarios in a feature file, 2) see the scenarios fail when run, 3) write step definitions to satisfy each scenario with code, 4) rerun and see the scenarios pass as the behaviors are implemented.