Important: to learn the optimal weights, your projects should have existing issues.
- First build the
study-1.1.jar
executable usingmvn install
. - Go to the directory of your project.
- Set up the config file for MuRa.
- Call the executable
usage: MuRa
-c,--config <arg> Configuration file
-l,--label <arg> The label on GitHub for an issue that identifies a
bug
-m,--mutants <arg> PITest output directory (usually this is
/target/pit-reports)
-o,--owner <arg> The name of the owner of the repository
-r,--repo <arg> The name of the repository
-s,--submodule <arg> In case of multimodule, specify the submodule
For example, for the core module of feign, this is:
java -cp <> study.Study -c config.xml -m core/target/pit-reports/ -o OpenFeign -r feign -s core
- This will export all the mutants for each bug report to the
/export
directory. - To find the optimal weights for this specific project, execute the Python script in
/study/main.py
and pass the generatedexport
directory:
python main.py export
- The optimal weights will be printed out in the terminal. Multiple executions will be ran, so it is possible that there is no general consensus on the weights.
Important: the steps above can be repeated for an arbitrary amount of projects to find general weights. To do so, put all the exported files in one directory and pass this directory to the Python script.