IEC 61508-3:2010标准给出了按照软件安全生命周期模型对安全相关系统进行设计和开发的方法,规定了安全相关系统安全生命周期各个阶段需开展的活动。
为了帮助理解机器人安全相关软件验证和确认如何满足IEC 61508-3:2010标准,本文将继续上篇的内容,对测试管理和自动化工具、在软件设计规范与模块及集成测试规范间向前可追溯、离线数值分析、影响分析、经认证或从使用中增强信任的工具和翻译器等方面作相关介绍。
1.测试管理和自动化工具
在对机器人安全相关软件进行功能安全评估过程中,几乎很难能直接访问到完整的源代码,为了能在开发阶段顺利地开展安全相关软件测试,往往要求提供软件桩函数,用这些函数替代常规代码(例如,一段尚未实现的代码)来进行测试。通过使用软件单元测试自动化工具可以快速生成一个完整的测试环境,且不需要提供测试代码或脚本,只需提供被测代码以及“includes”的路径,基于这些信息,测试工具可以自动生成单元或模块测试所需的全部测试套件代码,如测试驱动、桩函数等,并可以在较短的时间内完成数量庞大的代码测试工作,有效节省了测试时间。此外,由于测试用例数据通常是独立存放在测试套件文本文件中,并可以重复导入至测试套件中用于特定单元测试,因此,即便测试环境发生改变,如,换成一个新的目标处理器,或用不同的代码版本,单元测试自动化工具也可以很方便地将测试用例导入或导出到对用的测试环境当中。
2. 在软件设计规范与模块及集成测试规范间向前可追溯
根据IEC 61508-3:2010的规定,可追溯的目标是要确保所有需求都能显示已被正确地满足,同时没有引入不可追溯的材料。这包括(但不局限于)软件需求和测试用例之间的可追溯性。通常,测试自动化工具集成软件需求是通过需求网关模块来连接需要维护的软件需求,如使用IBM® Rational® DOORS®需求管理工具来完成。使用这种集成方式,用户可以下载并关联具体的软件需求到测试用例,并将包含有测试用例状态(通过/失败)的信息上传回需求管理系统。
3. 离线数值分析
离线数值分析的目标是从软件本身的特性而不是从其开发或测试的历史来预测程序的属性。通常情况下,测试自动化工具将复杂度作为其标准分析的一部分,其他额外的度量指标通常可以使用静态分析工具来获得。
4. 影响分析
影响分析的目标是识别软件系统的一个改动或功能增强对该软件系统的其它模块以及其它系统的影响。根据影响分析本身的结果,需要重新验证被改动的模块、所有受影响的模块或者整个系统。单元测试自动化工具通常有一个完整的回归测试功能,这意味着,为早期版本的代码设计的测试用例可以重新在新的代码上无缝地运行,如果一个测试用例已不适用(例如因为参数的数量或类型发生了变化),那么该测试案例会被直接忽略或标记需要进行审查。由于测试自动化工具的这一特性,就有可能在短短的几分钟内在给定的模型上对更新的代码重新运行整个测试用例集,由于回归测试过程可以完全自动化,这些测试也可以在夜间重新执行,极大简化了需要进行维护的成本。
5. 经认证或从使用中增强信任的工具和翻译器
在对机器人安全相关软件进行功能安全评估过程中,所使用的工具和翻译器可以通过工具正式认证或通过以前的使用获得信任。通过正式认证的工具应提供下列的文件:
1)来自权威机构证明其合格的证书。
2)工具操作需求(TOR)。文档中应包含工具或翻译器可验证的需求,以及可能对工具生成结果产生影响的项目操作环境信息(例如,微处理器的架构)。
3)工具资质数据(TQD)。文档中应包含运行资质测试套件的测试数据和结果,资质测试套件要求使用项目的操作环境来验证所有TOR中的需求。
4)对IEC 61508-3:2010标准符合性分析。通常是从一个工作流手册中获得,该手册描述了如何在设定的边界内使用工具以确保它产生的用来证明符合标准要求的结果是可接受的。
若该工具是通过“从使用中增强信任”,则应该提供工具已用于其它类似的安全相关系统中的证据。
至此,根据IEC 61508-3:2010标准对机器人安全相关软件进行功能安全验证和确认涉及的概率测试、数据记录和分析、功能和黑盒测试、性能测试、接口测试、动态分析和测试、测试管理和自动化工具、在软件设计规范与模块及集成测试规范间向前可追溯、离线数值分析、影响分析、经认证或从使用中增强信任的工具和翻译器等活动均已进行相关介绍,相信大家对机器人功能安全有了近一步的了解。后续,赛迪功能安全系列报道将从硬件开发等方面开展机器人功能安全相关知识普及,敬请期待!
赛迪机器人作为中国机器人CR认证服务的权威机构,将持续推进机器人相关标准的制定工作,关注产品质量和安全问题,促进产业的标准化和规模化,为机器人产业的安全保驾护航。