Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                

Cucumber Interview

Download as docx, pdf, or txt
Download as docx, pdf, or txt
You are on page 1of 14

Most Frequently asked Cucumber Interview Questions

Q #1) Explain Cucumber shortly.

Ans: Cucumber is a tool that is based on Behavior Driven Development (BDD) methodology.

The main aim of Behavior Driven Development framework is to make various project roles such as
Business Analysts, Quality Assurance, Developers etc., understand the application without diving
deep into the technical aspects.

Q #2) What language is used by Cucumber?

Ans: Gherkin is the language that is used by the Cucumber tool. It is a simple English representation
of the application behavior. Gherkin language uses several keywords to describe the behavior of
application such as Feature, Scenario, Scenario Outline, Given, When, Then etc.

Q #3) What is meant by a feature file?

Ans: A feature file must provide a high-level description of an Application Under Test (AUT). The first
line of the feature file must start with the keyword ‘Feature’ following the description of the
application under test.

A feature file may include multiple scenarios within the same file. A feature file has the
extension .feature.

Q #4) What are the various keywords that are used in Cucumber for writing a scenario?

Ans: Mentioned below are the keywords that are used for writing a scenario:

 Given

 When

 Then

 And

Q #5) What is the purpose of Scenario Outline in Cucumber?

Ans: Scenario outline is a way of parameterization of scenarios. This is ideally used when the same
scenario needs to be executed for multiple sets of data, however, the test steps remain the same.
Scenario Outline must be followed by the keyword ‘Examples’, which specify the set of values for
each parameter.

Q #6) What programming language is used by Cucumber?

Ans: Cucumber tool provides support for multiple programming languages such as Java, .Net, Ruby
etc. It can also be integrated with multiple tools such as Selenium, Capybara etc.

Q #7) What is the purpose of Step Definition file in Cucumber?

Ans: A step definition file in Cucumber is used to segregate the feature files from the underlying
code. Each step of the feature file can be mapped to a corresponding method on the Step Definition
file.

While feature files are written in an easily understandable language such as Gherkin, Step Definition
files are written in programming languages such as Java, .Net, Ruby etc.
Q #8) What are the major advantages of Cucumber framework?

Ans: Given below are the advantages of Cucumber Gherkin framework that make Cucumber an ideal
choice for rapidly evolving Agile methodology in today’s corporate world.

 Cucumber is an open source tool.

 Plain Text representation makes it easier for non-technical users to understand the
scenarios.

 It bridges the communication gap between various project stakeholders such as Business
Analysts, Developers, and Quality Assurance personnel.

 Automation test cases developed using the Cucumber tool are easier to maintain and
understand as well.

 Easy to integrate with other tools such as Selenium and Capybara.

Q #9) Provide an example of a feature file using the Cucumber framework.

Ans: Following is an Example of a feature file for the scenario ‘Login into the application’:

Feature: Login to the application under test.

Scenario: Login to the application.

Given Open Chrome browser and launch the application.


When User enters the username onto the UserName field.
And User enters the password into the Password field.
When User clicks on the Login button.
Then Validate if the user login is successful.

Q #10) Provide an example of Scenario Outline using Cucumber framework.

Ans: The following is an Example of Scenario Outline keyword for the scenario ‘Upload a file’.
Number of parameter values to be included in the feature file is based on the tester’s choice.

Scenario Outline: Upload a file

Given that the user is on upload file screen.


When a user clicks on the Browse button.
And user enters <filename> onto the upload textbox.
And user clicks on the enter button.
Then verify that the file upload is successful.

Examples:

|filename|
|file1|
|file2|

Q #11) What is the purpose of Behaviour Driven Development (BDD) methodology in the real
world?

Ans: BDD is a methodology to understand the functionality of an application in simple plain text


representation.
The main aim of Behavior Driven Development framework is to make various project roles such as
Business Analysts, Quality Assurance, Developers, Support Team understand the application without
diving deep into the technical aspects.

Q #12) What is the limit for the maximum number of scenarios that can be included in the feature
file?

Ans: A feature file can contain a maximum of 10 scenarios, but the number can vary from project to
project and from one organization to another. But it is generally advisable to limit the number of
scenarios included in the feature file.

Q #13) What is the use of Background keyword in Cucumber?

