Metamodels and associated toolings for applying Behaviour-Driven Development (BDD) to test robotic scenarios.
This is the landing page for the associated tooling to support the specification and
execution of acceptance tests for robotic applications using the
Behaviour-Driven Development (BDD)1 methodology.
BDD complements the ExSce by introducing the scenario view on the robotic system using
a Given-When-Then
cascade. The “Given” clause captures the pre-conditions including
the robotic system and its state, the “When” clause describes an event that the system
should react to, while the “Then” clause specifies the desired or expected behaviour.
However, applying traditional BDD approaches to MRS applications can be challenging
due to the complex interplay of multiple variability dimensions and domains involved in
describing robotic scenarios. To address these challenges more effectively, bdd-dsl
introduces a metamodel for defining composable BDD scenario templates that can be
customized to specific robotic use cases. The metamodel design takes inspiration from
a similar approach used for managing data structures 2 and is further supported
by an analysis of competition rulebooks to identify the variability dimensions that may arise
when evaluating robotic scenarios 3.
This library is one of the tools developed for the Executable Scenario Workbench
Details on the design of the metamodel and a tutorial on how to compose and transform BDD models can be found on the following pages:
This work is partly funded by the SESAME H2020 project, under grant agreement No 101017258.
D. North, “Behavior Modification: The evolution of behaviour-driven development”, Better Software, 2006 (Original blog post). ↩
M. Alferez, F. Pastore, M. Sabetzadeh, et al., “Bridging the Gap between Requirements Modeling and Behavior-Driven Development,” 22nd MODELS, 2019, doi: 10.1109/MODELS.2019.00008. ↩
M. Nguyen, N. Hochgeschwender, S. Wrede, “An analysis of behaviour-driven requirement specification for robotic competitions”, 5th International Workshop on Robotics Software Engineering (RoSE’23), May 2023. ↩