Executable Requirements
I really had never heard the term Executable requirements comming into this talk so thought I would see what I could learn. An executable requirement is a requirement written in such a way that user (or BA usually) can read / write it and it can also run against our code to test it. FIT is the best example of this.
Some people here have used fit/fitness but most people have had pain with it (FITNESS is the wiki. FIT is the dll)
-Refactoring with fitness was hard
-It turns into a lot of overhead
-There are problems with source control (TFS/VSS can not be done.. well Jeremy says it can be done)
-CI integration is hard
We are trying to express the requirements so it is readable. We are trying to kill two birds with one stone here and have the tests and the requirements be the same and therefore and executable requirement.
Where FIT Shines: table type testing (similar to row test from mbunit), the realm of primitives (strings ints, dates,etc) it tests really well.
Testing objects are not so easy.
“remember refactoring with nmock? FIT is just like that but worse” –Jeremy Miller
We then had a look at nbehave. nBehave was inspired by rBehave which was done on ruby. With nBehave the story is in the code and done with a fluent interface.
transferStory.AsA(“savings accountHolder”).Iwant(“To withdraw”).SoThat(“I can buy things”);
transferSwroty.WithScenario(“Creidt account”).Pending(“ability to withdraw”).Given(“my balance is”,400).When(“I writhdraw from my account”, 100).Then(“my savings account balance should be”, 300);
We went on about this for a bit but I really did not like it. The person who got up to talk about this said that it what they were doing was sitting with the BA and writing out the story in a fluent interface and then having a coder go in and wire in some code.
I was feeling a bit over my head as I never played with this tool and the discussion really went into how to use it. I have a feeling that I will not be using this anytime soon so decided to pop over to check out some of the other talks. There is not much to write about them as I missed a lot of the beggining context.
The closing of the day was really good with all of the attendies going around in a circle giving a 30 second blurb about what they thought of the conference. Lots of good points came out of this and Scott and I have some video of peoples thoughts that we will hopefully get put up somewhere for any of those interested (I only got about 10 minutes as I ran out of memory and Scott got more but ran out of battery)