Fit Specification
Fit is a tool for improving communication
between customers, programmers, and
testers. It allows the customer to describe
his requirements in a way that can be checked
against the actual program.
The technique Fit uses is called
"specification
by example." It allows customers to
create a document
with tables that describe specific
examples of how the software should work. Fit looks at the document
and checks to
see if the software works the way the tables say it should.
Fit uses small programs, called
"fixtures," to connect
tables to software. Programmers on the development team are responsible
for creating those fixtures. Customers
are responsible for creating the tables.
Testers work with both groups of people to help make sure that all situations
are adequately covered. The three groups
work together, interactively, to create
great software.
This document, and the documents
it references, describes
Fit using specification
by example. It is, itself, an example of how to use Fit. If all the “pass” cells
in the table below are colored green, then you
can be confident
that your copy of Fit meets this specification.
This is a “straw man”
draft. It proposes some things that the
official version of Fit doesn’t
support. Those proposals are highlighted
in yellow, like this paragraph. All aspects of the specification are open for modification; the highlighted proposals
most of all.
Fit knows how to do these things:
fat.ReferenceFixture
|
|
|
Description
|
Location
|
Result()
|
Parse and output HTML documents
|
parse.html
|
pass
|
Interpret tables using fixtures
|
fixtures.html
|
fail: 50 right, 31 wrong, 0 exceptions |
Provide a command-line interface
|
cli.html
|
file not found: C:\projects\fit\spec\cli.html |
Click the links for details about how Fit
does each of these things.
Fit is available for many programming languages. The sections
above apply to all implementations of Fit.
Extensions specific
to this implementation of Fit are described
here:
fat.ReferenceFixture
|
|
|
Description
|
Location
|
Result()
|
Implementation-specific
extensions
|
extensions.html
|
pass
|
fit.Summary
|
counts |
2 right, 0 wrong, 0 ignored, 0 exceptions |
input file |
C:\projects\fit\imp\java\..\..\spec\index.html |
input update |
Tue Jul 20 14:54:58 PDT 2004 |
output file |
C:\projects\fit\imp\java\output\spec\index.html |
run date |
Tue Aug 31 16:56:41 PDT 2004 |
run elapsed time |
0:00.71 |