Ans: Background keyword is used to group multiple given statements into a single group. This is
generally used when the same set of given statements are repeated in each scenario of the feature
file.

Q #14) What symbol is used for parameterization in Cucumber?

Ans: Pipe symbol (|) is used to specify one or more parameter values in a feature file.

Q #15) What is the purpose of Examples keyword in Cucumber?

Ans: Examples keyword is used to specify values for each parameter used in the scenario. Scenario
Outline keyword must always be followed by the keyword Examples.

Q #16) What is the file extension for a feature file?

Ans: File Extension for a feature file is .feature. A feature file is ideally written in a notepad file and is
saved with the extension feature.

Q #17) Provide an example of step definition file in Cucumber.

Ans: Step definition corresponding to the step “Open Chrome browser and launch the application”
may look like the code mentioned below:

@Given("^Open Chrome browser and launch the application$")

public void openBrowser()

driver = new ChromeDriver();

driver.manage().window().maximize();

driver.get("www.facebook.com");

Q #18) What is the purpose of Cucumber Options tag?

Ans: Cucumber Options tag is used to provide a link between the feature files and step definition
files. Each step of the feature file is mapped to a corresponding method on the step definition file.

Below is the syntax of Cucumber Options tag:


@CucumberOptions(features="Features",glue={"StepDefinition"})

Q #19) How can Cucumber be integrated with Selenium WebDriver?

Ans: Cucumber can be integrated with Selenium webdriver by downloading the necessary JAR files.

Given below are the list of JAR files that are to be downloaded for using Cucumber with Selenium
web driver:

 cucumber-core-1.2.2.jar

 cucumber-java-1.2.2.jar

 cucumber-junit-1.2.2.jar

 cucumber-jvm-deps-1.0.3.jar

 cucumber-reporting-0.1.0.jar

 gherkin-2.12.2.jar

Q #20) When is Cucumber used in real time?

Ans: Cucumber tool is generally used in real time to write acceptance tests for an application. It is
generally used by non-technical people such as Business Analysts, Functional Testers etc.

Q #21) Provide an example of Background keyword in Cucumber.

Ans:

Background: Given user is on the application login page.

Q #22) What is the use of Behavior Driven Development in Agile methodology?

Ans: The advantages of Behavior Driven Development are best realized when non-technical users
such as Business Analysts use BDD to draft requirements and provide the same to the developers for
implementation.

In Agile methodology, user stories can be written in the format of feature file and the same can be
taken up for implementation by the developers.

Q #23) Explain the purpose of keywords that are used for writing a scenario in Cucumber.

Ans: “Given” keyword is used to specify a precondition for the scenario. When a keyword is used to
specify an operation to be performed. The keyword is used to specify the expected result of a
performed action. “And” keyword is used to join one or more statements together into a single
statement.

Q #24) What is the name of the plugin that is used to integrate Eclipse with Cucumber?

Ans: Cucumber Natural Plugin is the plugin that is used to integrate Eclipse with Cucumber.

Q #25) What is the meaning of TestRunner class in Cucumber?

Ans: TestRunner class is used to provide the link between feature file and step definition file. Below
is the sample representation of how TestRunner class will look like. A TestRunner class is generally
an empty class with no class definition.
Q #26) Provide an example of TestRunner class in Cucumber.

Ans:

Package com.sample.TestRunner

importorg.junit.runner.RunWith;

importcucumber.api.CucumberOptions;

importcucumber.api.junit.Cucumber;

@RunWith(Cucumber.class)

@CucumberOptions(features="Features",glue={"StepDefinition"})

public class Runner

Q #27) What is the starting point of execution for feature files?

Ans: When integrated with Selenium, the starting point of execution must be from TestRunner class.

Q #28) Should any code be written within TestRunner class?

Ans: No code should be written under the TestRunner class. It should include the tags @RunWith
and @CucumberOptions.

Q #29) What is the use of features property under Cucumber Options tag?

Ans: Features property is used to let Cucumber framework identify the location of the feature files.

Q #30) What is the use of glue property under Cucumber Options tag?

Ans: Glue property is used to let Cucumber framework identify the location of step definition files.

Q #31) What is the maximum number of steps that are to be written within a scenario?

Ans: The maximum number of steps to be written in a scenario is 3-4 steps.

Further reading:  Automation testing with Cucumber and Selenium

