# Test Coverage Lens

> Test coverage review lens for evaluating testing strategy adequacy, test quality, and test architecture. Used by review orchestrators — not invoked directly.

- Skill: `atomicinnovation/test-coverage-lens` (Agent Skill)
- Install (CLI): `npx skillmds@latest add atomicinnovation/test-coverage-lens`
- Raw SKILL.md: https://api.skillmd.com/api/skills/atomicinnovation/test-coverage-lens/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Coding & Dev Tools
- Author: atomicinnovation (https://skillmd.com/u/atomicinnovation)
- Updated: 2026-09-17
- Page: https://skillmd.com/skills/atomicinnovation/test-coverage-lens

---


# 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.

