Question

What's the advantage of using Fitness versus automated Integration Tests? I'm struggling to see exactly where Fitness fits in when aiming to deliver a fully tested solution. Surely, if a developer has unit and integrate tested their code then this should be sufficient. Why would a team need to duplicate integration testing efforts?

Was it helpful?

Solution

Test cases in Agile environments mainly come in four main types:

1) Automated unit tests (e.g., using J-unit);

2) Automated feature verification tests (e.g., using Fitnesse);

3) Automated functional/regression tests (e.g., using Selenium or QuickTestPro);

4) Manual testing.

For types 1-3, of course, there are specified automated test cases. For type 4, the test cases tend to be logical (or high-level) test cases, which requires a higher level of skill and domain knowledge in the testers. Also, a significant amount of experience-based testing, such as exploratory testing, defect taxonomy testing, etc., tends to occur.

See the RBCS blog here:

OTHER TIPS

The main reason to use fitness is if you are going to have non-technical people writing tests. So for example, suppose we have to support a ton of different ways of paying commissions. Non-tech people could make spreadsheets that show a dude earning a certain amount of dough, asking the system how much they should get in commission, and then asserting that the calc is right.

Personally, I have found FIT more trouble than it's worth. I think it might be a really compelling tool if the makers got serious and made some tools to set it up and configure it.

But the main thing is only use it if you are sure you are going to have a lot of business rules type things to verify that BAs or even Customers could participate directly in. This is not for asserting that an orbital constant is being computed properly.

Fitness is supposed to make it easier for business analysts to own and run tests. Developers create fixtures; business analysts feed data and confirm that tests pass.

In my experience, business analysts have neither the background nor the interest to do such a thing.

Fitness tests are more like integration tests. They can involve several components. Unit tests should be done by developers on single components. Hence the name "unit".

I prefer unit tests.

The question implies a false dichotomy; FitNesse is an automated integration testing solution. It's just that tests are (intended to be) created as markup in wiki pages.

I'm currently using it as my integration testing solution; I run all of the integration tests using the command line. Tests can also be run via a JUnit or a REST API (which would require running the FitNesse server).

As Rob mentions in their answer, it's not (very) easy to setup and configure, tho I didn't find it too difficult. And I dispute Rob's claim that "This is not for asserting that an orbital constant is being computed properly."; in fact, it's perfectly usable for exactly that.

I came across this question because I was searching for evaluations from people using, or people that had used, Fit or FitNesse for unit testing. The reason why that idea occurred to me is that, as a developer, I find it much easier to understand a set of tests in the form of a FitNesse wiki page than a code file.

Below is an example of a test page from one of my projects. These tests are integration tests, but I can't think of any reason why this wouldn't work well for unit tests too. There's nothing special about the code for the tests that would prevent units from being tested.

Example FitNesse test page

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top