In Fit for Developing Software: Framework for Integrated Tests, Rick Mugridge and Ward Cunningham address pragmatic examples and exercises for use with the testing framework open source tools Fit and FitNesse, which Cunningham developed.
The Fit tool and framework facilitate writing tests in user-oriented, non-technical row and column tables ("fixtures"). Specific implementation of these tables for a given development environment requires that programmers write supporting code that allows the system under test to be called via a "fixture" mechanism. The tables serve as acceptance tests or requirements lists that can be "run" during development. Use of Fit requires a spreadsheet or an HTML editor to change files. That is, a test author writes tests as tables in a document that can be converted to HTML (e.g., Word, Excel, text editor). FitNesse is a wiki-based environment that provides a single user interface for creating and running Fit fixtures. Download access and installation instructions for Fit and FitNesse are included in this book.
Authors Mugridge and Cunningham have been successful in their attempt to write a book that facilitates communication among the diverse groups involved in the specification, development, and testing of software. This book addresses users (business requirements, rules, and processes), programmers (implementation), and testers (validation) and is divided into two parts, each written to a different audience. The first nineteen chapters are written for "nonprogrammers" and the final twenty are for programmers.
The textbook style is highly suitable for use as a resource text for a course of instruction. In fact, Cem Kaner, a professor of software engineering at the Florida Institute of Technology, is quoted on the book jacket as saying, "Florida Tech requires software engineering students to take a course in programmer testing ... Mugridge and Cunningham have written a useful and instructive book, which will become one of our course texts."
The technical fluidity and evolutionary nature of Fit and FitNesse, and open source tools in general, should be noted when considering use of these tools and the material in this text. As of the publishing date, June 2005, Fit and FitNesse have been implemented for the following programming languages and systems: Java, C# and the .Net platform, C++, Delphi, Lisp, Object C, Perl, Python, Ruby, and Smalltalk.
Given the technical considerations addressed, the material presented is straightforward and easy to use. The overall technique or methodology of expressing requirements in tables that are then executable as tests could go a long way in facilitating an agile development process. Rick Mugridge and Ward Cunningham's Fit for Developing Software is written so that the material will likely stay relevant in spite of technical changes to Fit and FitNesse.