医疗器械软件标准及测试
本文作者为任海萍女士(拥有博士学位)以及国家食品药品监督管理局中检所医疗器械质量监督检验中心的研究人员;奚廷斐先生(担任研究员一职并拥有指导博士研究生资格),是中国生物医学工程学会常务理事以及生物材料分会主任委员;汤京龙先生是助理研究员;王硕与王建宇两位实习研究员;陆颂芳女士(担任主任技师一职)。
关键词: 医疗器械 软件标准 测试
一 概述
伴随着计算机技术的进步
自2003年起 我国国家食品药品监督管理局 将相关软件纳入了医疗器械管理
由于我国目前医疗器械管理的技术基础主要是产品的第三方测试
因此 软件测试是否充分、有效 直接影响到 software product quality 也关系到 是否能对其 software 进行有效的监管
但是 由于 software product 的特殊性 我国至今尚未制定相关的 national 和 industry standards for software testing in medical devices
本文通过对美国FDA的医疗器械软件管理、软件工程以及软件测试情况的介绍
希望能为我国加强医疗器械软件的管理、尽快制定技术标准 提供参考
二 软件的特殊性
美国FDA将...作为医疗器械组件、部件或附件的 software 产品范围内的内容包括:其中一些也是专门用于制造医疗器械的 software (如模拟血管系统的重构程序)。此外,在制造过程中使用的 software 包括用于控制加工过程的各种逻辑程序。最后,在质量控制系统中使用的 software 和管理程序包括用于记录设备历史使用信息的各种管理程序。
软件与硬件的本质特性存在显著差异。一个显著的区别在于几乎所有软件缺陷均源于软件开发过程中的错误。软件错误的本质特征表现为系统性而非偶然性。一旦安装完成,则系统已预先整合了所有可能导致系统崩溃的潜在问题。通常被归类为设计缺陷而非生产上的失误。
在功能特性上,软件与硬件之间存在显著差异中的主要一点是软件所具有的高度复杂性。当输入参数发生变化时(即执行路径随之变化),即使针对看似简单的程序而言,在穷尽所有可能运行路径的情况下仍难以确保无误。这也就意味着,在多数情况下我们无法确切断定该软件是否存在任何错误。由此可见,在评估软件质量时仅依赖测试手段是远远不够全面的。
从功能上讲, 软件与硬件的第三个区别体现在其高度的可变性. 在开发周期后期阶段时, 对软件进行修改变得更加便捷. 这种额外的灵活性使得开发者能够更有效地应对硬件需求以及开发过程中可能出现的各种问题. 尽管对软件进行调整通常较为简单, 在某些情况下人们可能会误认为某些改动会导致系统故障. 实际上, 在修改最初的软体版本后所导致的问题会导致系统故障的情况约占所有改动案例的大约80%.
尽管软件组成为其有一定的规范性和可替代性(不像硬件组那样具有明确的标准和可供替代的产品),但在其构建过程中,则通常由开发者采用特定的单元开发工具和技术。通过目标定项方法与现有软件单元的有效结合,则有助于提升软件开发效率并降低成本。然而,在集成阶段要格外谨慎,在集成前需详细规划并扩展可重复应用代码库,并深入理解现有单元的功能。
因此
三 软件管理和标准
FDA采用"评估级别"来评估医疗设备潜在风险、系统缺陷以及医疗器械软件可能导致患者或操作人员发生致命、严重伤害的风险程度。若软件导致设备操作可能造成患者及/或其他操作者发生致命事故或严重伤害;或者因软硬件故障及信息滞后导致上述后果,则评估级别定为高级别。若软硬件故障可能导致患者及/或其他操作者发生轻微损伤;或者因故障及信息滞后导致上述后果,则评估级别定为中等级别。若设备运行出现故障不会导致患者及操作人员受伤,则评估级别定为低级别。在产品上市前实施的各项测试程序与其评估级别相匹配地进行管理与控制。
如果在生产过程中能够证明某种医疗器械的软件采用了先进的软件工程实现流程,则对于该医疗器械的上市前审查可以聚焦于与其相关的风险及其有效的风险管理方法。FDA对软件开发过程不负责,在这种情况下无需对其开发流程进行额外审查。因此,在 FDA 的标准下,上市前审查变得更加高效且具有更高的一致性。
软件标准规定了软件工程各组成部分需要进行详细说明和规范说明。

