What is Cucumber?

Cucumber lets software development teams describe how software should behave in plain text. The text is written in a business-readable domain-specific language and serves as documentation, automated tests and development-aid – all rolled into one format.

In other words cucumber aids following business capabilities.

  1. Acceptance test driven development – ATDD
  2. Behavior Test driven development – BDD
  3. Test driven development – TDD

And following technical capabilites

  1. Scaffolding for building a test automation framework
  2. Externalize data through strings and data tables
  3. Powerful parser that lets us do regular expression magic
  4. Html reports
  5. Alignment with Continuous Test Automation (+ci/cd)

What programming languages does cucumber support?

Cucumber works with Ruby, Java, .NET, Flex or web applications written in any language. It has been translated to over 40 spoken languages.Cucumber also supports more succinct tests in tables – similar to what FIT does.

What is ATDD?

Acceptance Test-Driven Development (ATDD) is a development methodology based on communication between the business customers, the developers, and the testers.ATDD encompasses many of the same practices as Specification by Example,Behavior Driven Development (BDD), Example-Driven Development (EDD),and Story Test-Driven Development (SDD).All these processes aid developers and testers in understanding the customer’s needs prior to implementation and allow customers to be able to converse in their own domain language

ATDD overview

What is TDD?

Test-driven development (TDD) is a software development process that relies on the repetition of a very short development cycle: first the developer writes an (initially failing) automated test case that defines a desired improvement or new function, then produces the minimum amount of code to pass that test, and finally refactors the new code to acceptable standards. Kent Beck, who is credited with having developed or ‘rediscovered’ the technique, stated in 2003 that TDD encourages simple designs and inspires confidence.

TDD

 

What is BDD?

In software engineering, behavior-driven development (abbreviated BDD) is a software development process based on test-driven development (TDD). Behavior-driven development combines the general techniques and principles of TDD with ideas from domain-driven design and object-oriented analysis and design to provide software development and management teams with shared tools and a shared process to collaborate on software development.

Cucumber is a very popular BDD tool. This website will use Cucumber as the framework both for expressing application behavior and also as a testing framework wherever applicable. As we know the choice of a framework really depends on the programming language we choose and what other frameworks exist in the market. But after working with Java, Ruby and .NET, JS stacks for a while, we have cucumber like frameworks almost every stack.

Pitfalls

The creator of Cucumber, Aslak wrote an article in terms of what Cucumber is supposed to be used for and how testing Community has misused it in some areas. Here is the article – I won’t paraphrase, it is already so well written.

The summary is to say Cucumber is a collaboration tool NOT a test tool like TestNG for example.