CodeBetter.Com
CodeBetter.Com
RSS 2.0 via Feedburner
           Do you Twitter? Follow us @CodeBetter

Ian Cooper [MVP]


Fitnesse and the 3-way meeting

Jeremy posts in his blog about his replacement for StoryTeller about the pain of FIT based tools. We have been using Fitnesse on the current project and while there has certainly been pain, I think that the pain has been that all tests experience when they start to run the system end-to-end. Suddenly all those technology framework concerns we eliminated in TDD so that we could just focus on testing our domain model, come back into play. Once again we are dealing with setting up and tearing down databases, touching the file system etc.

Our decision to use Fitnesse on this project came from two forces. First was the general lack of satisfaction with our functional testing process. Up to now functional testing had been a combination of xUnit integration tests, custom built tools, and manual testing. Previous attempts with FIT has always drawn a blank. The result was that 'release hardening' took a lot longer than we would desire and smelt of waterfall style testing phases. Second, we wanted to have a better way to communicate the acceptance criteria for the story from the users to BAs, testers and developers such that we were doing story test driven development  or customer test driven development and pushing our code from the agreed acceptance criteria.

We got a real lift in this direction from Gojko Adzic. Gojko spoke for us at London .NET User Group. I got answers to a lot of the fixture issues I had had with FIT.  After that talk I read through Gojko's book on Fitnesse, which reinforced and clarified the message, and was re-enthused by this tool. It's far from perfect,  roll on better tools from Jeremy, but it does give us the placeholder for the story acceptance criteria to drive development.

Like everything it is taking a while for us to refine our use of Fitnesse. One key change for us came from internal conversations and discussions with Gojko - the idea of a three-way meeting. Gojko came in to deliver this presentation at my current outfit (worth watching the video) which explains his thinking. To give my understanding of Gojko's point: the important part of using a tool like Fitnesse for story test driven development is the communication that occurs between customer and implementers. In a case where you may have customer -> BA -> developer -> tester in the mix, the potential for lossy information transfer and misunderstandings is large. Remember the classic swing cartoon? While agile provides some relief by making sure that requirements->development->testing all happen together, thus shortening the feedback loop that leads to failed requirements intepretation, simple 'transcription' errors between people can lead to issues. By getting everyone to review an executable form of the specification then the possiblity of one of us going astray is far less. To facilitate this we now begin work on any story within the iteration with a three-way meeting between BA->developer->tester to ensure that everyone agrees on what the acceptance criteria for the story are. Of course if there are more stakeholders, you may need to increase the size of this meeting. The Fitnesse test becomes a record of that conversation that everyone involved can check, but in many ways the fact that using a tool like Fitnesse forces us to have the conversation and reach agreement may be as important as the result - the excutable specification - is.

The result of the three-way has been that we are finding it easier to implement Fitnesse tests. We still have some problems of our own making (related to how we seed data for tests), but this seems to have removed a lot of the pain around these for us. The suggestion might be that a number of our issues with story test tools has been simply a reflection of problems communicating requirements.



Comments

Jeremy D. Miller said:

Ian,

To be very clear, my whole point is that I love the *concept* of Fit and acceptance test driven development, but I've found over the course of 5 years and a half dozen projects that the implementation mechanics of Fit and especially FitNesse are severely flawed.

"The suggestion might be that a number of our issues with story test tools has been simply a reflection of problems communicating requirements."

Yes, but my major concern is the mechanical cost effectiveness of Fit/FitNesse testing.  Yes, the conversation is important, but in the end I want a tool that creates useful automated tests.  I'm not really concerned about my team's ability to work out the correct acceptance criteria.  I'm terrified about the number of acceptance tests that we need to write in order to ship.  For me, the mechanical cost and fragility of Fit testing is the major concern.

# October 13, 2008 10:00 AM

Ian Cooper said:

@ Jeremy

I'm enthused about the lower level of friction from a DSL, and I understand that your concerns were mechanical costs.

As a data point though we don't find fixtures to be the chief problem with Fitnesse. Once you embrace flow fixtures they seem to be easier.

That said, capturing acceptance criteria accurately is an issue for us and one of the reasons BDD using xUnit based tools, would not work for us is that it does not allow us to verify the up front definition from the customer.

So my point is more that agreeing the specification with the consumer is important to us. We were noticing a lot of danger around 'developers author acceptance tests'.

# October 13, 2008 11:59 AM

Jeremy D. Miller said:

@Ian,

We may have very different tolerances for friction then, because my major beef with Fit is what I perceive to be very poor support for flow based tests.  

# October 13, 2008 12:30 PM

Ian Cooper said:

@Jeremy

That's probably a fair observation. My friction threshold can be high. To be clear I would prefer to have a DSL based tool to do this, and really want something better to come out of your StoryTeller replacement. I'd give you a hand if you needed one.

# October 14, 2008 3:48 AM

Colin Jack said:

Not sure how it affects the discussion but it looks like an early version of SLIM is now available with the FItnesse download:

fitnesse.org/.FitNesseDevelopment.FitNesseRelease20081115

# November 17, 2008 3:42 AM

Leave a Comment

(required)  
(optional)
(required)  

Enter the numbers above:
Add
Check out Devlicio.us!

Our Sponsors