Cucumber is a functional test automation tool for lean and agile teams. It supports behaviour-driven development, specification by example and agile Acceptance testing. You can use it to automate functional validation in a Form that is easily readable and understandable to business users, developers and testers. This helps teams create executable specifications that are also a goal for development, acceptance criteria and functional regression checks for future changes.
Cucumber is one of the rare tools that try very hard to stay out of your way, to let you do your work without making you worry about the tool itself too much. It helps teams automate their specifications efficiently in several ways:
• It is relatively easy to set up.
• It supports multiple report formats, including HTML and PDF.
• It supports writing specifications in about 30 spoken languages, making it easy for teams outside of English-speaking territories or those working on internationally targeted software to engage their business users better.
• It supports different ways of describing executable specifications —including story-like prose, lists and tabular data.
• It allows scripting, abstraction and component reuse on several levels, allowing both technical and non-technical users to efficiently describe specifications.
• It generates the tricky parts of the code so that you don't have to write most of the boiler-plate automation or make mistakes doing it.
• It integrates nicely with the rest of the development ecosystem. It does not try to impose a version control system, but works off plain-text files that can be stored in any version control system. For continuous build integration, it emulates JUnit (and everything else in the world is already integrated with JUnit).
• Although it is a Ruby tool, people who work on other platforms do not have to learn Ruby to use it. You can use Cucumber with .NET or JVM languages almost natively.
• It's integrated with all the most popular web testing libraries.
• It allows you to mark tests with tags so that you can quickly run a group of related tests (eg quick tests, slow tests, integration tests, accounting tests).
Please let us know if you have any queries or questions related to above.