selenium vs cucumber
October 5, 2020

Selenium vs Cucumber Explained: Quick Guide to Key Differences

Automation

Selenium and Cucumber are similar in some ways. Both are open-sourced. Both are used for functional testing. But what are the differences between Selenium and Cucumber? Who uses them? And when would you use them together?

Read on for answers.   

Selenium vs Cucumber: What’s the Difference? 

When it comes to Selenium vs. Cucumber, there are some key differences. Selenium is an automation tool for web apps, while Cucumber is an automation tool for behavior-driven development. Selenium executes UI tests while Cucumber does acceptance testing. Selenium script creation is complex while Cucumber is more simple.

Here's more on the basic differences between Selenium and Cucumber:  

  • Selenium is a web browser automation tool. Cucumber is a behavior-driven development tool that can be used with Selenium (or Appium). 
  • Selenium is preferred by technical teams (SDETs/programmers). Cucumber is typically preferred by non-technical teams (business stakeholders and testers). 
  • Selenium is used for automated UI testing. Cucumber is used for acceptance testing.   
  • Selenium can work independently of Cucumber. Cucumber depends on Selenium or Appium for step-definition implementation.  

As you can see, the differences between Selenium and Cucumber are great. Whether you choose to use one or another, depends on your specific context, needs, and goals.  

What Is Selenium?  

Selenium automates browsers. It is a highly popular testing framework and set of tools for testing web-based applications.  

Preferred by SDETs 

If you have software development engineers in test (SDETs) on your team, they will prefer Selenium. They can use it to write test scripts in their programming language of choice — like Java, Javascript, C#, Ruby, Python, Perl, PHP, and Groovy — and execute those tests on multiple browsers. 

What Is Cucumber? 

Cucumber lets you write test scenarios using plain language. 

It is a tool for behavior-driven development (BDD). BDD is a software development process that encourages cross-functional collaboration, in part, through use of a plain-English scripting language called “gherkin” that anyone, technical or not, can read, write, and understand. 

Originally written in the Ruby programming language, Cucumber now supports a variety of different programming languages, including Java and JavaScript. Cucumber is commonly used for acceptance tests. 

Preferred by Business Testers 

If you have business testers on the team, they would likely prefer to use Cucumber — or another BDD framework, like Quantum — since can be used without coding knowledge (which Selenium requires).  

Cucumber uses a “given-when-then” framework for writing a test. After defining the feature and scenario under test, you provide the context (given), user action (when), and expected outcome (then). 

Cucumber BDD Example 

Scenario: Login
Given: User navigates to perfecto.io 
When: User logs in using Username as “tester” and Password “extraordinaire” 
Then:  Login should be successful 

Using Cucumber With Selenium 

Some organizations implement Cucumber within a Selenium framework to allow for reliable test automation that emphasizes plain language. By doing so, they can: 

  • Develop a shared understanding of how software should perform. 
  • Improve collaboration between testers, coders, and decision-makers. 
  • Automate web testing across browsers at scale.  

Keep in mind, however, that in some cases the business side of the organization may not have input or opinions as to how the application behaves. It may also be true, depending on the size of your QA team or who is doing the automation work, that an extra layer of tooling to make tests more humanly readable (as with Cucumber) will not add value. In both cases, using Cucumber at the test creation phase may not be necessary.  

Bottom Line 

While Selenium and Cucumber have some overlap — both are open-source and used for functional testing — their similarities end there. Selenium is used to automate web browsers, whereas Cucumber is used for behavior-driven development. Finally, because Selenium requires coding knowledge, it is often picked by SDETs and developers. Cucumber is a go-to for business testers. 

Perfecto: For Selenium, Cucumber, & More  

Perfecto supports both Cucumber and Selenium, and offers more BDD capabilities through the Quantum framework. With Perfecto, teams have a secure, scalable cloud environment for web and mobile testing that offers fast parallel executions and fast feedback via reporting.

Try Perfecto