This repository contains (or links to) the source code and auxiliary material for the following publication:
Chu-Pan Wong, Jens Meinicke, Leo Chen, João P. Diniz, Christian Kästner, and Eduardo Figueiredo. 2020. Efficiently Finding Higher-Order Mutants. In Proceedings of the 28th ACM Joint European Software Engineering Conference and Symposium on the Foundations of Software Engineering (ESEC/FSE ’20), November 8–13, 2020, Virtual Event, USA.ACM, New York, NY, USA, 13 pages. https://doi.org/10.1145/3368089.3409713
To reproduce the results presented in our paper, please refer to our Figshare repo.
This repository contains the source code for all the four SSHOM search strategies discussed in the paper:
- : our systematic search based on variational execution
- : the state-of-the-art genetic search
- : the baseline brute-force search
- : our new heuristic search that prioritizes likely SSHOMs based on observed characteristics
The strategy uses an existing implementation of variational execution called VarexC. Since VarexC is under active development, we provide a snapshot of the version we used together with the experiment setup in the Figshare repo.
The customized symbolic execution engine discussed in the Appendix is available in another Github repo.
This project requires Java 8 and can be imported into Intellij or Eclipse.
The jars for the programs we analyzed can be found in the module code-ut
. The source code (with the generated mutants) can be found in other repos linked.
The program we used for mutation generation can be found [here](link repo).
Some of the package names in the subject programs needed to change for use with VarexC (to avoid duplicate package names). Those jars can be found in the same location in the varexc
branch.
In the varex-hom-finder
module, run the main class benchmarks.RunBenchmarks
.
It takes two arguments: the program to run (ex. triangle, chess, validator) and the search strategy (ga or naive).
In the varexc branch, use the same process as above, except the search strategy is varex
.