Assumptions tracking for WOFOST Potato using behaviour-driven development.
- WOFOST Assumptions Tracking
- Table of contents
- Introduction
- Quickstart
- Python Environment
- Data
- Communication
- Contributions and Support
- License
This repository contains code examples for assumptions tracking of WOFOST Potato using behaviour driven development. The overall motivation behind this demonstration is to synthesise the behavior-driven development (BDD) testing approach that is more commonly used within agile software development with the calibration of mechanistic simulation models. The aim is to demonstrate how BDD can enable and facilitate communication among different disciplines using a common human-readable language. This is particularly important within highly technical scientific domains where cross-disciplinary communication may be more challenging.
BDD was chosen as it (at least in theory) facilitates collaboration and communication within multidisciplinary projects. Namely, it encourages business analysts and developers to collaborate in specifying the behaviour of software, via the use of user stories. These user stories should be written to a formal document. For this demonstration, these documents are written in the popular Gherkin syntax. Model assumptions can be documented in Gherkin, and would be recorded by business analysts as user stories.
First, run the following code to install all dependencies:
poetry install --no-interaction
Secondly, execute the following to run the behaviour tests:
behave --verbose --summary
The behave package was used to implement all BDD tests. These tests have been written using Gherkin syntax. For more information on Gherkin, click here.
- Feature files containing human-readable Gherkin can be found here.
- The implementation of the scenario steps can be found here.
- All relevant datasets and files can be found here.
- The potato data were originally retrieved from here.
Please refer to the following links:
- GitHub Discussions for questions.
- GitHub Issues for bug reports and feature requests.
Contributions are more than welcome. For general guidelines on how to contribute to this project, take a look at CONTRIBUTING.md.
For our community code of conduct, please also view CODE_OF_CONDUCT.md.
This work is published under the Apache License (see LICENSE).