Fit for Developing Software: Framework for Integrated Tests
The Fit open source testing framework brings unprecedented agility to the entire development process. Unlike previous testing tools, Fit fully addresses the business value of software, not just technical quality. Using it, software customers, developers, and testers can clarify what software should do, compare that to what it does do, and systematically address the differences. Working together, they can guide development far more effectively--ensuring that systems accurately reflect business rules, now and in the future.
In Fit for Developing Software, Fit's creators show you how to use Fit to clarify business rules, express them with concrete examples, and organize the examples into test tables that drive testing throughout the software lifecycle. Using a realistic case study, Rick Mugridge and Ward Cunningham introduce each of Fit's underlying concepts and techniques, and explain how you can put Fit to work incrementally, with the lowest possible risk. Coverage includes:
- Integrating Fit into your agile development processes
- Using Fit to promote communication, agility, and balance
- Expressing business rules that define calculations, decisions, and business processes
- Creating Fit "fixtures" that check whether tests are actually satisfied
- Using FitNesse, the Web-based environment for creating, managing, and running Fit tables
- Constructing tests for code evolution, restructuring, and other changes to legacy systems
- Creating sophisticated tests that utilize complex test table structures
- Connecting Fit tables to the system you're testing
About the Authors
Rick Mugridge is an associate professor in the Department of Computer Science at the University of Auckland, New Zealand. He specializes in Agile software development, extreme programming, test-driven development, and related software engineering techniques. Mugridge is one of the world's leading developers of Fit fixtures.
Ward Cunningham is widely respected for his contributions to the practices of object-oriented development, Extreme Programming, and software agility. Co-founder of Cunningham & Cunningham, Inc., he has served as director of R&D at Wyatt Software and as principal engineer at the Tektronix Computer Research Laboratory. He led the creation of Fit, and is responsible for innovations ranging from the CRC design method to WikiWikiWeb.
Review By: Sid Snook
12/02/2005
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 Fitness, which have been developed by Ward Cunningham.
The Fit tool and framework facilitate writing tests in user-oriented non-technical language—simple 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, etc.). 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 between 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 difference audience. The first nineteen chapters are written for "nonprogrammers," while the final twenty are written for programmers.
The textbook style is highly suitable for use as a resource text for a course of instruction. In fact, Cem Kaner, professor of software engineering, Florida Institute of Technology, stated, "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 Fitness 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 Fitness have been implemented for the following programming languages and systems: Java, C# and the .Net platform, C++, Delphi, Lisp, Object C, Perl, Python, Ruby, Smalltalk, etc.
Another consideration, for use of Fit and Fitnesse is the type of application under test. Fit and FitNesse may not be a good choice for all types of developments. As Danny Faught wrote in "Open Testware Reviews," "FitNesse is still evolving." He gave the tool a Maturity rating of three, or "alpha," and a Project Activity rating of five, or "very active" (both on a scale of one to five). He said, "Though FitNesse uses a Web interface, it doesn't have any special capabilities to test Web applications."
"Fit for Developing Software--Framework for Integrated Tests," addresses importance of communication between the diverse groups of people that are involved in a development project. This book is really two books in one. The first addresses the user and tester perspective. It covers the elements of tables, fixtures, error handling, etc. The second book is an extended example of a development project. That is, programming examples in the second part of the book support the non-programming examples and exercises provided in the first part of the book.
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 underlying concepts of the material will likely stay relevant in spite of technical changes to Fit and FitNesse.