Summary

 BDD is a methodology to understand the functionality of an application in simple plain text


representation.

 Cucumber is a tool that uses Behaviour Driven Development to write acceptance tests of an
application. It is used to bridge the communication gap between various project
stakeholders.

 The main use of Cucumber lies in its simplicity to understand and usage of feature files by
the non-technical users.
 12) Explain what is regular expressions?

A regular expression is a pattern describing a certain amount of text.  The most op 30


Cucumber Interview Questions & Answers

1. Full form of BDD

BDD stands for Behavior Driven Development

2.  Full form of TDD

TDD stands for Test Driven Development

3. What is the difference between BDD and TDD?

BDD TDD

Behavior centered development process Test centered development process

BDD tests are written in readable format TDD tests are written using programming
using Given-When-Then steps languages like Ruby, JAVA etc

BDD tests are readable by non-programmers TDD tests are difficult to read by non-
programmers

4. Name any 3 popular BDD testing tools

 Cucumber
 JBehave
 Specflow

5. What is the difference between cucumber, JBehave, and Specflow?

 Cucumber is a Ruby based framework


 JBehave is a JAVA based framework
 Specflow is a .NET based framework

6. What is Cucumber?

Cucumber is a testing framework written in BDD style. Cucumber lets us define the system
behavior from user’s perspective in plain English text called Gherkin. Cucumber by itself is
written in Ruby programming language but it can be used to test the code written in other

programming languages like JAVA, .NET, Groovy etc.

7. What are the advantages of Cucumber?

 Cucumber acceptance tests are written from user’s perspective


 Team Collaboration (Product owners, business analysts, developers, testers are all
involved in writing scenarios)
 Code reusability
 Tests are written in plain-text English so people with less technical skills can also write
scenarios
 Cucumber can be integrated with Selenium and other testing frameworks like JUnit &
TestNG

8.  What are the two files required to run a cucumber test?

 Feature file
 Step Definition file1

9. What is a feature file?

Feature file is an entry point of Cucumber execution. Cucumber scenarios are written inside
the feature file using a plain-text language called Gherkin. It can contain a scenario or
multiple scenarios. All the acceptance tests are written in feature file using Given-When-
Then statements.

10. What is the file extension of feature file?

.feature is the extension of feature file. Example, “Test.feature” is a feature file name.

11. What is the language used to write a scenario in feature file?

Gherkin is a plain-text language used to write cucumber scenario in the feature file. Gherkin
is a business readable, domain-specific language used to describe the behavior of software
application from user’s perspective so that its easy for non-programmers to read and
collaborate.
12. What is the two main purpose of using Gherkin?

 Documentation
 Automated tests

13. What are the keywords used in Feature file?

 Feature
 Background
 Scenario
 Scenario Outline
 Given
 When
 Then
 And
 But

14. Is it mandatory to use Given, When, Then keywords while writing scenario?

No.  *  can also be used to write steps in the feature file.

1 Feature: Account Balance


2  
3   Scenario: Verify Positive Balance
4     * I have $100 in my account
5     * I withdraw $50
6     * I should have $50 balance

15. What is the difference between Given, When, Then steps in feature file?

 Given defines the context of the scenario


 When defines the actions of the scenario
 Then defines the outcome of the scenario

16. Explain Scenario Outline in feature file

Scenario Outline keyword in feature file is used to execute scenarios multiple times using a
different set of test data. Multiple sets of test data are provided by using ‘Examples’ in a
tabular structure separated by pipes (| |)
Example Scenario Outline below:

17. Explain background in feature file

Steps written under the Background keyword are executed before every scenario.

For example: If you want to execute the same steps for every scenario like login to the
website, you just write those common steps under the background keyword. While executing
every scenario, steps written under background will be executed first.

1 Feature: Account Balance


2   
3   Background:
4     Given I login to the account
5   
6   Scenario: Verify Positive Balance
7     Given I have $100 in my account
8     When I withdraw $50
9     Then I should have $50 balance
10  
11   Scenario: Verify Zero Balance
12     Given I have $100 in my account
13     When I withdraw $100
14     Then I should have $0 balance

18. How to comment a line in Feature file?

# is used to comment a line in feature file


 

19. What is a Step definition file?

Step definitions file has the actual code implementation of the scenario step.

Feature file

1 Feature:
2  
3   Scenario:
4     Given verify two values 'text', 'test'

