FitNesse is a Wiki built on top of Fit framework which is used for automating Acceptance test cases. FitNesse enables customers, testers and programmers to learn what their software should do, and to automatically compare that to what it actually does do. In very simple terms, it compares customer's expectations to actual results. This tool is built on top of FIT framework. Fit and FitNesse, both believe that great software requires collaboration and communication. These tools enhance the collaboration between customer, testers and programmers by providing a single platform for communication. FitNesse can be seen as a software testing tool, a WIKI or a web server.

Why FitNesse is needed?
In the absence of tool like FitNesse, requirements are mostly specified in natural language. These requirements are also supported by UI mockups, charts etc. But because it is in Natural language, there are always chances of ambiguity in the requirement specification. Another problem with normal development is absence of feedback on the feature being built. FitNesse is a combination of natural language requirement and executable acceptance tests. This is sufficient to describe requirements completely, precisely, and deterministically. FitNesse gives capability to automate the acceptance tests and thus fixes the broken requirement process.

It should be understood that purpose of FitNesse is to fix the broken requirement process by enhancing collaboration and enabling deterministic executable automated tests. It can be argued that why FitNesse is needed for test driven development methodology where everything is anyway driven by tests or unit tests. Using unit testing, usually programmers make sure that their design is sound and there is no defect, but they do not necessarily give information on whether feature itself is being built according to customer expectation or not.

There are many advantages of using FitNesse and most important of them is automated acceptance tests using FitNesse. FitNesse enables early feedback by providing mechanism to execute automated acceptance tests as often as required. Tests written in the FitNesse are deterministic, i.e they either run green or red. Most importantly, test data in FitNesse is developed either by the customers or by development or quality team with the help of customer representative. Since this data is developed from the user stories and is specified in a deterministic manner, it ensures that expectation from the system is clear to everyone.