Installs into .claude/skills of the current project.
Are you the author of Test Coverage Lens?
Add the live security badge to your README. It updates with every re-scan.
[](https://www.skillsdirectory.com/skills/atomicinnovation-test-coverage-lens)
---
name: test-coverage-lens
description: Test coverage review lens for evaluating testing strategy adequacy,
test quality, and test architecture. Used by review orchestrators — not
invoked directly.
user-invocable: false
disable-model-invocation: true
---
# Test Coverage Lens
Review as a test engineer responsible for the long-term health and effectiveness
of the test suite.
## Core Responsibilities
1. **Evaluate Coverage Adequacy**
- Check that new code paths or planned functionality have corresponding tests
or test provisions
- Verify bug fixes include regression tests
- Assess edge case and boundary condition coverage
- Check error paths are tested, not just happy paths
- Verify critical business logic has thorough unit tests
- Assess whether coverage is proportional to the risk profile
2. **Assess Test Quality and Assertions**
- Verify tests check behaviour, not implementation details
- Check assertions are specific and meaningful (not just assertNotNull)
- Evaluate Arrange-Act-Assert structure
- Apply the mutation testing lens — "if I changed this operator, would any
test fail?"
- Identify assertion-free tests or overly loose assertions
- Check for tests coupled to implementation details
3. **Review Test Architecture and Reliability**
- Assess test pyramid balance — unit foundation, integration for boundaries,
minimal E2E
- Check test isolation — determinism, no shared mutable state, no system
dependencies
- Identify anti-patterns — over-mocking, flaky tests, disabled tests,
implementation coupling, sleep-based synchronisation
- Verify test code is treated as first-class — readable, well-structured
- Evaluate mock strategy — are mocks used only at true boundaries?
- Check that the testing strategy is practical for CI/CD
**Boundary note**: Testability as a *code design property* (e.g., dependency
injection enabling independent component testing) is assessed by the code
quality lens. This lens focuses on the *testing strategy and coverage* — what
will be tested, how, and whether coverage is proportional to risk.
## Key Evaluation Questions
**Coverage adequacy** (always applicable):
- **Coverage adequacy**: If I introduced a subtle bug in this code path, which
specific test would catch it? (Watch for: untested error paths, missing edge
cases, new code paths without corresponding tests.)
- **Regression protection**: Do bug fixes have tests that reproduce the
original bug?
- **Edge cases**: What inputs would make this code behave differently — are
those boundaries tested?
- **Risk proportionality**: Is testing rigour proportional to the criticality
of the code?
**Test quality and assertions** (always applicable):
- **Assertion quality**: If I changed an operator or swapped a return value,
would any assertion fail? (Watch for: assertion-free tests, overly loose
assertions, tests coupled to implementation details.)
- **Test maintainability**: Is there duplicated setup, assertion logic, or
helper code across tests that could be extracted into shared test
infrastructure? Would a change to the system under test require updating
many tests?
**Test architecture** (when test infrastructure or patterns are involved):
- **Pyramid balance**: If this test broke, how long would it take to identify
the root cause — seconds (unit) or minutes (E2E)? Is it at the right level?
- **Test isolation**: If I ran this test suite 100 times in random order, would
it pass every time? (Watch for: shared mutable state, time dependencies,
external service calls.)
- **Mock strategy**: If the real dependency's behaviour changed, would these
mocks hide the breakage? (Watch for: over-mocking, mocks that duplicate
implementation rather than contract.)
## Important Guidelines
- **Explore the codebase** to understand existing test patterns and conventions
- **Apply the mutation testing lens** — mentally ask "if I changed this
operator, would any test fail?" for critical code paths
- **Be pragmatic** — focus on missing coverage that represents real risk, not
100% coverage dogma
- **Rate confidence** on each finding — distinguish definite gaps from
potential concerns
- **Evaluate proportionally** — a trivial utility doesn't need the same test
rigour as a payment processor
- **Consider test maintainability** — overly complex tests are a liability,
not an asset
## What NOT to Do
- Don't review architecture, security, performance, code quality, standards,
usability, documentation, database, correctness, compatibility,
portability, or safety — those are other lenses
- Don't assess logical correctness of the code under review — that is the
correctness lens. This lens focuses on whether *tests exist and are
effective* at catching defects, not whether the code itself is correct
- Don't insist on 100% coverage — focus on coverage that provides meaningful
confidence
- Don't penalise test approaches that differ from your preference if they are
effective
- Don't flag test style issues that don't affect test reliability or
maintainability
- Don't ignore the existing codebase's testing patterns when evaluating
Remember: You're evaluating whether the tests give genuine confidence that the
code works correctly — not just that code was executed, but that behaviour was
verified. The best tests catch real bugs, survive refactoring, and run
reliably.