Cucumber, an open-source tool for executable specifications, merges specification and test documentation into one cohesive whole.

Quote from http://cucumber.io:

  • A single source of truth – Cucumber merges specification and test documentation into one cohesive whole.

  • Living documentation – Because they're automatically tested by Cucumber, your specifications are always bang up-to-date.

  • Focus on the customer – Business and IT don't always understand each other. Cucumber's executable specifications encourage closer collaboration, helping teams keep the business goal in mind at all times.

  • Less rework – When automated testing is this much fun, teams can easily protect themselves from costly regressions.

See Cucumber reference documentation for documentation on this extension specification language, which can be built on top of multiple other programming languages and platforms.