Skip to content
SPECIFICTION
Get listed

PIT

pitest.org

WindowsmacOSLinuxSelf-hosted
Visit pitest.org
Spec score 7.0 #20 of 25 in Mutation Testing Tools

What it is

PIT is a free mutation-testing tool for Java and JVM bytecode projects. It measures whether unit tests detect faults by running them against modified versions of application code. Configurable bytecode mutations can remove method calls, invert logic, or change return values. PIT selects and prioritizes tests using line coverage, execution speed, and naming conventions, then reports mutation coverage alongside line coverage. It can run from the command line, Ant, or Maven; third-party integrations are listed for Gradle, Eclipse, and IntelliJ. Java is supported directly, and Kotlin use is available through the ArcMutate plugin. PIT supports JUnit 3, JUnit 4, and TestNG; JUnit 5 needs a plugin. Versions 1.4.0 and later require Java 8 or above and JUnit or TestNG on the classpath. Mutation runs can take a long time depending on codebase size and test-suite speed, so PIT recommends focusing on changed code. It mutates bytecode and requires line numbers and source file names in that bytecode.

Spec sheet

Purpose
PIT runs unit tests against automatically modified versions of application code to measure whether tests detect faults.Read 30 Sep 2026 · pitest.org
Support
PIT directs users to its Google Group for support questions.Read 30 Sep 2026 · pitest.org
Maker
The About page identifies Henry Coles, a software developer based in Edinburgh, as the principal author and says PIT has also received contributions from others.Read 30 Sep 2026 · pitest.org
Build integrations
PIT can be launched from the command line, Ant, or Maven, with third-party integrations for Gradle, Eclipse, and IntelliJ.Read 30 Sep 2026 · pitest.org
Bytecode requirement
PIT requires line numbers and source file names in bytecode and mutates bytecode rather than compiling source code.Read 30 Sep 2026 · pitest.org
Distribution
PIT releases are available through GitHub and its binaries are available on Maven Central.Read 30 Sep 2026 · pitest.org
IDE integrations
The PIT site lists third-party Eclipse and IntelliJ plugins and says PIT can also be launched from most other IDEs as a Java application.Read 30 Sep 2026 · pitest.org
JUnit 5 limit
JUnit 5 is not supported out of the box, though the FAQ links to a plugin for it.Read 30 Sep 2026 · pitest.org
Language coverage
PIT is designed for Java and the JVM; Kotlin support is provided through an ArcMutate plugin.Read 30 Sep 2026 · pitest.org
Language support
The FAQ lists Java as supported and says Kotlin support is available through an ArcMutate plugin.Read 30 Sep 2026 · pitest.org
Mocking frameworks
PIT says it is tested with major mocking frameworks and lists JMock, EasyMock, Mockito, PowerMock, and JMockit as working with it.Read 30 Sep 2026 · pitest.org
Mutation coverage
PIT reports mutation coverage alongside line coverage, and describes mutation testing as a way to assess whether executed code is meaningfully tested.Read 30 Sep 2026 · pitest.org
Mutation handling
PIT keeps generated mutations in memory and does not write them to disk unless its EXPORT feature is explicitly enabled.Read 30 Sep 2026 · pitest.org
Mutation operators
PIT applies configurable bytecode mutations, including removing method calls, inverting logic, and altering return values.Read 30 Sep 2026 · pitest.org
Reports
PIT produces reports combining line coverage and mutation coverage information.Read 30 Sep 2026 · pitest.org
Requirements
The FAQ says PIT 1.4.0 and later requires Java 8 or above and either JUnit or TestNG on the classpath.Read 30 Sep 2026 · pitest.org
Runtime limitation
Mutation testing can take a long time depending on codebase size and test suite speed; PIT recommends focusing analysis on changed code.Read 30 Sep 2026 · pitest.org
Security and compliance
The PIT pages reviewed do not state security certifications or compliance attestations.Read 30 Sep 2026 · pitest.org
Security and privacy
PIT’s FAQ says generated mutations are held in memory and not written to disk unless its EXPORT feature is explicitly enabled; the site privacy page says it uses Google Analytics cookies and log files.Read 30 Sep 2026 · pitest.org
Test selection
PIT uses line coverage, test execution speed, and test naming conventions to select and prioritize tests for mutations.Read 30 Sep 2026 · pitest.org

Strong points and limits

Strong points

  • Reports mutation coverage alongside line coverage
  • Selects tests using coverage, speed, and naming
  • Runs from command line, Ant, or Maven
  • Supports parallel execution and incremental analysis

Limits

  • JUnit 5 requires a plugin
  • Mutation runs can take a long time
  • Bytecode needs line numbers and source file names

Who it suits

PIT suits Java and JVM developers who want to assess whether their tests catch faults, including teams that can focus mutation analysis on changed code. Kotlin users can use it through the ArcMutate plugin.

Verdict

PIT provides mutation coverage for Java and JVM bytecode projects, with several launch options and test-selection criteria. Account for its runtime demands and JUnit 5 plugin requirement when planning its use.

Where Specifiction places it

Alternatives to PITAll alternatives →