views:

135

answers:

2

It seems to me FitNesse has the following advantages:

  • Let a non-technical person define sets of test data and expected results (how they define success). A non-technical person could be a user, a product manager, or possibly a software quality professional who does not have access to the source code and/or does not know how to program in the source language.

  • Lets the non-technical person run the tests and quickly get a sense of the health of the code under test.

I'm working with a code base where the "user interface" is an API in a library, so it is understandable and relevant only to other technical professionals who know the language and have direct access to the API. I need to choose a way to perform integration tests. I'm intrigued by FitNesse but I don't understand why I might bother. These are advantages that still apply in this case:

  • It enforces a standard style for defining tests, so they're easy to understand by other software professionals who need to work with the same code.

  • It lets the source code's author and maintainers quickly see where a test fails and how it failed.

  • Tests are written in the same language as the source code so a separate body of expertise is not needed (i.e. perl or python).

However, there are other simple ways to achieve those same goals, without having to leave your code editor. Also, in order to run the tests, I don't see a way to tie FitNesse tests into an automated system, such as having a continuous integration server run them with new builds. I also don't see how to run FitNesse tests on a hardware platform other than the development platform, so they would not catch timing issues.

So, if you use FitNesse in an environment where your "user" is just as technical as you are, why? If you tried it out and decided against it, what were your reasons?

If you use FitNesse to test code meant for separate proprietary hardware (an embedded system), how does that work?

A: 

I completely agree with your assertion, that being difficult to incorporate into the automated build system is a serious flaw (extending the comment above to an answer) and for that reason I chose to go with an alternative implementation of Fit for C++, CeeFit. The original website (ceefit.woldrich.com) that hosted the documentation on CeeFit was down for many months, but seems to be back up now. CeeFit can be easily automated and integrated into any CI, but there is a lack of output in any format acceptable by CruiseControl.NET for e.g. As for whether CeeFit can work on embedded systems not sure, the documentation doesn't mention any.

ossandcad
Is CeeFit specific to Windows development? The site talks about DLLs and .NET. I'm working on Linux.
jasper77
@jasper77 I don't think so, since the page http://ceefit.woldrich.com/?page=Install mentions Red Hat and Solaris as possible platforms. I have no experience with CeeFit on non-windows so can't vouch for it, but having worked with the code+documentation for ~2 years I would feel confident about what it says.
ossandcad
A: 

This may be informative, especially point 2: http://tech.groups.yahoo.com/group/fitnesse/message/16220

Mike Stockdale