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.
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](https://git.science.uu.nl/prase101/t2).
**Main features:**
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.
* 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.
* Fast, able to generate thousands of test sequences in few seconds.
...
@@ -12,7 +10,7 @@ T3's main features:
...
@@ -12,7 +10,7 @@ T3's main features:
* A combinator-based approach to compose custom value/object generators, ala QuickCheck?.
* 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.
* 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](https://git.science.uu.nl/prase101/t3i), that facilitates more powerful use of T3. [T3i](https://git.science.uu.nl/prase101/t3i) offers these additional features:
There is also a Groovy 'front-end' called [T3i](https://git.science.uu.nl/prase101/t3i), that facilitates more powerful use of T3. [T3i](https://git.science.uu.nl/prase101/t3i) offers these additional features:
* We can do interactive testing through Groovy interactive shell.
* We can do interactive testing through Groovy interactive shell.
* Provide a convenient way to configure T3, including specifying custom value/object generators.
* Provide a convenient way to configure T3, including specifying custom value/object generators.
...
@@ -23,13 +21,13 @@ T3 needs Java 8, and T3i also needs Groovy at least 2.3.
...
@@ -23,13 +21,13 @@ T3 needs Java 8, and T3i also needs Groovy at least 2.3.
**Contact:**[Wishnu Prasetya](www.cs.uu.ml/~wishnu), owner and developer.
**Contact:**[Wishnu Prasetya](www.cs.uu.ml/~wishnu), owner and developer.
...
@@ -37,6 +35,10 @@ T3 needs Java 8, and T3i also needs Groovy at least 2.3.
...
@@ -37,6 +35,10 @@ T3 needs Java 8, and T3i also needs Groovy at least 2.3.
> _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.
> _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.
**Note:**
* The predecessor of T3, called T2 is phased out. It is still kept [here](https://git.science.uu.nl/prase101/t2).
* T3 and T3i are now hosted in this git.science.uu.nl. The bitbucket repositories will still be maintained for a time; eventually they will be closed down.
**Other papers:**
**Other papers:**
* _Exploiting Annotations to Test Break-off Branches_, I.S.W.B. Prasetya, J. Hage, A. Elyasov, 22th Asia-Pacific Software Engineering Conference (APSEC), IEEE, 2015.
* _Exploiting Annotations to Test Break-off Branches_, I.S.W.B. Prasetya, J. Hage, A. Elyasov, 22th Asia-Pacific Software Engineering Conference (APSEC), IEEE, 2015.