上节主要讲了软件开发策划、软件需求分析、软件系统结构设计三个阶段,这节来分析以下几个阶段。
1.软件单元实现
3.软件系统测试
软件开发过程由若干个活动组成,主要包括软件开发策划、软件需求分析、软件体系结构设计、软件单元实现、软件集成和集成测试、软件系统测试、软件发布。在整个生命周期中需要对软件进行风险管理,医疗器械软件的风险管理可参考YY/T 0316 医疗器械 风险管理对医疗器械的应用。同样,在整个设计开发过程中需要对软件进行配置管理。这些活动如下图所示:
1.软件单元实现
软件单元实现过程中伴随有单元测试,单元测试一般是代码层面的测试,所以使用白盒测试。开发人员在这个阶段都会测试,但是很容易忽略掉记录该过程。
1.1实现每个软件单元
这里应该与需求分析中相对应,确保每个单元实现。
1.2 建立软件单元的验证过程
如何进行单元的验证,这部分应该在测试计划中体现。可以划分到总体测试计划中,也可以单独写单元测试计划。
1.3 软件单元的验收准则
这部分可以在测试用例中体现,根据需求制定预期输出或实现结果。
1.4 附加的软件单元验收准则
这部分只有安全等级为C的软件需要体现,A、B级不需体现。
1.5 软件单元的验证
单元验证的结果需要形成报告,可以输出单元测试报告,并且验证过程需要保留记录,可输出单元测试记录表。
2.软件集成和集成测试
2.1 集成软件单元
开发人员集成各个单元模块。
2.2 验证软件集成
该部分验证软件集成,目的是验证各个单元已经集成到软件中。和需求说明书对比,确保无需求遗漏。
2.3 软件集成测试
制定集成测试计划,并按照计划进行集成测试,最终形成集成测试报告,并且保存集成测试记录。
2.4 软件集成测试的内容
软件集成测试的内容需要体现需求分析中的各项需求是否实现并可按照预期运行。需要考虑的示例如下:
--所要求的软件的功能性;
--风险控制措施的实施;
--特定的时序和其他性能;
--内部和外部接口特定的功能;
--非正常条件下(包括可预见的误使用)的测试;
2.5 评价软件集成测试规程
评价集成测试规程的充分性,对集成测试过程进行评审。
2.6 进行回归测试
软件集成后,应进行回归测试。在验证已修改缺陷(bug)的同时,也需要验证是否因为修改缺陷(bug)引入了新的缺陷(bug)。
2.7 集成测试记录的内容
集成测试需记录如下内容:
-
将测试结果(通过/未通过和反常清单)形成文件,即输出测试报告。
-
保留充分的记录,已使测试可重复,即保留测试记录,根据测试步骤可以复现测试过程。
-
标明测试者的身份。
2.8 使用软件问题解决过程
写软件问题解决报告,应将软件集成测试过程中的缺陷记录下来,并评估其严重程度。具体可以看YY/T 0664的第9章。
3 软件系统测试
3.1 为软件需求建立测试项
系统测试需要根据软件需求建立测试用例(其实在每个测试阶段都需要写测试用例),表达为输入触发、预期输出、通过/未通过准则和规程,覆盖全部的软件需求。测试用例设计的表单可参考如下:
3.2 使用软件问题解决过程
写软件问题解决报告,应将软件系统测试过程中的缺陷记录下来,并评估其严重程度。具体可以看YY/T 0664的第9章。
3.3 变更后再测试
在系统测试期间如果软件做出变更,应
-
适当时,重复测试、实施经修改的测试或附加的测试,以验证纠正问题时所做变更的有效性;
-
进行适当的测试,以证实没有引入非预期的副作用;
-
实施YY/T 0664第7章中的有关风险管理活动;
总之软件变更,需要走变更流程,同时对变更内容进行测试,并且评估其变更的风险。
3.4 评价软件系统测试
对系统测试阶段进行评审,需要验证:
a)所有的软件需求均经测试或以其他方式验证,即确保需求都被实现,无遗漏需求;
b)软件需求与测试或其他验证之间的可追溯性均已记录,即每个测试用例记录都可对应到相应的需求(软件可追溯性下次我细讲);
c)测试结果满足所要求的通过/未通过准则。
3.5 软件系统测试记录内容
软件系统测试记录需体现以下内容:
a)引用的测试用例规程,该规程体现所要求的行动和预期结果,可参考上面写的测试用例;
b)测试结果;
c)被测试软件的版本;
d)相关硬件和软件测试配置;
e)相关测试工具;
f)测试日期;
g)负责执行测试和记录测试结果人员的身份。
后记
本文是在实际执行0664标准的过程中的一些总结与体会。后续会更新医疗器械风险管理及配置管理的内容。
参考文献
[1] YY/T 0664-2020 医疗器械软件 软件生存周期过程
[2] YY/T 0316-2016 医疗器械 风险管理对医疗器械的应用
[3] 医疗器械网络安全技术审查指导原则(第二版)征求意见稿