Download Tools

The following tools are used to create and execute tsl test suites for both C and Java objects.

javamts/monomts/mts mts.tar.gz 07/25/2012
This program transforms universe files into various types of scripts that can be used to automatically execute the tests or gather traces for the tests.
 
time.pl, mydate time.tar.gz 11/15/2005
time.pl calculates the time taken by test cases to execute the program, and is used to collect timings. mydate returns sytem time in seconds (elapsed from 1970) and in fractions of a second with resolution of 1 microsecond, and is used to collect timings.
 
tsl tsl.tar.gz 11/15/2005
tsl generates frames based on a TSL specification.

The next set of tools are used to perform analyses on the execution of object test suites, including test prioritization. These tools are distributed and built together, to satisfy various dependencies.

C Tools c-tools.tar.gz 11/15/2005
Java Tools java-tools.tar.gz 11/15/2005
gen_fault_matrix
This module contains various scripts needed to generate a fault matrix file for an object. A fault matrix encodes the relationship between faults and the test cases that reveal those faults.
adiff
A tool that produces a list of changed functions.
misc_lib
This module contains various other tools useful for object construction. See the enclosed CONTENTS file for more detail.

Java line counters
javaNCSS is an alternative source code lines counter for Java provided by Chr. Clemens Lee and generates SLOC counts slightly differently. JavaNCSS was used to compute the SLOC for the concurrency fault experiment objects (e.g. the account subject.) JavaNCSS is available from http://www.kclee.de/clemens/java/javancss.

cloc is a Perl-based implementation by Al Danial which incorporates code from SLOCCount and supports a large number of source languages and extensibility to new languages. Cloc is available from http://cloc.sourceforge.net.

C line counter
David A. Wheeler's SLOCCount, available at https://www.dwheeler.com/sloccount/ is a tool for counting the number of non-comment source lines of code in numerous languages. We have used this tool to count the source lines of code in our C objects.

mts-old.c
This C program is the older version of mts, that functions on universe files of the form found with the Siemens and Space programs. This tool's source can be downloaded here: mts-old.c.

C coverage
We do not provide a tool for computing coverage information on C objects. In the SIR subjects where code coverage information is provided or available, the coverage information for these C objects was computed using the Aristotle Analysis System for C programs. The Aristotle system, however, has not been maintained and its source code is not available. The open source community has several projects aimed at C code coverage analysis. If you are interested in performing C coverage studies we suggest reviewing the capabilities of the Unix/Linux code coverage analysis standard gcov tool as well as examine the capabilities of the xCover and covtool projects or the many other open source coverage analysis projects on the Internet. Compiler tool chains like LLVM can also provide code coverage tracing via appropriate command line flags.

Java coverage
There are three coverage tool suites for Java that we are aware of:

We have been using Sofya for several years in code coverage studies. We have limited direct experience with Cobertura and Emma having found both useful for overall coverage reporting.

Non-Deterministic ANT
The Apache project's ant build tool permits the automation of testing with JUnit. Be aware, however, that this tool introduces a level of non-determinism in the outputs in the form of test execution time statistics. These small differences in execution time make the comparison of outputs between versions difficult, thus the SIR uses a modified version of the ant program that removes this dynamic time aspect from the textual reports. The modifications to remove the non-determinism apply only to the text (.txt) output of JUnit tests. The XML output from JUnit tests continues to reflect execution time data and thus the XML output files remain deterministic. This modified version of ant can be downloaded here.

The removal of non-deterministic output in the SIR version of ant required changes to the associated JUnit library that is provided. This modified version of JUnit is available here.

Contributions

JUnit wrapper test suite for
nanoxml TSL tests
nanoxml-junit.tar.gz 10/17/2005
Contributor: Valentin Dallmeier, Saarland University
This package supplies JUnit test suites that act as wrappers for the nanoxml TSL test suites. Test suites for versions 1 through 5 of nanoxml are provided. Note: These JUnit tests are behaviorally equivalent to the TSL test suites already provided with nanoxml, and have not been created using the unit testing methodology. For this reason, they should not be used in comparisons between the functional and unit testing paradigms.