Behaviour Driven Development (BDD) is a software development technique where the focus is on the feature. The specifications are translated into a series of “Given…, When.., Then..” scenarios, which make it clear what the context is, which action the software is taking and what is the expected outcome. A typical example for a water purifier would go like this:

“Given the water temperature is below the maximum temperature,

When the water temperature goes above the maximum temperature,

Then the alarm LED is turned on and the pump is stopped.”

This syntax is used by the Gherkin language and can be interpreted by tools such as SpecFlow to generate executable C# code from these human readable statements. This code can then be interfaced to embedded code for automated testing, and run on a build server.

If in-depth testing is required, target hardware can also be interfaced to the build server.