Blog

Gherkin: speaking the same language with automation engineers

Read about Gherkin - plain-text language enabling testing engineers to create automated tests on their own.
17 October 2016
Test automation
The article by a1qa
a1qa

Sergey Senyuk, Manager of Test Automation Department at a1qa, speaks about Gherkin, a language designed for non-programmers that can help to describe system behavior and create automated tests without deep knowledge of programming.

What languages do automation engineers speak?

To build an automation framework and create a scope of automated tests, the developers may use a variety of languages: C#, JavaScript, Ruby, and many more. Each of the languages has its own syntax.

The choice of the language may be conditioned by client’s preferences, automation team expertise or by a set of specific libraries for a certain tech stack. And while the programming skills are a matter-of-course for engineers who are engaged in developing automation solution, the end-users of the solution aren’t necessarily experts in coding.

However, they’ll have to launch tests, analyze the reports and support them, i.e. bring up-to-date after the UI or application business logic has been changed.  The automation solution shall be beneficial for the end-client, easy-to-use and convenient.

Users of automation solution – who are they?

After the automation solution is developed and handed over to the client, it’ll be used by the following specialists:

  • Automation engineers themselves (obviously, there shall be no problems in understanding the language);
  • Clients’ developers (generally the solution will be created using the same tech stack as the in-house developers do, therefore there also shall be no troubles in script understanding);
  • But most commonly the solution will be handled by the client’s QA department. And this is the point where troubles I want to talk about occur.

The essence of the problem was perfectly defined by one of our potential clients after he saw our automation framework and learnt our approach.

He imparted his apprehensions for the ability of his QA team, who had no experience in writing code, to support the scripts, say nothing about writing their own scripts.

When testing engineers without programming skills are the end-users of the solution, our team suggests building a solution by implementing the BDD (Behavior-driven development) approach.

Why is BDD approach so remarkable?

Primarily, BDD is the methodology of software development and it suggests that the expected behavior of the system should be described in terms of plain-text scenarios. After that the described functionality is developed and, when delivered, the predefined testing scenarios should be successfully executed.

A scenario is the description of the system functional behavior written in human language by a definite pattern. As the automation engineers and testing engineers should be able to work together with the solution, scenarios are written in a ubiquitous language.

A ubiquitous language is a living language that can be used to facilitate communication between programmers and non-programmers and, at the same time, can be perceived and interpreted by the automation scripts. As a result, there is no need to improve or modify the documentation for the development or QA team usage. All scenarios are described in the same way and can equally be used by all teams involved.

Describing test scenarios with Gherkin

Executable specifications can be created in Gherkin – plain-text language that can be learnt by non-programmers. Gherkin fulfills two goals simultaneously: it serves as project documentation and automates testing process.

The system behavior is described with the keywords Given/When/Then. Every new line in Gherkin starts with one of these words which is followed by a description.

According to BDD approach, a desired behavior should be specified in terms of user story in the following way:

Title. It should be clear and explicit.

Narrative. A brief, introductory section specifying:

  • who is the stakeholder of the story or who will derive benefits from it
  • what effect the stakeholder wants the story to have
  • what business value the stakeholder will derive from this effect

BDD does not have any formal requirements for exactly how user stories must be written down, but it insists that each team using BDD should come up with a simple, standardized format for writing down user stories which includes the elements listed above.

A brief example of this might look like this:

As a [X]
I want [Y]
So that [Z]

where Y – is a feature, Z – is a benefit of using the feature and X – is a user or group of users who will benefit from the feature.

However, behavior specification in Gherkin is completely another story. Every line here is a definite step which corresponds to one of the code methods.

Every scenario shall start with a precondition. It may consist of one point or of many of them. The precondition starts with the keyword [Given].

After that the actions that will take place in the scenario are described starting with the word [When].

Finally goes the outcome description with the starting word [Then].

If there is more than one step in any of the blocks, each of them should be written down in a separate line with a keyword And.

