Comparing SpecFlow and Fitnesse

Behavior driven software development tool to bind business readable specifications to the underlying system.

  • Tests live and run in Visual Studio
  • Tests are run as NUnit tests
Software development collaboration framework for creating acceptance tests and executing them against the underlying system.

  • Tests live and run in a website wiki
  • Tests are run using custom Fit/SLIM runner
  • Business specifications mapped to test names automatically (auto-generated)
  • Run acceptance tests with NUnit (easy)
  • Visual Studio integration
  • Easier to debug
  • Low entry cost, easy to get setup and going
  • Wiki interface allows specifications to be accessed and maintained by less technical staff
  • Specifications can be run on demand through web or test runner console
  • More flexibility in specification format
    • Several different types of tests/fixtures
    • Not bound to given-when-then
  • Organization options for specs and tests (subwiki's, searching, tagging, linking, etc.)
  • Easy to include additional, related information with specifications in accessible format (Ex. links to screen mock-ups)
  • Supports multiple programming languages and platforms
  • Limited ability to share and collaborate with product owners and stakeholders since specifications are held in Visual Studio (could import/export specs as a workaround)
  • Specifications must be written in Gherkin language (given/when/then)
  • Specification maintenance must be done by staff comfortable with Visual Studio
  • Must import Fitnesse tests locally or deploy code to Fitnesse server to run tests
  • Higher entry cost, must learn Fitnesse test fixtures, wiki language, and set up server
  • Harder to debug
  • More time coordinating test table creation in wiki and test fixture creation in Visual Studio