表1记录了FDA软件标准技术小组对各类软件标准的详细解读。其中目前较为熟悉的是IEC于1996年5月发布的《IEC 60601-1-4:可编程医用电气设备并行标准》这一规范性文件。该规范要求生产商遵循某过程进行操作该过程涵盖风险评估及开发流程并要求生产商建立相应的记录以支持基于可编程电子子系统的医用电气设备的安全性声明。该规范作为医疗设备风险管理的重要工具确实具有较高的适用价值但值得指出的是尽管该规范主要关注于产品设计阶段的风险管理并未涉及软件维护及报废的相关内容同时它也没有对软件规划问题作出详细阐述因此在应用过程中可能会出现某些不足
四 软件的测试
在软件全生命周期阶段实施检测,在其开发、运行及维护各个阶段均需关注质量保障工作;其中应用较为广泛的检测手段则是V型方法;必须明确的是,并无单一具体的检验模式或检验手段能够确保针对特定软件实现完全有效的验证;仅凭对所有功能项的检测,并不能断定系统已达到整体运行的有效性;即便覆盖了全部代码的功能清单,并不等于实现了系统的所有必要功能;通常情况下,则可将软件检测划分为白盒检验、黑盒检验以及灰盒检验三种类型
基于解码的分析方法构成的白盒测试方案也被称为结构分析技术。其参数主要来源于源代码信息、设计文档以及相关的参考资料。通常分为静态分析和动态运行两类。静态分析阶段通常不涉及实际运行软件的过程而侧重于对程序语法结构与编码规范进行评估;而动态运行阶段则通过执行程序来观察其行为特征并结合预先设计的测试用例来识别潜在的问题点。在静态分析中主要包含代码审查 Static Check 语法规则验证语法完整性以及执行路径模拟等内容而在动态阶段则通过功能验证与接口检查来确认系统功能的一致性并结合覆盖度评估软件运行情况同时关注系统的响应速度与资源占用情况此外内存管理问题也是动态阶段的重要考察点
黑盒测试是一种预先计划并规定的系统化方法,在计算机科学领域中被广泛采用作为功能性验证的一种重要手段;它主要涉及运用整个软件系统或其各个功能模块来进行精确而系统的验证;这种方法的关键在于无需深入探究程序的具体实现细节;操作人员可以通过输入特定的数据集并观察输出结果来理解系统的运行机制;其核心参数设置通常基于预先规划好的目标与预期效果;目前市场上的主流自动化测试工具主要包括TeamTest、Robot、QACenter、WebLoad与WebStress等
灰盒测试与黑盒测试类似,并且也是通过用户的界面来进行测试。然而,在进行相关软件开发时,通常会对软件架构和功能模块有深入的理解。即使只是阅读了一些核心源代码文件,并且了解了一些基本的设计原则,在实际操作中仍然能够运用这些知识来进行相应的验证工作。因此,在了解这些信息后,能够有针对性地执行特定条件或功能相关的测试工作。
虽然无法完全证明软件无误, 但第三方测试仍为其提供了一个较为全面地评估质量的有效工具. 通常情况下, 生产商出于隐私保护或商业机密考虑, 并不会公开提供源代码. 因此, 第三方测试多采用黑盒测试作为主要手段.
ISO/IEC 12119-1994(相当于GB/T 17554-1998《信息技术 软件包 质量要求与测试》)列出了对软件包的质量要求,并详细制定了相关的测试规范与操作程序。特别强调了第三方测试的重要性。由于我国目前对医疗器械软件的管理仍依赖于第三方测试这一做法,并且缺乏专门针对该类软件的统一性测试规范;因此使得GB/T 17554成为当前大多数医疗器械注册产品所采用的技术标准
GB/T 17554明确了软件质量规范性的基本要求,并将其划分为产品描述方面的要求以及用户文档和程序与数据两部分的技术指标。其中,在产品描述方面的要求则包含内容的一般要求、标识和指示等方面;而用户文档的基本要求则体现在完整性、正确性和一致性等多个维度;至于程序与数据的相关指标,则主要围绕功能性与可靠性两个核心方向展开说明。此外该标准还对测试工作做出了明确规定,在功能测试(黑盒测试)方面给出了详细指导,在结构测试方面则未作出具体规定
五 结论
医疗器械软件的质量等级比其它医疗器械产品更为复杂,在质量体系的标准划分上也面临着巨大的挑战。我国在这一类器械的管理运行以及技术标准体系制定方面亟需深入探究和完善相关研究工作。如何尽快确立统一的技术规范与操作流程,则是我们当前面临的重要课题之一
来源:《世界医疗器械》
出版日期:2004年12月
转载于:https://www.cnblogs.com/Qia_sky/archive/2005/12/11/294826.html
