DOI: 10.5281/zenodo.17517697
title: GivenWhenThen (GWT)

description: GivenWhenThen (GWT

The GivenWhenThen (GWT) dataset is a collection of 2,289 Behavior-Driven Development (BDD) test scenarios extracted from 4,327 real-world open source projects. Each scenario is a JSON object containing three main artifacts: (a) the feature file (BDD scenario in natural language), (b) the step definition file (code that implements the steps described in the scenario), and (c) a list of system code files used by the step definitions. This dataset is ideal for training and evaluating AI models, conducting empirical studies on BDD practices, and developing tools to automate or assist BDD test automation.

Dataset Files:

1. GivenWhenThen.json (Main Dataset) The final dataset containing 2,289 complete BDD scenarios. Each JSON object represents a complete BDD scenario with repository metadata, language, feature content, step definitions content, and system code files. This is the result of the complete data collection process detailed in Section 3 of the paper.

2. projects_discovery.json Initial list of 4,327 unique repositories identified through GitHub API queries. Projects were discovered by searching for those that declared Cucumber as an explicit dependency in their configuration files (package.json, pom.xml, Gemfile, etc.) and contained at least one .feature file. (Phase 1: Projects Discovery - Section 3.1)

3. projects_selection.json Filtered list of 1,720 repositories after applying selection criteria: (a) valid feature files with at least one scenario and one step, (b) features written in English (verified with Langdetect library), and (c) confirmed use of official Cucumber library. These projects contain 7,872 valid feature files. (Phase 2: Projects Selection - Section 3.2)

4. exploitation.json Results of the Exploitation heuristic for mapping feature steps to step definitions. This high-precision strategy uses exact step text match and explicit reference properties. Detected 1,577 tuples with 97% manually validated precision. (Phase 3: Step Definitions Extraction - Exploitation Heuristic - Section 3.3)

5. exploration.json Results of the Exploration heuristic for mapping feature steps to step definitions. This broader strategy uses step text regex match and exact filename match properties. Detected 3,221 tuples with 94% manually validated precision. (Phase 3: Step Definitions Extraction - Exploration Heuristic - Section 3.3)

6. consolidated_dataset.json Intermediate dataset after integrating and refining Exploitation and Exploration heuristic results. Contains 3,747 unique pairs of feature files and step definition files before final system code detection. (Phase 4: Integration and Refinement - Section 3.4)

7. exploitation-to-evaluation.json Sample of 309 tuples used for manual validation of the Exploitation heuristic (97% precision). Contains feature step to step definition mappings with validation results.

8. exploration-to-evaluation.json Sample of 343 tuples used for manual validation of the Exploration heuristic (94% precision). Contains feature step to step definition mappings with validation results.

Source Code Archives

To ensure full reproducibility and transparency, all source code used in dataset construction is provided as zipped archives, corresponding to each stage of the data collection pipeline.Each archive includes a detailed README file describing installation requirements, execution instructions, environment setup, and output structure.








Phase
Archive Name
Description




1
1-projects-discovery
Tools for automated discovery of GitHub repositories using Cucumber/BDD.


2
2-projects-selection
Filtering and validation of repositories containing valid and English-written BDD scenarios.


3
3-step-definitions-extraction-heuristic
Implementation of the Exploitation and Exploration heuristics for linking feature steps to step definitions.


4
4-integration-and-refinement
Integration and unification of heuristic outputs into a single consolidated dataset.


5
5-system-code-detection
Static analysis module for detecting and associating relevant system source code files used in step definitions.


—
heuristic-evaluation
Scripts and utilities for manual dataset validation and heuristic precision assessment.