App & Browser Testing Made Easy

Give your users a seamless experience by testing on 3000+ real devices and browsers. Don't compromise with emulators and simulators

Home Guide Introduction to Cucumber Testing Framework

Introduction to Cucumber Testing Framework

By Jash Unadkat, Technical Content Writer at BrowserStack -

Table of Contents

Cucumber is an open-source software testing tool written in Ruby. Cucumber enables you to write test cases that anyone can easily understand regardless of their technical knowledge.

Before understanding cucumber testing, let’s quickly go through the various types of automation testing frameworks

  1. Linear Scripting Framework
  2. Modular Testing Framework
  3. Data-driven Framework
  4. Keyword-driven Testing Framework
  5. Behavior-driven Development Testing Framework (BDD)

What is Cucumber Framework

cucumberCucumber Framework is used to execute automated acceptance tests written in the “Gherkin” language. Gherkin is a domain-specific language for behavior descriptions. Gherkin is business readable.

Cucumber test automation makes use of two important files:

  1. Feature file – Contains code written in Gherkin (plain English text)
  2. Step definition file – Contains the actual code written by the developer

Cucumber acts as a bridge between the following teams:

  • Business Analysts and Software Engineers
  • Manual and Automation Testers
  • Manual Testers and Developers

How does Cucumber work

Cucumber BDD framework mainly consists of three major parts:

  1. Feature File: Cucumber tests are written in plain text files called feature files that are stored with the extension – “.feature”. A Feature File can be given a description to make the documentation more legible. These files describe the behaviour and functionality of the software using a specific syntax called Gherkin. Gherkin is a structured language that uses keywords like Given, When, and Then to define the steps of a test scenario.
  2. Step Definitions: Each step in a feature file is associated with a step definition, which is implemented in code. Step definitions define the actions or operations that need to be executed for each step of the test scenario. They map the plain text steps in the feature file to the corresponding code implementation.
  3. Test Runner File: In Cucumber, the test runner file is responsible for executing the Cucumber feature files and coordinating the steps defined in those feature files with the corresponding step definitions.

Example of Cucumber Test

Here’s an example of  Cucumber Test for checking the Login functionality for an existing user.

Scenario: As an existing user, I want to log in successfully.

Given the user is on the Home page

When the user navigates to the Login page

And the user enters the username and password

Then the successful login message is displayed

BDD in Cucumber Automation

Behaviour-driven Development (BDD) is a software development technique that has evolved from TDD (Test Driven Development), which is an approach or programming practice where the developers write new code only when the automated test case fails.

Behavior-driven development’s approach involves the usage of shared language that enhances communication between various tech and non-tech teams. Tests are more user-focused and based on the system’s behavior. In BDD, “Given-When-Then” is the proposed approach for writing test cases.

Consider the below example for better understanding:

  • Given the user has entered invalid credentials
  • When the user clicks submit button
  • Then display the proper validation message

Benefits of BDD in Cucumber Framework

  • Focuses on defining ‘behavior’ rather than defining ‘tests’
  • Enhances communication among the members of a cross-functional product team
  • Helps reach a wider audience by the usage of non-technical language
  • Enables you to understand how the system should perform from the developer’s and customer’s perspective
  • The improvement in the quality of code results in reduced costs of maintenance and also minimizes the project’s associated risks

Below image describes a simple BDD operation –

Lifecycle of BDD

Lifecycle of BDD

Limitations of Behavior-driven development

  • Testers must have prior experience in TDD (Test-driven Development) to work in BDD
  • BDD approach may be ineffective if the requirements are not correctly analyzed
  • Testers must have sufficient technical skills

Cucumber with Selenium

Many organizations prefer the Selenium framework for cross browser compatibility testing. These organizations also prefer integrating Cucumber with Selenium as it makes it easier to read and understand the flow of applications among the members from different teams. Gherkin syntax involves simple and plain text, which makes it easier to understand test cases.

Cloud testing products like BrowserStack support Selenium testing with Cucumber.

Run Selenium Test on Real Device for Free

Benefits of using Cucumber Testing Tools

Involving stakeholders becomes easier regardless of their programming knowledge.

  • Testers can write Test scripts without having in-depth knowledge of programming
  • Plugins are faster as compared to Selenium
  • Supports various programming languages
  • Code can be reused
  • Simple and quick setup
  • Flexible with different software platforms like Selenium, Ruby on Rails, Watir, Spring framework, and so forth

Summary

  • Cucumber testing tool is a purely business-driven development tool written in Ruby
  • The business-driven development approach is an advancement over test-driven development approach, which follows the
  • ‘Given-When-Then’ steps for writing test cases
  • Cucumber framework makes use of Gherkin ( A simple plain text language parser) to describe expected software behaviors in a logical language, which results in better communication and collaboration among technical and non-technical team members
  • Cucumber provides compatibility with popular software platforms like Selenium, Watir, Ruby, and other popular platforms
  • One must also keep in mind the limitations, before deciding the behavior-driven development approach
Tags
Automation Testing Testing Tools

Featured Articles

Cross Browser Testing Using Cucumber

Cucumber Best Practices to follow for efficient BDD Testing

Curated for all your Testing Needs

Actionable Insights, Tips, & Tutorials delivered in your Inbox
By subscribing , you agree to our Privacy Policy.
thank you illustration

Thank you for Subscribing!

Expect a curated list of guides shortly.