Semantics-based repair for Java programs
S3's results on our FSE'17 paper
JFIX's and S3's source code are available here: Jfix/S3 inference engine AND S3's synthesis engine
We are working on porting the results, code, and benchmarks to this website. But for the moment, please refer to the results of S3 in the above link
JFix is a semantics-based repair framework for Java programs. It translates and extends its counterpart Angelix, which originally works on C programs. JFix is designed to work on Java-specific bugs such as bugs related to method calls. It is also able to handle other various types of bugs, including assignments, if-conditions, loop-conditions, and guards.
JFix performs selective symbolic execution against test cases to collect error-free execution paths and the corresponding path conditions. It then solves the path conditions to infer specifications that prevent the program under repair from test failures. The inferred specifications can be used by a number of repair synthesis engines to synthesize repairs.
Above is a screen shot showing a compare dialog when a repair is found by JFix in the Eclipse programming environment. Right click on the image, choose View image, for a better resolution.
JFix can repair buggy programs with the push of a button. It is integrated into the Eclipse programming environment with a plugin that suggests fixes to the buggy programs, allowing developers to inspect, modify, and approve the suggested fixes.
Coming soon.
LE, Dinh Xuan Bach Under the supervision of David Lo
Duc Hiep Chu, Claire Le Goues, Willem Visser.
Email to: bachldx@gmail.com