This site contains the replication package for the paper Fuzzing Class Specifications submitted to ICSE 2022.
Download the artifact from this link.
Uncompress the downloaded file specfuzzer-rep-package.tar.gz, and run the following commands:
$ cd specfuzzer-rep-package
$ docker build -t specfuzzer .
$ docker run -it -v specfuzzer-tools:/tools -v specfuzzer-exp:/specfuzzer/experiments specfuzzer
NOTE: You will need to edit the Docker configuration to increase the memory to at least 8 GB.
These commands will build and run a docker image containing SpecFuzzer and the other tools. Tools configurations and executions results are persisted in docker volumes. Inside the container, run the following command to finish the setup.
$ ./setup.sh
Now you should be able to run SpecFuzzer with one of the motivating examples:
$ cd specfuzzer
$ ./experiments/setup.sh DataStructuresList_insert DataStructures.List insert
$ ./experiments/run-specfuzzer.sh DataStructuresList_insert DataStructures.List insert
The first script will perform the setup, which involves generating a test suite exercising the methods of the target class (List in this case) and creating mutants for that class. The second script is that executes SpecFuzzer. The script performs 10 executions and will store the resulting files in the folder specfuzzer/experiments. The files with suffix "buckets.assertions" are the ones that contains the final assertions of our tool.
Reproduce the experiments of our paper following the instructions on page Experiments .
Also, in the page Ground Truth you can find the list of all the ground truth properties that were part of our experiments.