Survey of glue code in BDD tools

Idea

There are a lot of Behavior Driven Development (BDD) tools available in practice, see the list below. To involve non-technical stakeholders in specifying requirements, these tools encourage writing behavior specification as constrained natural text. Some of them allow specification as plain text (for example in Given...When...Then format, i.e., using Gherkin syntax).

It is then connected through a 'glue' code or fixture to the underlying implementation.

On the other hand, few BDD tools allow specification as a code with added annotations in order to reduce re-writing of natural language specifications.

The glue code serves as a bridge from higher-level specification to the implementation level details. The characteristics of such glue code and annotations are not yet studied. It is also not clear how much glue code is auto-generated and how much must be written manually. Researchers have recently published two datasets (dataset 1 and dataset 2) that contain open-source projects that use BDD tools. Projects from these datasets can be studied to analyze the characteristics of the glue code, as the original authors did not look into it.

Popular BDD tools

Student can take a look at the following BDD tools to familiarise with the core ideas behind these individual tools:

Hypothesis

If the amount of glue code, in case, must be written manually, is equal to or greater than the amount of the actual implementation code, then the approach is wrong. It means an added amount of work for developers because non-technical stakeholders may not be experts for writing such glue code.

Research questions

Tasks

This seminar project shall be extended as a bachelor/master thesis. The seminar will focus on Cucumber, the thesis will cover in-depth analysis of other included BDD tools.

Contact

Nitish Patkar