TRregression (Trace-Based Regression ) aims to analyze execution trace to find regression bug.
A demo video is here.
Audience can also check https://youtu.be/Mte08XIETlU to apply autonamous debugging with Tregression.
If you need to reference our technique, please use the following citations:
- Haijun Wang#, Yun Lin#*, Zijiang Yang, Jun Sun, Yang Liu, Jin Song Dong, Qinghua Zhen, and Ting Liu. Explaining Regressions via Alignment Slicing and Mending, Transcation on Software Engineering (TSE 2019). (#co-first author, *corrsponding author)
Source Code Configuration
The TRegression (i.e., ERASE) project relies on Microbat project to collect execution Trace of Java program. When you are importing tregression project, you need to important Microbat project (https://github.com/llmhyy/microbat) as well. Note that all the projects are Eclipse plugin project. The imported projects are listed as follows:
- microbat (mirobat)
- microbat_instrumentator (mirobat)
- microbat_junit_test (mirobat)
- mutation (mirobat)
- sav.commons (mirobat)
- tregression (tregression)
Moreover, this prototype are build on top of Defects4J bugs. We forked Defects4J repository (https://github.com/llmhyy/defects4j) and please checkout the buggy version and fixed version by our script. (https://github.com/llmhyy/defects4j/blob/master/checkout.sh). If you run the script successfully, you can checkout the bug file structure as follows: bug_repo
|__ Chart (project_id)
|__ 1 (bug_id)
Last, please unzip this file (https://github.com/llmhyy/tregression/blob/master/tregression/dependent_lib/junit_lib.rar) under the dropins directory of your eclipse root folder. It contains all the runtime Java libraries.
Running Tregression (ERASE) on Defects4J bugs
After import the projects, right-click the tregression project, and choose "Run As Eclipse Application", you can start debugging Tregression. You need to configure the settings in the Eclipse-application as follows:
Second, please switch to Tregression perspective by (Windows >> Perspectives >> Open Operspective >> Other).
Third, click "Tregression" menu >> Run for Seperate Versions. The tool will automate the regression bug detection.
Running Tregression (ERASE) on Regs4j bugs
Note: The following set-up is not user-friendly (requires manual set-up and understanding of Defects4J folder structure) and is a work in progress.
Set up a Regs4J bug-fix in a similar folder structure as Defects4J.
|__ project-name (project_id)
|__ 1 (bug_id)
Ensure MAVEN_HOME environment variable is set to the path to your system's maven.
Follow the steps for running on Defects4J as above.