To run the mutation test:
- Create the mutation files using Major in the right location (described below):
MAJOR_HOME/bin/javac -J-Dmajor.export.directory="SOURCE mutants" -J-Dmajor.export.mutants=true -XMutator:ALL -cp "wlp/tests" wlp/Tests/$SOURCE.java
- Edit settings.hs to specify the post-condition and test file
- Run the main function (this can be done using ghci)
- The results will be stored in wlp/Results, overwriting any existing results file that uses the same parameters (the analysis is static, so the results should be the same in this case anyway)
To run the false positive test:
- Edit settings.hs to specify the post-condition
- Run the testFalsePositives function (this can be done using ghci)
- The results will be stored in wlp/Results
Folder structure:
The folder generated by Major must be in the same folder as the wlp folder, and must be named "SOURCE mutants" (where SOURCE is the name of the test class) A path to a mutant (the 5th mutant in this example) looks like this: "SOURCE mutants/5/classPath/SOURCE.java" Because of this, to analyse a new test class the classPath function in Settings.hs has to be extended with the corresponding class path
Dependency
- language-java Haskell package