Cucumber is a functional test automation tool for lean and agile teams. It supports behaviour-driven development, specification by example and agile acceptance testing. You can use it to automate functional validation in a form that is easily readable and understandable to business users, developers and testers. This helps teams create executable specifications, that are also a goal for development, acceptance criteria and functional regression checks for future changes. In this way, Cucumber allows teams to create living documentation, a single authoritative source of information on system functionality that is always up-to-date.