Cucumber tool is a software tool which supports Behaviour Driven Development (BDD), very much suitable for Agile teams. It is supported by SmartBear. It expects, the software behaviors to be written in common and simple language, the customer can understand. The development team works in collaboration with stakeholder team.
BDD is Behaviour Driven Development is more of a user perspective and based on the behaviour of the system.
Consider an example of creating the funds transfer module for an net banking application. We have multiple ways to create this application and test it. They are:
- The fund transfer should take place if there is enough balance account in source account.
- Fund transfer must take place if the destination account details are correct.
- Fund transfer should take place if transaction password or authentication entered by the user is correct.
- Fund transfer should always take place if the bank is NOT holiday.
The test scenario becomes more detailed and complex, as we consider more features like transfer amount X for an interval Z days and it should stop transfer when total amount reaches Y.
The general tendency of developers is to develop features and write code later. The developer will continue testing at program levels till release to testing team. At that point he will do quick testing but ineffective testing. In order to overcome this issue BDD was introduced.
Cucumber is a tool which supports behaviour driven development. It offers an understandable format to write test cases. Here the users write scenarios or acceptance tests which describes the behaviour of the system from the customer’s perspective. For the review, of application by the product owners before the developers write their code. Cucumber uses ruby programming language.
Integration of Selenium and Cucumber:
Selenium is a famous tool in the IT industry most of the IT companies use selenium and want to integrate with cucumber. Cucumber acts as bridge between the software engineer and business analyst. In behavior driven development, before the developer develops a code the user writes test scenarios as per the behavior of the system from customer’s perspective. With a simplicity and naïve view of scenarios cucumber works beautifully.
Given a login page, when entered valid credentials user should see account.
Three salient features of Cucumber are:
1. Feature files:
These are essential parts of cucumber and are used to write test automation steps or acceptance tests. This will be used for live document. If we can consider the login functionality feature file. There scenario is considered as login functionality, in which a user navigates through a login functionality. When the user logs in by giving user name and password, either the login should be successful or it should throw some error message. For this, we can verify by cucumber test.
Feature gives the information about high-level business functionality and its purpose of application under test. Everybody should understand the intent of feature file by reading the first feature step.
Usually the scenarios represents the particular functionality which will be under test. Each scenario follows certain format called Gherkin files.
- Given: This specifies the pre-conditions. It is basically known as state.
- When: This is used when some action is performed. One of the example, when the user tries to log in using username and password which is considered as action.
- Then: In this section, the expected result or outcome is placed here. For example, for verifying the login navigation page.
- Background: Whenever the step is required, those particular steps are placed in the background.
- And: This format is used to combine two or more actions.
Advantages of Cucumber tool:
The advantages of cucumber tool are:
- It is helpful to involve business stakeholders who really cant read the code.
- Cucumber testing focuses on the end-user experience.
- Style of writing tests permits easier reuse of code in the test
- It has quick and easy execution and setup.
- Efficient tool for testing.
- Plugin in cucumber works very faster.
- Its open-source free software supports other languages.