- Home
- Mutation Testing Tools
- MuJava
MuJava
What it is
MuJava is a free, open-source tool for mutation testing of Java programs. It generates altered versions of individual classes or multi-class packages, then runs JUnit tests against those versions to evaluate mutation coverage. Its object-oriented testing includes 24 class-level operators, alongside method-level operators. Tests need to be public JUnit test classes and methods containing calls to the classes under test; JUnit test suites are not supported. Equivalent mutants require manual identification, and the documentation estimates they make up 5% to 20% of generated mutants. Version 4 supports Java 1.6 features such as generics, annotations, enumerations, varargs, enhanced for-each loops, and static imports. Setup involves two JAR files, a configuration file, and Java CLASSPATH and PATH settings. The documented workflow uses Java GUI applications, and a command-line interface called muScript was released in March 2014. MuJava is available for Linux, macOS, and Windows and is provided as-is under the Apache license.
For and against
For
- Free and open source under Apache license
- Generates class-level and method-level mutants
- Evaluates mutation coverage with JUnit tests
- Supports Linux, macOS, and Windows
Against
- JUnit test suites are not supported
- Equivalent mutants need manual identification
- Setup requires Java path configuration
- Maintainers provide it as-is
The verdict
MuJava offers Java mutation testing with class-level and method-level operators, plus JUnit-based coverage evaluation. Its manual equivalent-mutant review and setup requirements are important considerations.
Who it suits
MuJava suits students and researchers working on Java mutation testing with JUnit. It can test individual classes or packages containing multiple classes.
Plans and prices
µJava
Open source under Apache license · provided as-is
Read 8 Oct 2026 · albany.edu
On the record
- CLI
- A command-line interface called muScript was released in March 2014.albany.edu · read 8 Oct 2026
- Command line
- A command line interface called muScript was released in March 2014.albany.edu · read 8 Oct 2026
- Coverage
- After generating mutants, µJava runs tests and evaluates their mutation coverage.albany.edu · read 8 Oct 2026
- Eclipse
- The maker page says an Eclipse plugin version was created by Laurie Williams and Ben Smith of NC State in 2007.albany.edu · read 8 Oct 2026
- Equivalent mutants
- Equivalent mutants must be identified by hand, and the documentation says 5% to 20% of mutants are typically equivalent.albany.edu · read 8 Oct 2026
- Installation
- The documented setup uses two JAR files and a configuration file, and requires configuring Java CLASSPATH and PATH.albany.edu · read 8 Oct 2026
- Intended users
- The maker describes MuJava as a service to the community and says it has been used by students and researchers.albany.edu · read 8 Oct 2026
- Interface
- The documented workflow uses Java GUI applications to generate and run mutants.albany.edu · read 8 Oct 2026
- Java compatibility
- Version 4 supports JUnit tests and Java 1.6 language features, including generics, annotations, enumerations, varargs, enhanced for-each loops, and static imports.albany.edu · read 8 Oct 2026
- Language support
- Version 4 supports Java 1.6 language features including generics, annotations, enumerations, varargs, enhanced for-each loops, and static imports.albany.edu · read 8 Oct 2026
- License
- The project was released as open source under the Apache license in April 2015.albany.edu · read 8 Oct 2026
- Mutation operators
- It creates object-oriented mutants using 24 class-level operators and also supports method-level operators.albany.edu · read 8 Oct 2026
- Purpose
- MuJava automatically generates mutants for Java programs for traditional method-level and class-level mutation testing.albany.edu · read 8 Oct 2026
- Support
- The maintainers offer MuJava as-is and do not guarantee question answering, fault fixing, or improvements.albany.edu · read 8 Oct 2026
- Test evaluation
- MuJava runs tests against generated mutants and evaluates mutation coverage.albany.edu · read 8 Oct 2026
- Test framework
- Tests are provided as JUnit test classes containing methods that call the class under test; JUnit test suites are not supported.albany.edu · read 8 Oct 2026
- Test integration
- Tests are written as JUnit test cases containing sequences of method calls to the classes under test.albany.edu · read 8 Oct 2026
- Test limitation
- JUnit test suites are not supported; test sets must be JUnit test cases with public test classes and methods.albany.edu · read 8 Oct 2026