Summary Getting Started About this Documentation Installation Pick your Flavour Ruby Java Javascript Unofficial Cucumbers 10 minute tutorial Behaviour-Driven Development Introduction to BDD Roles Domain Expert Developer Tester Designer/UX Artefacts Automated Tests Specifications Documentation Communication Techniques Analysis Example Mapping Three Amigos Discovery Workshop Deliberate Discovery Event Storming Cucumber Living Documentation Incidental Details Example Mapping Output Organising Gherkin Organising Step Definitions Programming Modelling by Example Test-Driven Development Outer Cycle Inner Cycle Ports and Adapters Testing Test Pyramid Shallow Tests Narrow Tests UI Testing Selenium WebDriver Databases Web Services Domain Layer Fixtures Test Doubles Contract Testing Legacy Systems Continuous Integration Cucumber Reference How Cucumber Works High-level diagram Independent scenarios with initial state Passing/Failing scenarios and steps Step (definitions) are global Gherkin Feature Scenario Given/When/Then (Steps) Tags Tag Expressions Background Scenario Outline Background Data Tables Doc Strings Comments Internationalisation Step Definitions Regular Expressions Cucumber Expressions Cucumber Expressions and Java Passing & Failing Steps Type Transformation World Reuse Hooks Tagged Hooks Configuration Command Line Colours Reporting Formatters HTML Formatter Screenshots Attachments Extending Cucumber Cucumber Extensions Official Extensions Gherkin-Lint Cucumber-React CLI automation - Aruba Ruby on Rails Spring Framework PicoContainer 3rd Party Extensions IDEs/Text Editors Watir Selenium WebDriver Serenity Common Anti-Patterns Gherkin Conjunction Feature Coupled Step Definitions Contributing Overview Contributing to Documentation Contributing to Code Standard Library Event Protocol Team