Cucumber Automation Testing

Date
Author
automation
Cucumber Automation Testing

What is Cucumber Testing?

Behaviour-driven Development (BDD) is an agile software development approach that encourages high collaboration between everyone involved in the development process. Cucumber is an automated software testing tool that goes hand in hand with BDD by supporting testers to perform testing in a BDD environment. BDD is an emerging approach for testing your code, while Cucumber is one of the pioneer flagship BDD tools.

Looking to learn more about mobile automation testing

Get in Touch with Kobiton

 

Advantages of Cucumber

The decisive advantage of Cucumber is that it allows writing tests that are understandable to anyone, despite their coding knowledge. And vice versa, it does not require programming knowledge to write test cases, while some other testing tools, such as Selenium and HP ALM (QTP), require coding knowledge. Furthermore, it allows programmers to utilize the testing framework using various programming languages such as Ruby, Python, JavaScript, Perl, and PHP. 

Even though the BDD approach helps connect the business (product owners) and the developers, it doesn’t support the communication between the product owners and software testers. Cucumber addresses this issue by creating a bridge between the business and the testers.

In Cucumber, the testing scenarios are written in simple English, enabling even a non-programmer, like a business analyst, to understand them easily. This framework also allows reusing code which helps to reduce the steps in other tests drastically.

Cucumber uses a domain-specific programming language called Gherkin. Gherkin is easy to learn, making it a user-friendly language for all.

Additionally, Cucumber works comparatively faster than Selenium and HP ALM (QTP) when it comes to plugin integration.

 

Cucumber Framework Basics

In Cucumber, a file called Feature File resides in the src/test/resources/hellocucumber directory or subdirectory. This file stores all the features, scenarios, and feature descriptions of the framework. The components of the feature file can be described as below.

The feature keyword usually describes a function that is tested as a whole, and it will be the starting point of every feature file. The Cucumber framework performs tests in terms of Features. 

The Scenario is a container that holds the descriptions of the testing tasks. During the testing, all the testing tasks that fall under a specific scenario will be performed together to analyze the system behavior.

In some situations, the same scenario will occur several times. This usually happens when testing with multiple values. In such situations, the Scenario Outlines come handy to help reduce the number of scenarios by manipulating the values with only one specific scenario. 

 

Gherkin Language

As mentioned above, Gherkin is the programming language used by Cucumber to execute the test scripts. The feature file contains test scripts written in Gherkin as readable and simple English language. Cucumber understands these test scripts with the help of Gherkin keywords, syntax, and rules there.

Gherkin keywords support around 70 spoken languages, including Arabic, French, German, Hindi, Tamil, Russian, and so on. Simply said, Gherkin helps Cucumber to interpret and execute test scripts written in any simple language. 

 

Gherkin syntax 

Cucumber reads the test scripts and then executes and monitors their behavior to verify whether they are working according to the Gherkin syntax.

The Given keyword describes a situation in the past, while the When keyword describes an event or an action. Finally, the Then keyword describes the output expected by the tester.  

Additionally, the But keyword adds a negative condition while the And keyword joins two tests. 

A Step Definition is a block with an expression that associates with one or more Gherkin steps. It helps Cucumber to find the relevant code when there is a Gherkin Step to execute. 

 

Gherkin best practices

One best practice to follow when using Gherkin is to ensure that each scenario only tests one particular behavior instead of many. In addition, you should write scenarios in a declarative way, like describing the scenarios as a user would do in simple language. Moreover, it's better to keep the scenarios short and sweet.

Apart from the above, it is also advisable to avoid linking steps with the keyword 'and' instead of breaking them separately. It makes the steps more modular and reusable when there is one action in the step.

Gherkin also recommends reusing steps as often as possible, which will improve the maintainability of tests. Furthermore, use the Feature Background at the beginning of a feature scenario when the same steps occur repeatedly. It will help to minimize lines of code in a test script. 

 

Advantages of Gherkin

When considering the advantages of Gherkin, the convenience of linking acceptance tests directly into automation tests comes at the top. The Gherkin style of coding makes it easier to reuse codes in tests. 

On top of that, Gherkin makes it easy for business users to write requirements and easily convert them into user acceptance tests. This creates a better understanding between the IT team and the business, which ultimately leads to quality software. A part of functional specifications can be interpreted as user stories that are easy to digest.

Since the requirements and the test cases are the same in Gherkin, the traceability takes effect smoothly. Even non-programmers can easily understand the concept, which helps fill the communication gap between the business and the testers.

 

Gherkin Example

Now let's see an example of testing the user creation in Instagram.

Feature: To test Instagram user creation

Background: 

            Given: I am on Instagram browser website

Scenario: Create a user

When I click on "Sign Up"

And I enter "johndoe@domain.com" into the email field

And I enter "John Doe" into the full name field

And I enter "johndoe123" into the username field

And I enter "password123" into the password field

And I click on "Sign Up" button

Then confirmation should contain "Successful"

 

Why Cucumber?

The initial step of software development is started when the business delivers the requirements. After that, the product owners, developers, and stakeholders are in touch with each other throughout the development cycle, engaging with user stories and acceptance criteria. However, there’s a lack of communication between the product owners and the testers.

So, a bridge that connects the business team with the technical team would be really valuable in such a situation. Cucumber comes in handy there, especially in the BDD approach, by filling the communication gap between the stakeholders and technical team.

 

How to use cucumber?

Installing Cucumber is a simple task. There are only a few host official implementations under Cucumber, even though it supports many programming languages. You can refer to the installation guidelines and more information through its official documentation.

 

Conclusion

Cucumber is the World’s leading automation tool for BDD. It competes with other popular automation testing tools by working more effectively within a cross-functional and team-centric workflow.

Cucumber provides community support, as well as, premium support for its enterprise-level customers. Besides, it can be integrated with third-party project management tools, such as Jira, TestComplete, and Slack to track the progress. 

Nearly 121 companies, including Delivery Hero, Bitpanda, and N26, currently use Cucumber in their tech stacks, proving that it is one of the best automation testing tools available today. 

Looking to get more info about the automation testing tools for mobile applications? 

Get in Touch with Kobiton

Getting started is quick and easy

Start delivering a better mobile experience and make your app better everywhere!

Atlanticus
bancolombia
buffalo-wild-wings-logo
albo-logo
office-depot-logo
adp-logo
Etoro_logo
deloitte-digital-logo-white
Telkom_Indonesia_logo-white
Gopuff
guitar-center
imprivata-logo-white
AT&T
spiffy
roadie-inc
Inspire_Logo
pep-boys
abercrombie-fitch
Wolters_Kluwer
frontier-airlines
river_island
IBM
GreenSky_Current
padi
Capgemini
evertec
Q2
AmerisourceBergen
premiere-global-services-inc-pgi
Atlanticus
Bancolombia
Imprivata
Etoro
Buffalo-wild-wings
Albo
Office-depot
Adp
Deloitte-digital
Telkom Indonesia
Gopuff
Guitar cente
AT&T
Spiffy
Roadie-inc
Inspire
Pep-boys
Abercrombie-fitch
Wolters_Kluwer
Frontier-airlines
River_island
GreenSky
Padi
Capgemini
Evertec
AmerisourceBergen
Premiere-global
IBM
Q2