Test Coverage
This skill should be used when the user asks to "analyze test coverage", "find untested code", "check coverage gaps", "improve test coverage", "identify missing tests", "measure code coverage", "test quality analysis", or mentions testing strategies and coverage metrics.
What this skill does
# Test Coverage Analysis
Comprehensive test coverage analysis skill for measuring coverage, identifying gaps, and improving test quality.
## Core Capabilities
### Coverage Measurement
Calculate and report code coverage metrics:
**Line Coverage:**
- Percentage of lines executed by tests
- Target: > 80%
- Critical code paths: > 95%
**Branch Coverage:**
- Percentage of branches (if/else) tested
- Target: > 70%
- Catches edge cases line coverage misses
**Function Coverage:**
- Percentage of functions called by tests
- Target: > 90%
- Quick indicator of test breadth
**Running coverage:**
```bash
# Python with pytest-cov
pytest --cov=src --cov-report=html --cov-report=term-missing
# Python with coverage.py
coverage run -m pytest
coverage report -m
coverage html
# JavaScript with Jest
jest --coverage
```
### Gap Identification
Find untested code areas:
**Completely Untested Files:**
- Files with 0% coverage
- Often forgotten modules
- Priority: New features, critical paths
**Partially Tested Functions:**
- Functions with some but not all branches tested
- Missing edge cases
- Error handling paths
**Untested Code Patterns:**
```bash
# Show lines not covered
coverage report --show-missing
# List files below threshold
coverage report --fail-under=80
# JSON report for parsing
coverage json -o coverage.json
```
### Test Quality Assessment
Evaluate test effectiveness beyond coverage:
**Test-to-Code Ratio:**
- Lines of test / Lines of source
- Target: 1:1 to 2:1
- Low ratio may indicate insufficient testing
**Assertion Density:**
- Assertions per test function
- Target: > 1 per test
- Single assertion per concept (ideally)
**Test Independence:**
- Tests should not depend on each other
- No shared mutable state
- Proper setup/teardown
**Test Clarity:**
- Descriptive test names
- Clear arrange/act/assert structure
- Documented test purpose
## Coverage Analysis Workflow
### Full Coverage Analysis
1. **Run test suite**: Execute all tests with coverage
2. **Generate reports**: Create HTML and terminal reports
3. **Identify gaps**: Find untested files and lines
4. **Prioritize**: Rank gaps by risk and importance
5. **Recommend tests**: Suggest specific tests to add
### Quick Coverage Check
For rapid assessment:
1. Run coverage on changed files only
2. Compare to baseline coverage
3. Flag regressions
4. Report delta coverage
## Coverage Report Format
### Summary Report
```
Coverage Summary
================
Total Coverage: 78.5%
Target: 80.0%
Status: BELOW TARGET
By Component:
┌────────────────┬──────────┬────────┬─────────┐
│ Component │ Lines │ Missed │ Coverage│
├────────────────┼──────────┼────────┼─────────┤
│ api/ │ 450 │ 45 │ 90% │
│ services/ │ 820 │ 180 │ 78% │
│ repositories/ │ 320 │ 96 │ 70% │
│ utils/ │ 150 │ 60 │ 60% │
└────────────────┴──────────┴────────┴─────────┘
```
### Gap Analysis
```
Critical Gaps (Priority: High)
==============================
1. services/payment.py (45% coverage)
- process_payment(): Lines 45-78 untested
- refund_transaction(): Completely untested
- Error handling: 0% coverage
2. repositories/user_repo.py (62% coverage)
- delete_user(): Untested
- bulk_update(): Partial coverage
```
### Test Recommendations
```
Recommended Tests
=================
1. test_payment_processing.py
- test_successful_payment()
- test_payment_insufficient_funds()
- test_payment_network_error()
- test_refund_full_amount()
- test_refund_partial_amount()
2. test_user_repository.py
- test_delete_user_success()
- test_delete_user_not_found()
- test_bulk_update_all_fields()
- test_bulk_update_partial()
```
## Test Types and Strategies
### Unit Tests
**Coverage focus:**
- Individual functions/methods
- Edge cases and boundaries
- Error conditions
**Best practices:**
- Fast execution (< 100ms each)
- No external dependencies
- Use mocks/stubs for isolation
### Integration Tests
**Coverage focus:**
- Component interactions
- Database operations
- API endpoints
**Best practices:**
- Test real integrations
- Use test databases/containers
- Clean up after tests
### End-to-End Tests
**Coverage focus:**
- User workflows
- Critical paths
- System behavior
**Best practices:**
- Selective coverage (key flows)
- Realistic test data
- Stable test environment
## Coverage Configuration
### Python (pytest-cov)
```ini
# pytest.ini or pyproject.toml
[tool.pytest.ini_options]
addopts = "--cov=src --cov-report=term-missing --cov-fail-under=80"
[tool.coverage.run]
branch = true
source = ["src"]
omit = ["tests/*", "*/__pycache__/*"]
[tool.coverage.report]
exclude_lines = [
"pragma: no cover",
"if TYPE_CHECKING:",
"raise NotImplementedError",
]
```
### JavaScript (Jest)
```json
{
"jest": {
"collectCoverage": true,
"coverageThreshold": {
"global": {
"branches": 70,
"functions": 80,
"lines": 80,
"statements": 80
}
},
"coveragePathIgnorePatterns": [
"/node_modules/",
"/tests/"
]
}
}
```
## Prioritization Framework
### Critical (Must Test)
- Payment/financial operations
- Authentication/authorization
- Data validation
- Security-sensitive code
- Core business logic
### Important (Should Test)
- User-facing features
- Data transformations
- External integrations
- Error handling paths
### Lower Priority
- Utility functions
- Configuration loading
- Logging code
- Debug/development code
## Common Coverage Issues
### False Sense of Security
**Problem:** High coverage but weak tests
**Solution:** Review assertion quality, test mutations
### Coverage Gaming
**Problem:** Tests that touch code without verifying behavior
**Solution:** Require meaningful assertions, code review
### Untestable Code
**Problem:** Code that's difficult to test
**Solution:** Refactor for testability, dependency injection
## Integration
Coordinate with other skills:
- **code-quality skill**: For test code quality
- **refactoring skill**: For improving testability
- **security-scanning skill**: For security test coverage
Related in Code Review
gstack
IncludedFast headless browser for QA testing and site dogfooding. Navigate pages, interact with elements, verify state, diff before/after, take annotated screenshots, test responsive layouts, forms, uploads, dialogs, and capture bug evidence. Use when asked to open or test a site, verify a deployment, dogfood a user flow, or file a bug with screenshots. (gstack)
startup-due-diligence
IncludedLegal due diligence review for seed-stage and Series A startups (US, Delaware C-Corp focus). Supports both investor and founder perspectives. Capabilities include: (1) Interactive document review and issue spotting; (2) Document request list generation; (3) Cap table and SAFE/convertible note analysis; (4) Red flag identification with severity ratings; (5) Diligence report generation. TRIGGERS: due diligence, DD, startup investment, cap table review, Series A, seed round, investor diligence, legal review startup, SAFE analysis, convertible note, 409A, founder vesting.
interview-master
IncludedThis skill should be used when the user asks to "generate interview questions", "prepare for interview", "optimize resume", "conduct mock interview", "analyze git commits for resume", "generate resume from code", "review my resume", or mentions interview preparation, career assistance, or extracting project experience from git history. Provides comprehensive interview and career development guidance for both job seekers and interviewers.
fix-issue
IncludedFixes GitHub issues using parallel analysis agents for root cause investigation, code exploration, and regression detection. Reads issue context from gh CLI, searches codebase and memory for related patterns, generates a fix with tests, and links the resolution back to the issue via PR. Includes prevention analysis to avoid recurrence. Use when debugging errors, resolving regressions, fixing bugs, or triaging issues.
sf-apex
IncludedGenerates and reviews Salesforce Apex code with 150-point scoring. TRIGGER when: user writes, reviews, or fixes Apex classes, triggers, test classes, batch/queueable/schedulable jobs, or touches .cls/.trigger files. DO NOT TRIGGER when: LWC JavaScript (use sf-lwc), Flow XML (use sf-flow), SOQL-only queries (use sf-soql), or non-Salesforce code.
swift-development
IncludedComprehensive Swift development for building, testing, and deploying iOS/macOS applications. Use when Claude needs to: (1) Build Swift packages or Xcode projects from command line, (2) Run tests with XCTest or Swift Testing framework, (3) Manage iOS simulators with simctl, (4) Handle code signing, provisioning profiles, and app distribution, (5) Format or lint Swift code with SwiftFormat/SwiftLint, (6) Work with Swift Package Manager (SPM), (7) Implement Swift 6 concurrency patterns (async/await, actors, Sendable), (8) Create SwiftUI views with MVVM architecture, (9) Set up Core Data or SwiftData persistence, or any other Swift/iOS/macOS development tasks.