Tuesday, May 13, 2014

FitNesse is NOT a Replacement for Fit

In my experience FitNesse has turned out to be more of an obstacle to productivity than a boost.

I have used FitNesse on numerous projects over the past few years and have come to the conclusion that FitNesse, not Fit, is more of an obstacle to my productivity than a boost especially as projects get larger and more complex.

Here are the main reasons for why I think this is so:
  1. It runs contrary to the original notion in Fit that separates the Client and QA from the development team.This was the central idea of Fit as envisioned by Ward Cunningham.
  2. The built-in editor in FitNesse is useless for anything more than a single page of source and there is no hook to link to your own editor. It is next to impossible to perform any kind of minimal modern editing tasks like search/replace across multiple tests.
  3. There are too many fixture types confusing the test writer and irritating the developers.

Fit, the original Framework for Integrated Testing, had the right idea:
  1. The Fit test author (customers, managers and QA) can use the application of their choice (Word for example) to create the HTML test document.
  2. The Fit test authors are in charge of organizing and maintaining the test documents, not the developers.
  3. Separate the Client/QA from the developers (that's a good thing, if QA cooperates too much with developers a dangerous trust can develop).
  4. Developers are responsible for implementing only a few, if any, specialized fixtures.
Unfortunately Fit has been eclipsed recently by FitNesse and as a result has lost it's initial appeal and purpose.

To prove this I am switching to Html/Fit in my own development work and will try my best to separate dev from the QA role as much as possible. The idea is to use an HTML editor like Word or Avaya to maintain the test docs and only test the public API from the client point of view.

FitNesse, and especially Slim, still serve a useful function for development work as an extended unit test framework for testing basic end-to-end scenarios that are not generally unit-testable and development teams should leverage FitNesse as necessary within their team.