《“ 功能安全产品实现技术“系列讲座 第9讲 安全相关产.pdf》由会员分享,可在线阅读,更多相关《“ 功能安全产品实现技术“系列讲座 第9讲 安全相关产.pdf(3页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、PROCESS AUTOMATION INSTRUMENTATION Vol郾 35 No郾 2 February 2014修改稿收到日期:2013-12-10。作者廖丽华(1983-),女,2010 年毕业于南京航空航天大学安全技术及工程专业,获硕士学位;主要从事功能安全及软件的验证与确认方面的研究工作。“功能安全产品实现技术冶系列讲座第 9 讲摇安全相关产品的软件实现(三)Chapter 御摇 Implementation of the Software for Safety Related Products:Part 3廖丽华1,2摇谢亚莲1,2(上海工业自动化仪表研究院1,上海摇 20
2、0233;上海仪器仪表自控检验测试所功能安全中心2,上海摇 200233)摘摇 要:首先介绍了功能安全相关产品软件实现中软件验证与确认的狭义概念。然后基于标准 IEC 61508鄄3:2010(GB/T 20438.3鄄2013),对软件安全生命周期中代码复审、模块测试与集成测试的一系列验证要求进行了分析,并针对每个阶段的活动流程、内容要求、测试用例设计方法、测试规程、测试结果的评审等做出详细的说明。最后提出安全软件的自身特性。关键词:功能安全摇 安全软件摇 验证与确认摇 代码复审摇 模块测试摇 集成测试中图分类号:TP202摇 摇 摇 摇 文献标志码:AAbstract:Firstly,th
3、e narrow concept of software verification and validation for functional safety related products in software implementation areintroduced.Then,on the basis of IEC 61508鄄3:2010(GB/T 20438.3鄄2013),a series of verification requirements in software safety life cycleare analyzed,e.g.,the code review,modul
4、e testing and integration testing,and aiming at activity processes,contents requirement,test casedesign methodologies,test procedures and the assessments to the test result in each stage are introduced in detail.Finally,the owncharacteristics of safety software are proposed.Keywords:Functional safet
5、y摇 Safety software摇 Verification and validation摇 Code review摇 Module test摇 Integration test0摇 引言功能安全软件的一切验证和确认活动主要是为检验与评估软件是否已正确执行其产品的安全功能。软件验证主要针对安全完整性等级要求的程度,测试和评估软件安全生命周期在给定阶段的输出,保证该阶段输出对于相应输入的正确性和一致性;软件确认主要是为了证明安全相关产品在软硬件集成后符合软件安全要求规定。本文所述的软件验证是指狭义的软件安全生命周期中后期的静态代码复审、模块测试、集成测试阶段的验证技术,主要是动态的,与上述安
6、全生命周期的早期的几个阶段不同,因为前期的验证主要是静态的。本文的软件验证技术主要是软件测试,它是软件代码实现后(除代码复审外)一切验证与确认活动的主要方法,其首要条件是最好考虑到软件验证的独立性,必须由开发人员外的专业领域测试人员进行,避免陷入开发人员既定的编程思维,从而不利于算法优化、代码优化,避免代码重用等错误。1摇 代码复审代码复审可依靠多种代码检查方式来完成,包括软件审查、人工走查和形式化检查。代码复审是针对软件的整个源代码,不管是一般芯片自带的、编译器自动生成的和人工开发的代码,都要进行软件走查和人工走查,一般同时进行,相辅相成;而形式化检查是否需要,则按安全完整性等级和软件模块设
7、计规范选择。为达到软件安全完整性等级的要求,源代码应需具有以下代码属性:可读、可理解、可测试性;满足软件模块设计的规定要求;满足编码标准的规定要求;满足安全计划编制中规定的所有相关要求。软件走查的主要任务是依据制定好的软件编码标准和已选择的软件测试工具对源代码进行分析,从而生成代码复审报告;然后让开发人员针对违背编码标准的语句在不会影响整个模块设计的前提下(如果确认为模块设计的问题,则重回模块设计阶段修改验证)进行修改,直到顺利通过编码标准为止;最后如果存在软件和硬件的实际需求而无法通过编码标准的语句,则须针对每条语句给予违背编码规则说明文档记录。29第 9 讲摇 安全相关产品的软件实现(三)
8、摇 廖丽华,等自动化仪表第 35 卷第 2 期摇 2014 年 2 月人工走查的主要工作是依据软件详细设计说明对源代码进行分析,确保所有代码是执行预定功能且不执行其非预定功能,去除一切重复、无用、错误的代码;除此之外还要针对软件走查的代码复审报告进行逐条语句验证与确认,该条语句是否确实违背编码规则。这个检查工作非常关键,需复审人员耐心地读懂程序并仔细地推敲其是否与软件详细设计说明达成一致性、正确性、完整性。形式化检查一般在安全相关产品规定的软件安全功能和软件系统性能能力较高且软件系统比较复杂的情况下使用,是一种动态的分析方法;使用某种严格的数学方法来证明复杂的软件不存在数据溢出、内存泄露、未初
9、始化的内存、被零除和指针越界等运行时错误。该方法也能靠软件测试工具支持。代码复审的执行过程如图 1 所示。图 1摇 代码复审的执行过程Fig.1摇 Execute process of code review2摇 模块测试测试软件模块是对代码实现和软件模块设计的验证,与代码复审相结合,用于确保软件模块设计满足其相关规范。该阶段重点是选用合适的测试方法对软件模块的具体实现、内部的逻辑结构、数据流向等进行全面的测试,除了功能需求,还要增加非正常逻辑的测试,而这些是影响到软件单元测试充分性的关键,最终确保软件执行其预定功能且不执行其非预定功能。功能安全软件的模块测试在开始前一般应具备以下条件:模块测
10、试规范及计划(模块设计阶段已生成);所提交的被测软件版本受控(源代码清单);源代码已正确通过编码规则检查(代码复审报告);源代码已正确通过编译或汇编;软件详细设计说明;已搭建好的测试环境(包括测试的运行环境和测试工具环境)。采用的测试方法为白盒,在其基础上确定测试需要的其他配套技术及方法,如测试数据生成与验证技术、测试数据输入技术、测试结果获取技术。设计测试用例一般需考虑下面几个方法:边界值分析;控制流分析;接口分析;等价类方法;形式化证明或断言;量化的统计证据。功能安全软件的模块测试活动流程如图 2 所示。模块测试各阶段的输入、输出如图 3 所示。图 2摇 软件模块测试活动流程Fig.2摇
11、Activity process of software module testing图 3摇 模块测试中各阶段的主要数据流Fig.3摇 The main dataflow of each stage during module testing根据模块测试计划中测试须达到的覆盖率水平等进行结果核对,判断是否出现异常或需要补充测试用例情况,如出现相应的情况应做出对应的处理,其具体流程如图 4 所示。图 4摇 结果核对活动的控制流程Fig.4摇 The controlling flowchart of result verification activities最后应对测试执行活动、模块测试文档(
12、包括模块测试报告、测试用例、测试记录、测试日志和测试异常报告等)进行评审。评审一般包括下面几点内容:测试执行活动的有效性;测试结果的正确性、完备性和合理性;整个测试过程是否达到了模块测试规范的要求;测试中所有生成的文档是否符合规范。结束模块测试工作一般应具备以下条件:已按要求完成了模块测试规范所规定的测试任务;实际测试过程遵循了原定的软件测试计划要求;客观、详细地记录了测试过程和测试中发现的所有问题;测试文档齐39第 9 讲摇 安全相关产品的软件实现(三)摇 廖丽华,等PROCESS AUTOMATION INSTRUMENTATION Vol郾 35 No郾 2 February 2014全
13、、符合规范;测试的全过程自始至终在控制下进行;测试中的问题或异常有合理解释或正确有效的处理;全部测试工具、被测软件、测试支持软件和评审结果已纳入配置管理。3摇 集成测试功能安全软件由于通常是嵌入式软件,所以集成有两个概念,一个是纯粹的软件模块集成,一个是硬件和软件相结合的可编程电子集成,本文所述的集成是没有硬件参与的软件集成。软件集成测试主要是验证所有软件模块相互作用以实现其预定功能而不实现非预定功能,确保软件系统满足安全功能和系统性能力的特定要求。功能安全软件的集成测试活动流程如表 1 所示。对具体的安全相关产品的软件,可根据软件安全功能和软件系统性能力选择适当的集成测试技术。软件集成测试一
14、般应符合以下要求:淤对集成软件进行必要的静态分析;于采用自底向上增量集成法,测试新组装的软件集成;盂逐项测试软件概要设计文档规定的软件的功能、性能等特性;榆测试软件之间、软件和硬件之间的所有接口;虞测试运行条件(如数据结构、输入/输出通道容量、内存空间、调用频率等)在边界状态下和人为设定的状态下软件的功能和性能;愚应按概要设计文档要求,对软件的功能、性能进行强度测试;舆对执行安全功能代码进行安全性分析,明确每一个故障状态和导致故障的可能原因,并对执行安全功能代码进行针对性、重复性的测试。表 1摇 软件集成测试活动流程Tab.1摇 The controlling flowchart of res
15、ult verification activities任务活动输入材料活动内容输出材料制定集成测试计划软件概要设计说明;系统集成测试规范;软件架构设计说明将软件划分为可管理的集成集;指定集成测试的总方法;指定完备的测试要求;指定测试完成的标准;指定总的进度安排详细的集成测试计划指定测试资源的要求集成测试的总体资源需求设计集成测试用例集成测试计划;软件集成测试规范;软件源代码清单;软件概要设计说明获取模块层次结构图;按需求获取测试规程;确定测试用例设计方法;根据产品信息,按需扩大测试用例集的说明集成测试用例;集成测试的增强需求;附加的测试用例说明;实现集成计划集成测试用例;测试流程;测试的总体资
16、源需求;软件数据结构说明搭建测试环境;编制测试脚本,更新测试过程测试脚本;测试过程设计并实施驱动或桩驱动程序执行集成测试测试用例说明;测试脚本与驱动程序;集成测试规范说明;配置完备的测试环境运行测试;记录并判定测试结果;分析每次失败原因,采取对应措施包含在测试总结报告中的执行信息(包括测试输出、测试事件描述、故障分析结果、错误修正活动、不能修改错误的理由、资源消耗数据、执行轨迹总结信息等)核对测试完成准则判定测试完成的准则;执行信息;测试规范说明对测试过程的正常终止情况进行核对;对测试过程的异常终止情况进行核对;补充测试集记录于测试总结报告内的核对信息,包括终止条件及任何测试用例的附加情况;附
17、加的或修订后的测试规格说明;附加的测试数据评价测试效果和被测的软件集成测试计划;执行信息;核对信息;附加的测试用例说明描述测试状态;描述软件系统状态;完成测试总结报告;保存测试中的所有文档测试结果分析报告;全部测试工具、被测软件、测试支持软件和评审结果已纳入配置管理4摇 结束语功能安全软件的验证与确认贯穿于安全相关产品软件实现的全过程。由于该活动是可重复性的,所以配置管理至关重要,以便后期如果出现事故查找故障出处。同时,还要注重安全软件本身的特性:淤 无移植性,针对软件使用的特定环境而开发的功能安全软件,其如需移植,则必须重新测试使用平台;于 灵活性,在保证完成安全功能的前提下要保持软件操作等的灵活性;盂 效率性,安全软件主要是实现安全功能,如果没有产品特别需求,这个不需太强求;榆 正确性,这个是必须要遵循的,整个验证和确认过程都是为了证明这一点。49第 9 讲摇 安全相关产品的软件实现(三)摇 廖丽华,等