FineFit is a tool for automatically testing Java applications. The test cases and the test oracle are generated from an abstract HTML based tabular specification.
License: GNU General Public License v3.0
Java 27.49%HTML 72.36%Alloy 0.15%
finefit's Introduction
To build FineFit you will need the following Java applications:
1. Apache Ant 1.9.4 (or higher)
1. Alloy 4.2 from http://alloy.mit.edu/alloy/downloads/alloy4.2.jar
2. Fit 1.1 for Java from http://fit.c2.com/wiki.cgi?DownloadNow
Download Alloy and Fit and put their jar files in the lib directory.
Then run
ant compile jar
And you should get FineFit.jar under build/jar.
currently we do not validate the content of the tables, this makes it difficult to correct mistakes because they appear as syntax errors at the Alloy file and it is difficult to correlate them with the location of the problem in the table.
currently it is only possible to determine the value of a state variable with an equation. However in some cases it is only possible to specify a constraint on the state variable. Borrowing an idea from Parnas we may use the syntax
x |
in the frame to indicate that the cells in the row for the variable x are not expressions but formulas. However it is not clear yet how to refer to the state variable in the formula.
currently we do not check that the model is internally consistent. That is, we do not check that the operations in the model maintain the invariant and that they are not trivial (their predicates are not 'false').
currently unless we explicitly set the values of all state variables in the retrieve function the values of these variables contain arbitrary (and therefore confusing) relations.
Alloy does not provide 'true' and 'false' constants. But without 'true' it is cumbersome to define a total operation. In addition, it is cumbersome to specify that a relation is empty. Currently we have to do something like:
{ x : X, y : Y | y != y }
it would be better to define something like a function empty[X,Y]