Skip to content

Comparison with Cucumber

Reik edited this page Aug 23, 2023 · 25 revisions

Back to Home


The most principal difference is that the Cucumber core functionality is translating sentences of natural language in calls of program code whereas SysNat provides additional means that are essential to run UI tests (e.g. data import, the communication with the application under test or a valuable test report, see SysNat Layers). All functionality provided by Cucumber should be available in SysNat, too. If not, give us a note...

Differences for the users applying SysNat

Cucumber SysNat
Based on features which contain scenarios Based on Executable Examples (correspond to scenarios) combined to behaviours (correspond to features)
Input are feature files which contain a feature with its scenarios Input are natural language executable examples files (nlxx) which contain a behaviour with its Executable Examples
Use of Gerkhin (BDD-Keyword-colletion) is a must Use of BDD-Keywords is optional
Optimized for Declarative Formulation Style Optimized for using Declarative and Imperative style or the combination of both
No support for natural language scripts Reuse of a list of natural language instruction by Natural Language Scripts
No support for import of test data from external sources Supports import from text and excel files
No support to archive test results An archive layer is integrated
Test reports simply repeats natural language instructions Generation of a Domain User Valuable Test Report
No support for Dynamic Test Objects Dynamic Test Objects supported
Only 'Background' supported as Feature Level Step Supports four kinds of Behaviour Level Instructions

Differences from the developer's point of view

Cucumber SysNat
Setup by installing plugins in your IDE Setup by copying a prepared IDE that contains a Maven based workspace
No integrated communication layer (to be implemented in total by developers) Communication layer for handling web applicatons via Selenium integrated (can be modified by developers if needed)
Developers implement step definition Java files to make natural language executable Developers implement Java files called LanguageTemplateContainer to make natural language executable
Implementation of step definitions allows only one annotation per method Implementation of language templates allows more than one annotations per method (make definition of synonyms and multilanguage support easy)
Execution by calling step definition methods via reflection Execution by running JUnit test classes which are autogenerated and then executed in a separate runtime

Back to Home

Clone this wiki locally