Skip to content

Plant-Food-Research-Open/wofost-assumptions-tracking

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

30 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

WOFOST Assumptions Tracking

Python License Binder Ruff pre-commit security: bandit Lint Test Build CodeQL Advanced

Assumptions tracking for WOFOST Potato using behaviour-driven development.

Table of contents

Introduction

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.

Quickstart

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

Python Environment

behave

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.

Data

Communication

Please refer to the following links:

Contributions and Support

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.

License

This work is published under the Apache License (see LICENSE).