The Major Mutation Framework

Easy and scalable mutation analysis for Java!

(version 2.0.0)


Download latest version

Overview

Major is an efficient and flexible mutation analysis framework that supports:

  1. generating and embedding mutants during compilation;

  2. exporting source-code mutants;

  3. suppressing equivalent mutants;

  4. computing the mutant-detection rate and the set of live mutants for a given a set of tests;

  5. computing a complete mutant-test detection matrix for a given set of tests.

The Major mutation framework provides three main components:

  1. Mutator: a mutator plugin for the javac Java compiler.

  2. Mml: a DSL for customizing mutant generation.

  3. Analyzer: a test runner that efficiently determines live mutants, the mutant-detection ratio, or a full mutant-test matrix.

Installation

The installation is simple — all you need is included in the Major release package!

Getting started

Verify that you are using a Java-8 compiler by running javac -version.

The example directory provides two examples for how to use Major to perform mutation analysis:

Execute runAll.sh within the example directory to run all examples or run.sh in a subdirectory for a particular example.