

| 软件安全级别 | 定义与潜在危害程度 | 单元测试及相关验证要求 |
| A 级 (Class A) | 软件失效不可能导致任何伤害或对健康的损害。 | 豁免单元验证。仅需满足基本的软件开发规划、需求分析及软件发布流程,无需正式记录单元测试活动。 |
| B 级 (Class B) | 软件失效可能导致患者或用户的伤害,但并非严重伤害。 | 强制要求。必须建立软件架构设计,并执行部分单元验证、集成测试与系统测试,需记录测试计划与结果。 |
| C 级 (Class C) | 软件失效可能导致患者或用户的严重伤害甚至死亡。 | 极度严格。强制要求详细设计文档,必须建立详尽的单元验证程序,并在边界条件、数据控制流及故障处理方面进行深度验证。 |


事件序列与时序逻辑:确保在多线程或中断驱动的环境下,数据竞争和死锁不会发生,且事件按照预定的先后顺序触发。
数据和控制流:验证循环逻辑、条件跳转的正确性,确保不存在无法达到的死代码或导致系统挂起的无限循环。
计划的资源分配与内存管理:对于资源受限的嵌入式医疗设备,必须测试内存分配与释放逻辑,以杜绝内存泄漏及指针越界导致的系统崩溃。
故障处理机制:涵盖对错误输入的定义、故障的有效隔离以及系统的自我恢复能力。
边界条件:这是单元测试中极易诱发缺陷的盲区,需要对变量的最大值、最小值、临界点及异常值(如空指针、除以零)进行穷举测试。




| 覆盖率度量指标 | 测试深度与原理 | 医疗器械监管期望与适用场景 |
| 函数覆盖率 (Function Coverage) | 统计源代码中被调用的函数数量比例。 | 最浅显的度量,用于识别从未被调用过的无用库文件或彻底废弃的死代码,但无法证明被调用函数的内部逻辑是否正确。 |
| 语句/行覆盖率 (Statement/Line Coverage) | 计算包含可执行语句的代码行在测试中被执行的比例。 | 基础要求。适用于 IEC 62304 的基础软件(或 FDA 认为的低风险系统),旨在确保每一行代码至少被执行一次。但它无法验证 |
| 分支/判定覆盖率 (Branch/Decision Coverage) | 强制要求代码中的每一个逻辑判定节点(如 if, while, switch)都必须至少产生一次 True(真)和一次 False(假)的输出结果。 | 中高阶要求。它迫使测试用例跳出正常的“快乐路径(Happy Path)”,去触发和验证异常处理模块及条件判定漏洞。对于多数 Class B 级别软件是极具实效性的平衡指标。 |
| 修正条件/判定覆盖率 (MC/DC) | 要求证明判定语句中的每一个独立子条件都能够独立地影响整个判定的最终输出结果。通过精心设计用例,将 $N$ 个条件的穷举测试量($2^N$)极大地缩减至 $N+1$ 个。 | 高安全强制级。由于能够以最少的测试用例验证复杂布尔逻辑中的屏蔽效应和条件独立性,MC/DC 被航空 (DO-178C)、汽车 (ISO 26262 ASIL-D) 及 IEC 62304 Class C 极高风险核心算法视为最高度量的验证“黄金标准”。 |
if (HeartRate < Threshold && PatientConnected && !SystemFault)SystemFaultSystemFault

工具操作要求 (Tool Operational Requirement, TOR):该文档清晰界定了测试工具的预期设计用途、运行环境规范及其在医疗软件生命周期中所处的环节和功能边界。 工具鉴定计划 (Tool Qualification Plan, TQP):前瞻性地规划确认工具是否符合操作要求的方法论、资源分配与验收标准。 工具验证计划 (Tool Verification Plan, TVP):明确制定用于证明工具输出绝对准确的具体测试用例、自动化执行脚本以及预期行为判定规则。 工具完成摘要 (Tool Accomplishment Summary, TAS):这是整个工具确认过程的最终结案报告,它详尽总结了验证活动的执行结果、分析了所有的偏差记录,并向监管机构提供工具完全胜任当前安全审查任务的决定性证据。


顶层系统需求$\leftrightarrow$针对性识别的软件失效风险 (ISO 14971)
细化的软件需求 (SRS)$\leftrightarrow$软件架构与接口设计 (IEC 62304 5.3)
详细设计文档 (Clause 5.4)$\leftrightarrow$实现的软件单元源代码
源代码$\leftrightarrow$对应的单元测试用例规范
单元测试用例$\leftrightarrow$测试执行的时间戳、结果及未解决的异常列表
触发静态扫描:流水线首先利用预配好的规则集进行静态代码扫描,若发现任何违反 MISRA/CERT 规范的指针错误或语法缺陷,立即驳回合并请求。 自动执行单元验证:随后,流水线在无尘的虚拟化容器环境中自动构建并拉起全套单元测试用例。 覆盖率卡点与回归测试:动态覆盖率工具会实时统计分支覆盖率及 MC/DC 数据。系统只有在评估新增代码完全被测试用例覆盖,且既有的回归测试(Regression Testing)套件没有任何功能退化或断言失败时,才允许代码进入主干网络。 自动生成监管文档:集成了诸如 Ketryx 或 Jama 等合规管理平台的 CI/CD 流水线,能够直接从测试脚本的运行日志中提取结果,自动同步更新所有的需求状态,并输出格式完美的端到端可追溯性矩阵和 FDA 格式验证摘要,彻底消除了由于文档滞后造成的人为疏漏。


夜雨聆风