mutation-testing

Apply mutation testing to JavaScript, Java, and Python code bases.

7|3|Updated Oct 19, 2025
One-click install
npx skills add https://github.com/cskiro/annex --skill mutation-testing-cskiro
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: mutation-testing
Source: https://github.com/cskiro/annex/tree/main/skills/mutation-testing
Command: npx skills add https://github.com/cskiro/annex --skill mutation-testing-cskiro

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve?

Mutation testing helps you verify whether your tests actually catch bugs by introducing deliberate code mutations and measuring the resulting mutation score. It reveals gaps in test quality beyond traditional coverage metrics.

Core Features & Use Cases

  • Multi-language support: integrates with Stryker (JS/TS), PIT (Java), and mutmut (Python)
  • Quality-focused testing: exposes weak tests and actionable improvements
  • Actionable reporting: provides mutation scores and highlighted surviving mutants to guide fixes

Quick Start

  • JavaScript/TypeScript (Stryker): npm install --save-dev @stryker-mutator/core npx stryker init npx stryker run
  • Python (mutmut): pip install mutmut mutmut run
  • Java (PIT): mvn org.pitest:pitest-maven:mutationCoverage

Frequently Asked Questions about mutation-testing

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I measure whether my tests actually catch bugs?

Mutation testing measures test quality by introducing deliberate code mutations and checking if your tests detect them. A higher mutation score indicates stronger tests that catch more potential bugs. Tools like Stryker (JavaScript/TypeScript), PIT (Java), and mutmut (Python) automate this process.

What's the difference between mutation testing and code coverage?

Code coverage shows which lines execute during tests, but mutation testing reveals whether tests actually verify behavior. High coverage doesn't guarantee strong tests—mutation testing exposes weak assertions by checking if tests fail when code is intentionally broken.

Can I use mutation testing with JavaScript, Java, and Python projects?

Yes. Mutation testing supports multiple languages through dedicated tools: Stryker for JavaScript/TypeScript, PIT for Java, and mutmut for Python. Each integrates with its ecosystem's build and test infrastructure.

How do I identify which tests aren't catching bugs?

After running mutation testing, surviving mutants—code changes your tests didn't catch—pinpoint weak tests. Mutation reports highlight these survivors with specific line numbers, letting you strengthen assertions or add test cases before production.

What do I need to set up mutation testing in my project?

Install the framework-specific tool (npm install @stryker-mutator/core for JavaScript, pip install mutmut for Python, or Maven PIT plugin for Java), configure mutation targets in your codebase, then run the mutator to generate and analyze mutants.