T3
T3 is a powerful automated unit testing tool to test Java classes. Given a target class to test, it randomly generates sequences of calls to the class' methods to test it. It catches unexpected exception; but if you had written assertions in the class, then violations to those will be caught as well.
Note: the predecessor of T3, called T2 is phased out. It is still kept here.
T3's main features:
- Sequence-based testing: it does not test a method individually, but instead generate sequences of method calls to trigger interactions between methods of the target class.
- Fast, able to generate thousands of test sequences in few seconds.
- Generated test suite can be saved and replayed.
- A combinator-based approach to compose custom value/object generators, ala QuickCheck?.
- It can be run from the command line, or called as an API from a JUnit test class.
I also provide a Groovy 'front-end' called T3i, that facilitates more powerful use of T3. T3i offers these additional features:
- We can do interactive testing through Groovy interactive shell.
- Provide a convenient way to configure T3, including specifying custom value/object generators.
- We can experiment with different configurations to generate multiple suites; combine them, filter them, and combine them again.
- We can query generated test suites for Hoare triples, LTL formulas, or algebraic formulas.
T3 needs Java 8, and T3i also needs Groovy at least 2.3.
License: GPL version 3.
Binary download: to do.
Manuals:
Contact: Wishnu Prasetya, owner and developer.
If you want to cite:
T3i: A Tool for Generating and Querying Test Suites for Java, I.S.W.B. Prasetya, 10th Joint Meeting of the European Software Engineering Conference (ESEC) and the ACM SIGSOFT Symposium on the Foundations of Software Engineering (FSE), ACM, 2015.
Other papers: