I got the confirmation few days ago that my submission had been accepted: on the third day of NDC London, I’ll talk about possible usage scenarios of Excel for BDD.
I have been presenting on NDC Oslo two times already, and I’m very proud that I can be part of this great conference visiting London for the first time. I like this conference because of the high quality of organization, speakers and setup. Even though NDC is traditionally focusing on the .NET community and technologies, it has a broad selection of session topics, so you can also learn about ideas that are not (directly) related to the Microsoft platform. I always come home from NDC loaded with many new ideas and inspiration.
The topic I will present is based on the research I am currently doing. We are working on a larger application with a lot of financial calculations (using BDD with SpecFlow of course), and we have struggled with the way how we can express the key calculation examples. There are several challenges we’ve encountered but three observations made me think more of involving Excel in the BDD process:
- The calculations are so complex that it is impossible to express the key examples with only “nice” numbers. A number like 23.4565 is absolutely not uncommon.
- The key examples are specified as a kind of input-(expected)output tables. In some cases the expected output (given the circumstances of the concrete scenario) can be expressed with “simple” mathematical formulas (like the ones you can use in Excel).
- Business uses Excel to describe their examples. And they are happy with it.
So currently I’m on a journey to discover the potential of using Excel for BDD scenarios where we have used Gherkin (Given-When-Then based) specifications so far. There are several technical and cultural challenges that I would like to discuss in my session. But also the result we have achieved so far will be part of the talk.
The official title and the abstract you will find below. I hope to see you there!
BDD for financial calculations: Excel vs. Given-When-Then, or both?
This session describes how to use Excel combined with SpecFlow to fulfill the requirements for calculations based on project experience.
For calculations the key examples are usually given as input-output tables that describe what expected calculation result the system should provide for the different input figures. As for these applications even small mistakes can quickly cause big losses, you better describe them in a way that both the business and the development team can understand them.
In Given-When-Then based BDD frameworks, like Cucumber or SpecFlow, you normally use Scenario Outlines for describing these. But are we sure that this is the best? Is this really the best way? Have you ever struggled with formatting big gherkin tables, hunting number precision issues or spending hours of recalculating the input-output tables?
In our projects most of the stakeholders use and like Excel for describing these and they are masters in doing this. Excel seems to be their DSL, so let’s try to use it for generating automated tests!
A recorded version of the talk together with the slides can be found at Skills Matter (CukeUp! 2014).
Update (12/13/2013): The sample application that was shown in the demo is published on GitHub. Also the SpecRun.Excel plugin used for this has been released on NuGet.