mcpField
Q
qe-coverage-analysis

qe-coverage-analysis

github.com/proffesor-for-testingTesting & quality51992 installsUpdated today
Repository

About qe-coverage-analysis

A coverage-analysis skill for QA teams that detects gaps, scores risk, and prioritizes tests using code criticality. It includes sublinear gap detection and differential coverage analysis for comparing changes with a base branch.

Key features

  1. 01Sublinear coverage-gap detection
  2. 02Statement, branch, and function metrics
  3. 03Risk-weighted coverage scoring
  4. 04Differential coverage analysis
  5. 05Coverage thresholds and quality gates
  6. 06Coverage reports and run history

Use cases

  1. 01Finding uncovered critical code
  2. 02Prioritizing tests by code risk
  3. 03Comparing coverage between branches
  4. 04Enforcing coverage requirements for changes

Install

Copy the command and run it in a terminal.

$npx skills add https://github.com/proffesor-for-testing/agentic-qe --skill qe-coverage-analysis

After installing, type/qe-coverage-analysisin Claude Code to confirm it loaded.

Bundled files

References and scripts installed along with SKILL.md.

run-history.json
evals/
qe-coverage-analysis.yaml
schemas/
output.json
scripts/
validate-config.json

Details

From the project README

QE Coverage Analysis

Purpose

Guide the use of v3's advanced coverage analysis capabilities including sublinear gap detection algorithms, risk-weighted coverage scoring, and intelligent test prioritization based on code criticality.

Activation

  • When analyzing test coverage
  • When identifying coverage gaps
  • When prioritizing testing effort
  • When setting coverage targets
  • When assessing code risk

Quick Start

# Analyze coverage with gap detection
aqe coverage analyze --source src/ --tests tests/

# Find high-risk uncovered code
aqe coverage gaps --risk-weighted --threshold 80

# Generate coverage report
aqe coverage report --format html --output coverage-report/

# Compare coverage between branches
aqe coverage diff --base main --head feature-branch

Agent Workflow

// Comprehensive coverage analysis
Task("Analyze coverage gaps", `
  Perform O(log n) coverage analysis on src/:
  - Calculate statement, branch, function coverage
  - Identify uncovered critical paths
  - Risk-weight gaps by code complexity and change frequency
  - Recommend tests to write for maximum coverage impact
`, "qe-coverage-specialist")

// Risk-based prioritization
Task("Prioritize coverage effort", `
  Analyze coverage gaps and prioritize by:
  - Business criticality (payment, auth, data)
  - Code complexity (cyclomatic > 10)
  - Recent bug history
  - Change frequency
  Output prioritized list of files needing tests.
`, "qe-coverage-analyzer")

Analysis Strategies

1. Sublinear Gap Detection
await coverageAnalyzer.detectGaps({
  algorithm: 'sublinear',  // O(log n) complexity
  source: 'src/**/*.ts',
  metrics: ['statement', 'branch', 'function'],
  sampling: {
    enabled: true,
    confidence: 0.95,
    maxSamples: 1000
  }
});
2. Risk-Weighted Coverage
await coverageAnalyzer.riskWeightedAnalysis({
  coverage: coverageReport,
  riskFactors: {
    complexity: { weight: 0.3, threshold: 10 },
    changeFrequency: { weight: 0.25, window: '90d' },
    bugHistory: { weight: 0.25, window: '180d' },
    criticality: { weight: 0.2, tags: ['payment', 'auth'] }
  },
  output: {
    riskScore: true,
    prioritizedGaps: true
  }
});
3. Differential Coverage
await coverageAnalyzer.diffCoverage({
  base: 'main',
  head: 'feature-branch',
  requirements: {
    newCode: 80,           // New code must have 80% coverage
    modifiedCode: 'maintain',  // Don't decrease existing
    deletedCode: 'ignore'
  }
});

Coverage Thresholds

thresholds:
  global:
    statements: 80
    branches: 75
    functions: 85
    lines: 80

  per_file:
    min_statements: 70
    critical_paths: 90

  new_code:
    statements: 85
    branches: 80

  exceptions:
    - path: "src/migrations/**"
      reason: "Database migrations"
    - path: "src/generated/**"
      reason: "Auto-generated code"

Coverage Report

interface CoverageAnalysis {
  summary: {
    statements: { covered: number; total: number; percentage: number };
    branches: { covered: number; total: number; percentage: number };
    functions: { covered: number; total: number; percentage: number };
  };
  gaps: {
    file: string;
    uncoveredLines: number[];
    uncoveredBranches: BranchInfo[];
    riskScore: number;
    suggestedTests: string[];
  }[];
  trends: {
    period: string;
    coverageChange: number;
    newGaps: number;
    closedGaps: number;
  };
  recommendations: {
    priority: 'critical' | 'high' | 'medium' | 'low';
    file: string;
    action: string;
    expectedImpact: number;
  }[];
}

Quality Gates

quality_gates:
  coverage:
    block_merge:
      - new_code_coverage < 80
      - coverage_regression > 5
      - critical_path_uncovered

    warn:
      - overall_coverage < 75
      - branch_coverage < 70

    metrics:
      - track_trends: true
      - alert_on_decline: 3  # consecutive PRs

Run History

After each coverage analysis, append results to run-history.json in this skill directory:

# Read current history, append new entry, write back
node -e "
const fs = require('fs');
const h = JSON.parse(fs.readFileSync('.claude/skills/qe-coverage-analysis/run-history.json'));
h.runs.push({date: new Date().toISOString().split('T')[0], statements_pct: STATEMENTS, branches_pct: BRANCHES, gaps_found: GAPS});
fs.writeFileSync('.claude/skills/qe-coverage-analysis/run-history.json', JSON.stringify(h, null, 2));
"

Read run-history.json before each run to detect trends (e.g., "coverage dropped 3 consecutive times").

Skill Composition

  • Coverage dropped? → Use /coverage-drop-investigator to trace the cause
  • Need more tests → Use /qe-test-generation to fill gaps
  • Validate quality → Use /mutation-testing to ensure coverage means quality
  • Ship decision → Feed into /qe-quality-assessment for deployment readiness

Gotchas

  • High line coverage does NOT mean good tests — 100% coverage with 0% assertions is common agent output. Use mutation testing to verify
  • coverage-analysis domain has 86% success rate — 14% of runs fail on initialization. Always verify results and have fallback plan (e.g. manual coverage tools)
  • Self-learning pipeline may silently stop learning (statusline frozen for days) — only human inspection catches this

Coordination

Primary Agents: qe-coverage-specialist, qe-coverage-analyzer, qe-gap-detector Coordinator: qe-coverage-coordinator Related Skills: qe-test-generation, qe-quality-assessment

Comments

Markdown supported