Valerio Terragni vterragni[-AT-]cse.ust.hk
Department of Computer Science and Engineering
The Hong Kong University of Science and Technology
The regression testing of concurrent programs
often requires running a failing test for weeks before catching a
faulty interleaving, due to the myriad of possible interleavings of
memory accesses arising from concurrent program executions. We present RECONTEST, a regression testing tool for Java classes, to address the
problem by selecting the new interleavings that arise due to code
changes. These interleavings must be explored in order to uncover
regression bugs. RECONTEST takes in input a multithreaded test code, two versions of a Java program, RECONTEST efficiently selects (explore) new interleavings
by first identifying shared memory accesses that are affected
by the changes, and then exploring only those problematic
interleavings that contain at least one of these accesses. The
problematic interleavings validated as feasible are outputted
by RECONTEST as warnings of regression concurrency bugs.
For more detailed information please refer to our publication
Valerio Terragni, Shing-Chi Cheung and Charles Zhang.
RECONTEST: Effective Regression Testing of Concurrent Programs. in ICSE 2015: The 37th International Conference on Software Engineering, Florence, Italy, May, 2015.
Java runtime environment 1.7 or higherArchive content
RECONTEST's runnable jar archive
ant builder files (do not modify)
third parties libraries
(Please refer to the corresponding JAR for licence information)
output(folder) output of RECONTEST
regression_test_suite(folder) path references for subjects and tests
The given example file is the following:
test_name = Lang
original_version_project_path = D:/path/orginalVersion
original_version_test_class = org.package.Test1
modified_version_project_path = D:/path/modfiedVersion
modified_version_test_class = org.package.Test1
You can refer to the configuration file if you wish to modify the default configurations of RECONTEST or if you wish to run an unchanged aware PTA (Assetfuzzer see reference  of the paper) for comparison.
From command line, navigate inside the directory "recontest", and run "java -jar recontest.jar"
See output folder for the bug report