This document discusses using Cucumber with Groovy for behavior-driven development on the JVM. It provides an overview of Groovy and why it is useful for testing Java code. It also describes how Cucumber supports the Groovy domain-specific language for automating scenarios. Examples are given for defining step definitions in Groovy using regular expressions, tables, multiline strings, and organizing definitions. The document also shows how to integrate Geb for browser automation and use the World object to share state between steps.