Gherkin is a domain-specific language for describing formalized examples of how a system should interact with the user. In Behavior Driven Development, examples are discovered in collaboration with all parties involved in the software development process (developer, tester, subject matter expert, …) before they are formalized in Gherkin. Tools like SpecFlow allow Gherkin scenarios to be automated for acceptance testing.
Gherkin is used to describe features that can contain one or more scenarios. Scenarios are described using steps in a Given-When-Then structure. Scenario outline is another important Gherkin concept which describes a scenario template and a table of examples, where each row describes a variation of the scenario. Gherkin also defines concepts like tags which can be used to influence scenario execution.