Now liveThe Skillselion MCP - thousands of ranked skills, loaded into your agent mid-task. No install.Get it →
bobmatnyc avatar

Test Quality Inspector

  • 9 installs
  • 145 repo stars
  • Updated July 27, 2026
  • bobmatnyc/claude-mpm

test-quality-inspector is a skill that inspects a test for semantic correctness, verifying whether it actually tests what it claims and would fail if the implementation broke.

About

This skill inspects tests for semantic correctness, verifying whether a test actually tests what it claims rather than just passing. It applies five checks (name-to-assertion alignment, meaningful assertions, mutation failure, edge case coverage, mock hygiene) and issues one of four verdicts with evidence and suggested fixes. A developer uses it when reviewing tests in a PR or when a test passes but a bug still shipped.

  • Inspects whether a test actually verifies the behavior it claims, in any language
  • Applies five checks: name-to-assertion, meaningful assertions, mutation failure, edge cases, mock hygiene
  • Produces a verdict (CORRECT, MISLEADING, INCOMPLETE, BROKEN) with evidence and concrete fixes

Test Quality Inspector by the numbers

  • 9 all-time installs (skills.sh)
  • Ranked #1,560 of 2,153 Testing & QA skills by installs in the Skillselion catalog
  • Data as of Aug 2, 2026 (Skillselion catalog sync)
At a glance

test-quality-inspector capabilities & compatibility

Capabilities
webapp testing · test quality inspector
Use cases
testing · code review
Pricing
Free
From the docs

What test-quality-inspector says it does

A passing test is not the same as a good test.
SKILL.md
Would the assertion pass even if the implementation returned garbage?
SKILL.md
Issue one of four verdicts with specific evidence.
SKILL.md
npx skills add https://github.com/bobmatnyc/claude-mpm --skill test-quality-inspector

Add your badge

Show developers this skill is listed on Skillselion. Paste this into your README.

Listed on Skillselion
Installs9
repo stars145
Last updatedJuly 27, 2026
Repositorybobmatnyc/claude-mpm

What it does

Inspect a test to verify it meaningfully tests its named behavior and would catch real bugs.

Who is it for?

Reviewing new or modified tests in a PR to confirm they have meaningful assertions and would catch real bugs.

Skip if: Writing new tests from scratch or running a test suite.

When should I use this skill?

When reviewing a test file or suite to verify it has meaningful assertions and would fail if the implementation broke.

What you get

A verdict on each test with evidence and concrete fixes for misleading, incomplete, or broken tests.

  • A verdict per test with evidence and concrete fixes

By the numbers

  • Five-step inspection process
  • Five checks and four verdicts
  • Examples in Python, JavaScript, Go, and Java

Files

SKILL.mdMarkdownGitHub ↗

Test Quality Inspector

Overview

A passing test is not the same as a good test. This skill inspects tests for semantic correctness — whether the test actually verifies the behavior it claims to verify, not just whether it runs without error.

Apply this skill to any test file or suite, in any language or framework.

When to Use

Activate when:

  • Reviewing a PR that includes new or modified tests
  • A test passes but a bug still shipped
  • Test names feel mismatched to their assertions
  • Mocks seem unusually extensive
  • Coverage numbers look good but confidence is low
  • Preparing to refactor and needing to trust the test harness

Arguments

This skill accepts optional arguments:

  • File path: path/to/test_file.py — inspect a specific file
  • Test name pattern: test_user_* — inspect tests matching the pattern
  • No args: inspect all tests in the current context or most recently discussed test

Five-Step Inspection Process

Step 1: Read the Test

Read the test file completely. Identify:

  • The test name and any docstring or description
  • What the test sets up (fixtures, mocks, data)
  • What action it performs (the "act")
  • What it asserts (the "assert")
  • What it does NOT assert

Step 2: Read the Implementation

Find and read the actual code being tested. Identify:

  • The function/method signature
  • All return values and side effects
  • Branches and edge cases in the implementation
  • What could realistically go wrong

Step 3: Apply the Five Checks

Run all five checks. See checks.md for detailed guidance.

Check 1 — Name-to-Assertion Alignment Does the test name describe what the assertions actually verify? A test named test_returns_empty_list_when_no_results that only asserts len(result) == 0 without checking the type is subtly misleading.

Check 2 — Meaningful Assertions (No Tautologies) Would the assertion pass even if the implementation returned garbage? Examples of hollow assertions:

  • assert result is not None when the function always returns an object
  • assert len(result) >= 0 (always true for lists)
  • assertTrue(True)

Check 3 — Mutation Failure Check If the implementation were deliberately broken in the most obvious way (wrong return value, off-by-one, missing branch), would this test catch it? Mentally apply one mutation at a time and ask: does the test fail?

Check 4 — Edge Case Coverage If the test name references edge cases ("when empty", "when None", "at boundary"), verify those conditions are actually set up in the arrange phase and exercised in the act phase.

Check 5 — Mock Hygiene Are mocks replacing so much real behavior that the test no longer exercises the code under test? Signs of hollow mocking:

  • The function under test is itself mocked
  • All dependencies are stubbed with hardcoded return values that match the assertion exactly
  • No real logic runs between the mock setup and the assertion

Step 4: Produce a Verdict

Issue one of four verdicts with specific evidence. See verdicts.md for verdict criteria and templates.

VerdictMeaning
CORRECTTest accurately names its behavior, assertions are meaningful, would catch real bugs
MISLEADINGTest passes but the name or description does not match what is actually asserted
INCOMPLETETest covers some of the claimed behavior but misses important assertions or edge cases
BROKENTest would not catch an obvious bug in the code it claims to test

Step 5: Suggest Fixes

For any verdict other than CORRECT, provide:

  • The specific line(s) causing the issue
  • A concrete example of how to fix it
  • If applicable, an example of a bug the current test would fail to catch

Quick Check Summary

Would this test FAIL if I:
  - Changed the return value to None?        → Check assertions
  - Removed the main branch logic?           → Check coverage
  - Swapped two arguments in the call?       → Check specificity
  - Deleted the function entirely?           → Check mock depth
  - Added a new edge case to the spec?       → Check name accuracy

Red Flags — STOP and Inspect

Stop and apply full inspection when:

  • Test has no assertions (or only assert True)
  • Every dependency is mocked
  • Assertion checks a value that the mock itself returns
  • Test name mentions a condition that doesn't appear in the arrange phase
  • Test passes with an empty implementation
  • Multiple behaviors tested in one test with a vague name

Navigation

  • [Checks Reference](references/checks.md) — Detailed guide for all five checks with examples in Python, JavaScript, Go, and Java
  • [Verdicts and Templates](references/verdicts.md) — Verdict criteria, evidence format, and report templates
  • [Mock Hygiene](references/mock-hygiene.md) — When mocking is appropriate vs. when it hollows out a test
  • [Mutation Reasoning](references/mutation-reasoning.md) — How to apply mutation-testing mindset without a mutation framework

Related Skills

  • universal-testing-test-driven-development — Write tests correctly from the start
  • universal-debugging-verification-before-completion — Verify your own work before claiming completion
  • universal-testing-testing-anti-patterns — Broader catalog of test design mistakes

Related skills

FAQ

What does the inspector check?

Five checks: name-to-assertion alignment, meaningful assertions (no tautologies), mutation failure, edge case coverage, and mock hygiene.

What verdicts can it produce?

CORRECT, MISLEADING, INCOMPLETE, or BROKEN, each with specific evidence and, for non-CORRECT verdicts, concrete fixes.

This week in AI coding

Five minutes, every Monday - the tools, releases and tactics for developers.

unsubscribe anytime.