赛迪功能安全系列报道(六)IEC 61508安全相关产品的软件验证和确认(上)

2021-09-27

       功能安全是系统或设备整体安全的一环,它取决于电气/电子/可编程电子安全相关系统和其他风险降低措施正确执行其功能。作为基础性功能安全标准的IEC 61508涵盖了电气/电子/可编程电子安全相关系统的功能安全要求。其中IEC 61508-3:2010标准明确了按照软件安全生命周期模型对安全相关系统进行设计和开发的方法,规定了安全相关系统安全生命周期各个阶段需开展的活动。

       为了能够更好地理解机器人安全相关软件是如何进行功能安全的验证和确认的,通过分析IEC 61508-3:2010标准的相关内容,总结出关于软件验证和确认的活动,详见表1。本文将对概率测试、数据记录和分析、功能和黑盒测试、性能测试、接口测试等活动逐一进行介绍。关于动态分析和测试活动将在下一篇文章中作相关介绍。

表1 从IEC 61508-3:2010  附录A提取的方法度量


1.概率测试

      概率测试来源于一些度量标准,比如MTBF(平均无故障工作时间)、可用性或安全执行概率。这种类型的测试,可以利用测试中几个常用值进行独立地重复性测试,以降低错误概率。


2.数据记录与分析

      当创建和执行测试用例时,应当记录关于测试用例的具体内容,比如测试前提条件、输入参数以及输出结果等。一般情况下,自动化测试工具允许补充一些额外的参数信息到测试用例场景中以捕获这些信息。


3.功能和黑盒测试

在全部SIL等级中,功能和黑盒测试都是被强烈推荐执行的,这是一种可以在软件设计和实施期间进行的测试。

在IEC 61508-3:2010 附录B表B.3中描述了不同类型的测试策略。如下面表2所示。

表2 功能和黑盒测试-IEC 61508-3:2010 附录B表B.3

注:R为推荐的活动,HR为强烈推荐的活动。


3.1 根据因果图执行测试用例

       因果图法是一种适合于描述对于多种输入条件组合的测试方法,根据输入条件的组合、约束关系和输出条件的因果关系,分析输入条件的各种组合情况,从而设计测试用例的方法,它适合于检查程序输入条件涉及的各种组合情况。因果图法一般和判定表结合使用。


3.2 根据基于模型测试用例的生成执行测试用例

       这种活动除了基于模型的仿真还能够测试实际的源代码。如果基于代码的测试工具能够导入基于模型的测试用例,则可以减轻重新定义测试数据的需要。执行这类测试将产生代码覆盖。


3.3 原型设计/动画

       原型设计和动画用于检查违反给定约束执行系统的可行性。


3.4 等价类和输入划分测试,包括边界值分析

       边界值分析、等价类和输入划分测试在本文的前面已经进行了说明。在实际测试的时候,可以考虑在不同的软件开发阶段,这些测试用例的重用性,比如单元级测试阶段和系统级测试阶段。


3.5 过程仿真

       过程仿真,顾名思义,只需要经过仿真来测试软件系统的功能而不需要使整个软件系统真正地运转起来。


4.性能测试

       从IEC 61508-3:2010 附录B表B.6雪崩/压力测试中可以看出,根据SIL等级的不同,响应时间、内存限制以及性能需求的测试,有些是推荐活动,有些是强烈推荐活动。这些测试可以使用自动化测试工具实现部分自动化。比如,执行一个函数的时间可以在进行单元测试时计算出来。


5.接口测试

       在软件的设计和实施过程中,同样建议测试软件的接口。

       接口测试是测试系统组件接口的一种测试。主要用于检测外部系统与系统之间以及内部各个子系统之间的交互点,重点检查数据的交换、传递和控制管理过程以及系统间的相互逻辑依赖关系等。

       接口测试的测试用例可以根据场景覆盖和接口参数覆盖进行设计。


       赛迪机器人作为中国机器人CR认证服务的权威机构,将持续推进机器人相关标准的制定工作,关注产品质量和安全问题,促进产业的标准化和规模化,为机器人产业的安全保驾护航。


3349381607