电子产品可靠性与环境试验 2012焦 软件评估的目的就是要求这些起安全保护作用的电 子线路在运行过程中不会出现故障,错误.避免因 为软件本身的问题而导致不能及时、正确地处理家 安全要求规范(包括安全功能要求规范和安全完整 性要求规范);其次,开发者要编制软件安全确认 计划。进行软件的设计和开发;最后,在设计/开 发完成后.需要将软件和硬件进行系统集成,通过 采用相关的测试方法.在整个系统的基础上对软件 的安全性进行确认 IEC 61508—3推荐采用V模型 来进行软件的设计(见图2)。模型的深度根据系 统的安全完整性等级和项目的复杂程度而定。V模 用电器在正常使用中出现的危险。在IEC 60335—1 的5.0版中.要求保护电子电路的软件应含有控制 故障/错误的措施和避免错误的措施,这两个措施 就构成了软件评估的两个重要因素。 在进行软件评估之前.需要对系统的软件进行 确认.确认软件的哪些部分起到功能作用,哪些部 分起到与安全相关的作用。这是因为。附录R软 件评估所评估的是软件中与安全相关的部分.对只 型是一种自上而下的设计方法.以“软件安全需求 规范”开始.一直到代码的编写。设计和测试系统 的测试则是从软件最底层的模型测试开始.接着是 集成测试,再到部件、子系统和可编程电子系统的 集成测试.最后是对软件是否满足“软件安全需求 起到功能作用的部分没有要求:但是,对于那些既 起功能作用,又起安全作用的软件.也在评估的范 围之内。 规范”的确认.如果这一规范得到了满足.则证明 软件已经满足了“软件安全需求规范” 因此.V 模型是一个从整体到局部再到整体的过程 通常. 在软件设计的每一层都需要进行测试来验证其符合 性 而在IEC 60335—1的5.0版中.根据家电产品 的实际情况.对软件安全生命周期进行了与本标准 附录R要求软件本身具有发现和控制故障/错 误的措施.使系统能够在运行过程中对所出现的故 障/错误(如程序计数器出现滞位故障。不再指向 下一段代码的地址.导致系统出现卡死等问题)作 出响应 软件应能够确定与安全相关的字段和数据 发生故障/错误时的地址.针对不同的组件可能出 现的故障模式.采取不同的方法进行控制。开发者 可以根据系统的实际要求.选择适合系统的措施 表R.1和表R.2列出了对应组件出现不同的故障类 型时可采取的措施。从标准的要求可以看出.表 R.2的要求比表R.1的高.因此,对于仅要求满足 表R.1的软件。也可以采取表R.2的措施。当然, 由于目前软件评估的技术在不断地发展.这些措施 相适应的修改.在软件安全要求、软件结构、模块 化设计和代码实现、软件确认等方面进行了要求。 圉 也在不断地增加.因此标准中并没有规定一定要采 取所列的措施.只要能保证所采取的措施可以提供 相等的或更高的安全等级即可。 2避免错误的措施 对于保护电子电路的软件.开发者不应仅考虑 控制故障/错误的措施,还应在软件的设计、开发、 确认阶段采取相关措施来避免软件发生系统性故 j安垒需求规范l—・ 、 ................... 障,错误。在IEC 60335—1的5.O版中.引用IEC 61508—3[3j的相关内容.并结合IEC 60335—1的具 体要求形成了附录R.3“避免错误的措施”的要 ⑦竺塑, , .r 求。IEC 60335一l在软件安全要求、软件结构、模 块化设计及编写代码、软件确认这几个方面进行了 要求。并提供了满足这些要求的技术,措施 根据IEC 61508—3的软件安全生命周期的要求 (见图1),首先,软件开发者要确认系统中软件的 = l::=竺J 图2 V模型图 D ̄NZICHANP|NKEKAOXING YUHUANJING sHlYAN 增刊 梁锦昌:IEC 61508在家用电器软件评估上的应用 我们可以从图2看出.电子系统的结构与软件 的结构是相互影响的关系.当软件安全要求和软件 结构发生变化时.将会对电子系统的硬件结构产生 影响.因此软件和硬件开发人员之间的密切合作就 a)半形式化方法 在系统开发的某个阶段编制该系统的描述.可 以采用机器分析等方法 有限状态机,状态转换图 为其中一种半形式方法。其目的是模型化、详细规 定或者实现系统的控制结构 产生的系统模型为一 个有限的状态机。通过描绘系统的状态及引起系统 状态转换的事件。以此来表示系统的行为。此外状 变得非常必要 .作为软件的开发者,首先需要明确软件安全要 求规范,充分考虑系统的安全功能(如电磁炉的过 热保护。电机的过载保护等)、系统配置或结构 (如保护措施的响应方式)、系统响应能力(如电磁 炉发生过热时.系统处理过热的响应速度)等方面 态转换图还指明了作为特定事件发生时系统将做哪 些动作(例如。处理数据)。因此状态转换图提供 了行为建模机制。图3为状态转换图的示例。 的要求。在IEC 60335一l的5.0版中.附录R要求 软件安全要求规范应包括需要实现的安全相关功能 (包括相应的时间)、软硬件接口、安全相关与非安 全相关功能问的接口、编译器等内容。这些安全要 求规范必须是明确的、可行的,并应进行文档化。 其次.开发者根据软件安全要求规范.创建软 件结构,复审和评价系统硬件结构对软件的要求. 考虑系统中软硬件相互作用对家电产品安全性的影 响。标准要求软件的结构规范中。应包括控制故 障/错误的措施、软硬件间的相互作用、中断处理、 数据流、数据存储结构等方面的内容。 在确认软件的结构后.开发者应采用模块化的 图3 电磁炉状态转换图 b)判定表(真值表) 提供复杂逻辑组合和关系的一个清楚的、有条 理的规范和分析.描述布尔程序变量之间的逻辑关 方法对软件进行分块处理.这也是当前软件开发最 流行的方法.可以大大降低程序复杂度.简化程序 设计、调试和维护等操作,实现模块修改及优化不 会影响到其它模块 开发者可以采用计算机辅助的 方式进行模块化设计 系。本方法有着简明的特性,使其适于作为一种分 析复杂逻辑组合的方法。 c)数据流图 通过使用图形形式来描述流过程序的数据流. 其记录了数据输人是怎样变换成输出.途中的每一 步表示一个不同的变换 数据流图由3种组员构 为了保证软件符合系统的安全要求规范.对软 件的每一个安全功能进行确认.确认软件的预期和 实际结果是否一致.’在IEC 60335—1的5.0版中. 成:带注释的箭头,带注释的泡,算符(与,异 或)。每个泡代表一个不同的变化——输出与输入 应有所不同。图4为电磁炉的数据流图的示例。 测试应该是软件确认的主要方法.软件的确认可以 通过仿真进行.仿真实验包括正常工作中出现的输 入信号、预期发生的事件、系统动作不期望的条件 等。在进行软件确认时。测试是主要的确认方法, 建模则可以作为补充 试验的数据和结果应该记录 下来。作为后续系统维护使用。 3可接受的技术/措施 在IEC 60335—1的5.0版中.对于R.3“避免 错误”,标准引用了IEC 61508—7的部分措施,作 为满足要求的技术/措施。下面介绍这些技术/措 施,在这里以电磁炉作为例子,对部分措施作图示 说明。 DiANzlCHANPINKEKAOXING YUHUANJINGSHIYAN 图4 电磁炉数据流图 电子产品可靠性与环境试验 2012钲 d1故障检测和诊断 检查系统的错误状态的活动.阻止错误结果的 来自范围极限的数据、极值。以及以上数据的组 合。 h)边界值分析 影响。故障检测是基于硬件冗余和多样性原理。采 取表决的方法进行确定。通过检查系统各级的物理 (温度、电压等)、逻辑(差错检测码)、功能或外 部电路(似真性检验)来实现故障检测。为了能进 行故障跟踪.可把这些检验的结果储存起来并把它 作为黑盒测试的一种形式.其目的是检测发生 在参数极值或边界值处的软件错误。测试将检查程 序的输入域边界值所对应的输出值。通常输入的边 界直接对应输出范围的边界 边界值分析法不仅重 视输入条件边界。而且也必须考虑输出域边界。长 期的测试工作经验告诉我们.大量的错误是发生在 输入或输出范围的边界上.而不是发生在输入输出 范围的内部。因此,针对各种边界情况来设计测试 们同数据联系起来。 e)模块化设计 将系统分解成小的、易理解的部分,降低系统 的复杂程度.使系统的实现、修改及维护变得容 易。一般的模块化方法都应有以下规则:1)有需 完成的、定义良好的单项功能;2)限制和定义模 块间的接口;3)限定子程序的大小;4)子程序只 有一个人口和一个出口等 f)设计和编码标准 用例.可以查出更多的错误。使用边界值分析方法 来设计测试用例。首先应确定边界情况。通常输入 和输出等价类的边界.就是应着重测试的边界情 况。应当选取正好等于.刚刚大于或刚刚小于边界 的值作为测试数据.而不是选取等价类中的典型值 提高可验证性.促进以群体为中心的目标逼近 法。项目一开始.项目的参与者需协商应遵循的规 则,包括设计和开发方法有关的编码标准。指定这 些规则是为了使开发、验证、评估和维护更容易。 或任意值作为测试数据 4结束语 随着IEC 60335—1的5.0版的推出.软件评估 常用的技术/措施有:编码标准、无动态变量或者 将不仅仅要求包括控制故障/错误的措施.还应在 软件的开发阶段采取措施,避免软件出现错误。本 动态对象、有限使用中断、有限使用指针、有限使 用递归等 g)黑盒测试 其目的是检验功能单元是否能正确地执行规范 要求的所有功能。在测试中.把系统看作一个不能 文概要地分析了IEC 60335一l推荐的、避免错误的 措施.供相关测试人员参考。 参考文献: [1】IEC 60335-1:2010(Ed5.0),Household and similar elec— trical appliances-Safety-Part l:General requirements【S】. [2]IEC 61508-7:2000(Ed1.o),Functional safety of electrical/ electronic/programmable electronic s ̄ety—related systems- 打开的黑盒子.在完全不考虑系统内部结构和内部 特性的情况下,在系统接口进行测试,它只检查程 序功能是否按照需求规格说明书的规定正常使用. 程序是否能适当地接收输入数据而产生正确的输出 信息。黑盒测试着眼于程序外部结构。不考虑内部 逻辑结构。很明显,如果程序的外部结构有误,用 黑盒测试方法是发现不了的。一般的输入数据形式 有来自允许范围的数据.来自不允许范围的数据, Part 7:Overview of techniques and me ̄ures【S】. 【3】IEC 61508-3:1998(Ed1.0),Functional safety of electrical/ electronic/programmable electronic safety-related ̄ems- Part 3:Software requirements【S】.