Example of specification in BDD

Feature: Log in to the app

As a user

I want to log in

So that I make a payment

In Gherkin this scenario will be described as follows:

Given User is on Login Page

When User enters following credentials and submit

|Name         |Value         |

|Login          |test_user  |

|Password   |pass           |

Then ‘Welcome to our site’ message should be displayed

Most of the BDD frameworks are multilingual Cucumber, for example, supports 60+ languages with this number constantly growing.

Key reasons to learn Gherkin

  1. System behavior is specified in a plain way that is clear for all project participants.
  2. Files that contain specifications are executable automated tests at the same time.
  3. Test documentation and automation scripts indivisible and are saved in one project.
  4. Natural language constructions allow to build variable scenarios and to create new automated tests without reviewing the code.

With that all said, we recommend all our QA colleagues to learn Gherkin as this is the easiest way to start talking with automation engineers the same language.

In the next article we’ll talk on how to build effective communication between testing and automation engineers on BDD projects.

More Posts

a1qa-articles
31 January 2023,
by a1qa
5 min read
Best of 2022 by executives: 8 most visited a1qa blog posts
Let’s look back and revisit the most visited a1qa articles of 2022!
Quality assurance
Test automation
qa-trends
12 January 2023,
by a1qa
4 min read
The future of software testing: top 4 impactful trends that will dominate in 2023
Consider the major industry trends for the upcoming year to know how to improve current QA strategies and stay ahead of the curve.
QA trends
Quality assurance
Test automation
test-automation
7 December 2022,
by Dileep Marway
3 min read
Release at pace with test automation: What, why, and how to measure success?
An automation-first approach is key to enhancing testing capabilities and increasing overall operational efficiency. However, I would suggest justifying its implementation, so that it can deliver the promised value.
Quality assurance
Test automation
interview-with-dileep
28 November 2022,
by a1qa
9 min read
Interview with Dileep Marway on a series of articles “Agility and speed: Supercharging your business strategies with QA”
We cooperated with the VP of Engineering and Quality at SHL to present you with a series of his blog posts on: culture of happiness, test automation, and Agile-driven QA. Happy reading!
Agile
Quality assurance
Software lifecycle QA
Test automation
qa-trends-in-telecom
30 September 2022,
by a1qa
5 min read
4 telecom trends for 2023 and how to painlessly implement them with QA
It’s time to explore the telecom trends for the upcoming year. Let’s look at them together and also see the value that QA brings for their smooth deployment.
Cybersecurity testing
Migration testing
QA trends
Quality assurance
Test automation
ai-ml-test-automation-mini
15 September 2022,
by a1qa
4 min read
4 key QA activities to solve test automation challenges via AI and ML
How to address the difficulties caused by implementing test automation? Learn how to do it via applying AI and ML.
Test automation
why-do-bugs-get-missed
31 August 2022,
by a1qa
4 min read
Why do bugs get missed? Learn the problems and tips to avoid them
Still, finding overlooked bugs after the app goes live? Let’s find out why this happens and how to fix it.
Quality assurance
Test automation
30 June 2022,
by a1qa
4 min read
App software testing for telecom: What are the common issues telco providers face?
Facing problems with the quality of your telecom software products? Read more in the article and find out the ways to address them.
Cybersecurity testing
Performance testing
Test automation
Mobile app testing
31 May 2022,
by a1qa
4 min read
Mobile app testing guide: win the race with five-star software
Which aspects of mobile apps to test first to produce a really high-quality product? Find the answer to this and other questions related to mobile app testing in the article.
Cybersecurity testing
Functional testing
Mobile app testing
Performance testing
Test automation
Usability testing

Get in touch

Please fill in the required field.
Email address seems invalid.
Please fill in the required field.
We use cookies on our website to improve its functionality and to enhance your user experience. We also use cookies for analytics. If you continue to browse this website, we will assume you agree that we can place cookies on your device. For more details, please read our Privacy and Cookies Policy.