Fastest
Fastest is a model-based testing tool that works with specifications written in the Z notation. The tool implements the Test Template Framework proposed by Phil Stocks and David Carrington.
Usage
Fastest presents a command-line user interface. The user first needs to load a Z specification written in LaTeX format verifying the ISO standard. Then, the user has to enter a list of the operations to test as well as the testing tactics to apply to each of them. In a third step Fastest generates the testing tree of each operation. After testing trees have been generated, users can browse them and their test classes, and, more importantly, they can prune any test class both [|automatically or manually]. Once testing trees have been pruned, users can instruct Fastest to find one abstract test case for each leaf in each testing tree.Testing tactics supported by Fastest
Currently, Fastest supports the following testing tactics:- Disjunctive Normal Form. It is the only testing tactic applied by default and the first one to be applied.
- Standard partitions. The user can add, modify and delete standard partitions for any predefined Z mathematical operator by simply editing a text file.
- Free Types
- In Set Extension
- Proper Subset of Set Extension
- Subset of Set Extension
Pruning testing trees in Fastest
- Automatic pruning.
- Manual pruning.
How Fastest finds abstract test cases
Architecture and technology
Fastest is a Java application based on the Community Z Tools project. The tool can be used in one of two modes:- In distributed mode Fastest works as a client–server application. The application can be installed in a number of computers each acting as client, a server or both. Users access the application through clients which send test classes to servers which try to find an abstract test case out of them. In this way the heaviest task is distributed across as many computers as possible. Since the calculation of an abstract test case from a test class is completely independent from each other, this architecture speeds up the entire process proportionally with respect to the number of testing servers.
- In application mode each instance of Fastest is completely independent of each other. All the tasks are computed in the local computer.
Adding new testing tactics
In Fastest users can add testing tactics of their own by implementing the Tactic interface provided by the tool. This interface has methods to configure and apply testing tactics. The interface definition is the following:
package client.blogic.testing.ttree.tactics;
import java.util.*;
import net.sourceforge.czt.z.ast.Spec;
import common.z.TClass;
import common.z.OpScheme;
/**
* Interface that abstracts a testing tactic and
* makes possible its application to a test class in order to generate new ones.
*/
public interface Tactic