Measure and enforce coverage appropriate to safety class: statement/branch and MC/DC where applicable, with documented exclusions.
When to Apply
Unit and integration testing phases; before releases.
After significant code changes affecting control logic.
Requirements (testable)
Metrics: Collect statement and branch coverage; for Class C control logic, pursue MC/DC where feasible (informative practice; not a separate normative requirement in IEC 62304:2006). Rationale: evidence of test thoroughness.
Targets by Class: Define minimums (e.g., Class A: stmt≥80%, branch≥70; Class B: stmt≥90%, branch≥80; Class C: stmt≥95%, branch≥90, MC/DC for safety logic). Rationale: risk-based rigor.
Exclusions: Document and justify any excluded code (e.g., defensive assertions, unreachable hardware stubs); peer review exclusions. Rationale: transparency.
Tooling: Use consistent coverage tools; ensure build flags don’t alter behavior materially; keep artifacts. Rationale: reproducibility.
Gating: Block merges/releases when coverage regresses beyond thresholds without approved justification. Rationale: maintain bar.
Recommended Practices
Separate coverage runs for unit vs integration if needed; merge reports.
Include tests for error paths to improve branch coverage.
Periodically review high-risk modules for MC/DC attempts even if tooling is limited.
Patterns
Coverage thresholds (example policy):
Class B min: stmt 90%, branch 80%; MC/DC encouraged for control logic
Exclude rationale entry:
# REQ-COV-EXCL-01
file: src/assert.c
region: fatal_halt()
reason: Safety halt path; not reachable in normal test. Verified by inspection.
approved_by: safety_reviewer
Anti-Patterns (risks)
Counting coverage with tests that do not assert outcomes -> risk: false confidence.
Large unreviewed exclusion lists -> risk: untested critical logic.
Using coverage flags that change optimization/behavior in unsafe ways -> risk: mismatch to production.
Verification Checklist
Coverage collected (stmt/branch; MC/DC where applicable) with defined thresholds by class.
Exclusions documented, reviewed, and minimal.
Coverage reports stored as artifacts; reproducible runs.
Coverage gating enforced; regressions blocked or justified/approved.
Error/edge paths tested to support branch/MC/DC.
Traceability
REQ-COV-### linked to coverage policy and reports per release; map safety-critical modules to MC/DC efforts.
References
IEC 62304:2006+A1:2015, 5.5 (unit verification); Annex A Table A.1 (informative class tailoring).
DO-178C MC/DC concepts (informative; not required by IEC 62304:2006).
1.1.0 (2026-05-21): Clarified MC/DC as informative; linked 5.5 and class tailoring.
1.0.0 (2026-01-04): Initial coverage skill with class-based thresholds and exclusion governance.
Audit History
2026-01-04: Audit performed. Verified:
MC/DC concepts correctly referenced from DO-178C as informative
Coverage thresholds by safety class are reasonable guidelines
gcov/lcov and llvm-cov tool references are accurate
1---2name: code-coverage3description: Code Coverage Analysis4---56# Code Coverage Analysis78## Purpose9Measure and enforce coverage appropriate to safety class: statement/branch and MC/DC where applicable, with documented exclusions.1011## When to Apply12- Unit and integration testing phases; before releases.13- After significant code changes affecting control logic.1415## Requirements (testable)161. Metrics: Collect statement and branch coverage; for Class C control logic, pursue MC/DC where feasible (informative practice; not a separate normative requirement in IEC 62304:2006). Rationale: evidence of test thoroughness.172. Targets by Class: Define minimums (e.g., Class A: stmt≥80%, branch≥70; Class B: stmt≥90%, branch≥80; Class C: stmt≥95%, branch≥90, MC/DC for safety logic). Rationale: risk-based rigor.183. Exclusions: Document and justify any excluded code (e.g., defensive assertions, unreachable hardware stubs); peer review exclusions. Rationale: transparency.194. Tooling: Use consistent coverage tools; ensure build flags don’t alter behavior materially; keep artifacts. Rationale: reproducibility.205. Gating: Block merges/releases when coverage regresses beyond thresholds without approved justification. Rationale: maintain bar.2122## Recommended Practices23- Separate coverage runs for unit vs integration if needed; merge reports.24- Include tests for error paths to improve branch coverage.25- Periodically review high-risk modules for MC/DC attempts even if tooling is limited.2627## Patterns28Coverage thresholds (example policy):29```text30Class B min: stmt 90%, branch 80%; MC/DC encouraged for control logic31```3233Exclude rationale entry:34```yaml35# REQ-COV-EXCL-0136file: src/assert.c37region: fatal_halt()38reason: Safety halt path; not reachable in normal test. Verified by inspection.39approved_by: safety_reviewer40```4142## Anti-Patterns (risks)43- Counting coverage with tests that do not assert outcomes -> risk: false confidence.44- Large unreviewed exclusion lists -> risk: untested critical logic.45- Using coverage flags that change optimization/behavior in unsafe ways -> risk: mismatch to production.4647## Verification Checklist48- [ ] Coverage collected (stmt/branch; MC/DC where applicable) with defined thresholds by class.49- [ ] Exclusions documented, reviewed, and minimal.50- [ ] Coverage reports stored as artifacts; reproducible runs.51- [ ] Coverage gating enforced; regressions blocked or justified/approved.52- [ ] Error/edge paths tested to support branch/MC/DC.5354## Traceability55- `REQ-COV-###` linked to coverage policy and reports per release; map safety-critical modules to MC/DC efforts.5657## References58- IEC 62304:2006+A1:2015, 5.5 (unit verification); Annex A Table A.1 (informative class tailoring).59- DO-178C MC/DC concepts (informative; not required by IEC 62304:2006).60- `TEST-UNIT`.61- Tool docs (gcov/lcov, llvm-cov, commercial MC/DC tools).6263## Changelog64- 1.1.0 (2026-05-21): Clarified MC/DC as informative; linked 5.5 and class tailoring.65- 1.0.0 (2026-01-04): Initial coverage skill with class-based thresholds and exclusion governance.6667## Audit History68- **2026-01-04**: Audit performed. Verified:69 - MC/DC concepts correctly referenced from DO-178C as informative70 - Coverage thresholds by safety class are reasonable guidelines71 - gcov/lcov and llvm-cov tool references are accurate
Run npx skillmds@latest add aminalam/code-coverage in your terminal (requires Node.js), paste this page's agent-chat prompt into Claude, Cursor, or any MCP-connected agent, or download the SKILL.md file and copy it into your agent's skills directory.
Code Coverage Analysis It is listed under Coding & Dev Tools on SkillMD.
This skill has not completed SkillMD's automated safety review yet. SkillMD never runs a skill's scripts for you; review the SKILL.md before installing.
This skill is tagged as working with Claude Code, Claude.ai, OpenAI Codex. SKILL.md is an open format, so most agents that read a skills directory can load it too.
Yes. Installing skills from SkillMD is free, and the skill stays under its author's original license.
AminAlam (@aminalam) published this skill. Their other Agent Skills are listed on their SkillMD profile.