Step definition file 

1 public class Test {


2     @Given("verify two values '(.*)', '(.*)'")
3     public void verify_two_values(String arg1, String arg2)  {
4        Assert.assertEquals(arg1,arg2);
5     }
6 }

20. Write an example BDD test scenario


1 Feature: Account Balance
2   Scenario: Verify Balance
3     Given I have $100 in my account
4     When I withdraw $50
5     Then I should have $50 balance

21. Explain Cucumber Tags

Cucumber tags are used to organize scenarios in your feature file. You can have as many tags
as you like before a scenario or feature. @ is used to represent tags. Example: @regression,
@sprint5, @EndtoEnd

Tags are used to

 Group scenarios
 Ignore scenarios from execution
 Logically group (OR & AND)

1 Feature: Account Balance


2  
3   @regression @sprint2
4   Scenario: Verify Zero Balance
5     Given I have $100 in my account
6     When I withdraw $100
7     Then I should have $0 balance

22. Cucumber Tags are case sensitive. True or False?   True

23. Name any two testing framework that can be integrated with Cucumber?

 JUnit
 TestNG

24. Name any two build management tools that can be integrated with Cucumber?

 Gradle
 Maven

25. What software do you need to run cucumber in JAVA?

 Eclipse or IntelliJ IDE


 Gradle or Maven build tool
 Junit or TestNG testing framework
 Cucumber
 Selenium (To automate browser)

26. How does a JUnit Test Runner class look like? 

1 import cucumber.api.CucumberOptions;
2 import cucumber.api.junit.Cucumber;
3 import org.junit.runner.RunWith;
4  
5 @RunWith(Cucumber.class)
6 @CucumberOptions(
7         features="src/test/resources/features",
8         glue= "ca.testing.stepdefinitions")
9  
10 public class TestRunner{
11 }

27.  What is @CucumberOptions in test runner? List the properties of @CucumberOptions

@CucumberOptions are used to set specific properties for your cucumber test.

Properties are,

 Feature – path to feature file


 Glue – path to step definition
 dryRun – boolean value – check for missing step definition
 tags – used to group cucumber scenarios in the feature file
 strict – boolean value – fail the execution if there is a missing step
 monochrome – boolean value – display console output in a readable way

1 import cucumber.api.CucumberOptions;
2 import cucumber.api.junit.Cucumber;
3 import org.junit.runner.RunWith;
4  
5 @RunWith(Cucumber.class)
6 @CucumberOptions(
7         features="src/test/resources/features",
8         glue= "ca.testing.stepdefinitions",
9         tags = @regression,
10         dryRun = false,
11         strict = true,
12         monochrome = true)
13  
14 public class Runfeatures {
15 }

28. Name any advanced framework design that can be used with Cucumber?

 Page Object Model


 Log4j
 Extent Reporting
 Dependency Injection (Example: Pico Container)
 Object Repository

29. Selenium can be integrated with Cucumber. True or False?  True

30. Explain Cucumber Hooks

Cucumber Hooks are blocks of code that can be used to run before and after the scenarios
using @before and @after methods. It helps us eliminates the redundant code steps that we
write for every scenario and also manages our code workflow.

1 public class Hooks {


2  
3     @Before
4     public void before(){
5         System.out.println("This will execute before every Scenario");
6     }
7     @After
8     public void after(){
9         System.out.println("This will execute after every Scenario");
10     }
11 }

Note: @After will be executed even though the scenario is failed. @Before will be executed
before ‘Background’ steps in the  feature file.

Thanks for reading   All the Best!

Suggested Readings : Top 40 Selenium Webdriver Interview Questions &


Answers

Know anyone who is preparing for Cucumber or BDD Interview?  Help your friends by
sharing this article on Facebook, Twitter, or Google Plus.
BDD  BDD INTERVIEW QUESTIONS  CUCUMBER  CUCUMBER
INTERVIEW  CUCUMBER INTERVIEW QUESTIONS  CUCUMBER INTERVIEW
QUESTIONS AND ANSWERS  CUCUMBER QUESTIONS
Post navigation
PREVIOUS POST Software Testing Methods
NEXT POST How to download Katalon Studio?

4 thoughts on “Top 30 Cucumber Interview Questions &


Answers”
 basic regular expression consists of a single literal character

You might also like