-
Notifications
You must be signed in to change notification settings - Fork 0
Comparison with Cucumber
Reik edited this page Aug 23, 2023
·
25 revisions
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 |