How to use (for SICStus replace swipl with sicstus -l)

:- use_module(mutation_testing). // type it at the very top
(directly after :- module(yourmodule, [args]).)
of your module under test

$ swipl yourmodule.pl

?- mutation_testing:mutation_test.

Interface

Provided predicates within the framework are mutation_test/0, mutation_test/1 and mutation_test/2.

mutation_test(+Modules, +Depth).

Modules is a list of modules under test. By using the empty list [] all loaded modules, except for internal Prolog
libraries, will be mutated and tested.
Depth is either an atom (basic, deep, experimental) which dictates the amount and kind of mutations or a list with
explicit mutations.

mutation_test(+Input).

If input is one atom of basic, deep or experimental, mutation_test([], Input) is being called. Otherwise, mutation_test(Input, basic) is being called where Input contains the modules to be tested.

mutation_test.

Calls mutation_test([], basic) using mutations which we evaluated to be sensible in most cases (i.e., the mutations change the program's semantics/output).