1. 开发过程说明
系统层面:包括软硬件集成测试、系统集成测试以及整车测试。
硬件层面:包括硬件集成与测试。
软件层面:单元测试、集成测试。
2. 功能安全总体要求
2.1 各项指标
2.2 诊断覆盖度举例
针对一个信号举例说明:
3. 功能安全测试要求
3.1 测试计划
核心内容应包括,
测试对象:需要测试的对象描述,以及测试的范围描述;
测试人员:人员能力、人员职责范围等;
测试环境:涉及到的仿真环境(Simulink)、台架环境(HIL、实验台架等)等;
测试工具:用到的各种软件以及硬件测试工具,如Canoe、Canape、Inca等,说明工具的型号以及版本信息;
测试方法:功能安全表格中提到的针对各个阶段,所需采取的测试手段或方法;
测试标准:测试通过以及失败的准则;
测试条件:包括测试准入条件、测试准出条件以及测试异常退出条件等;
测试回归:定义回归策略,如在产品末期,进行一次全回归测试等;
测试时间计划表:针对各个阶段进行详细的测试计划安排,确保各个阶段人、事、物齐全,确保测试按照计划进行。
3.2 测试规格
根据不同的测试对象进行分析,选择合适的测试方法、编写测试用例。
测试用例应包括,
用例ID:每个测试用例应有唯一的测试ID,方便建立追溯;
测试方法:说明测试用例选择的测试方法;
测试环境:说明当前用例的环境;
测试对象:说明对应的测试对象版本、配置信息;
输入条件:说明测试用例的输入条件;
测试步骤:说明测试用例的执行步骤;
预期结果:说明测试用例执行后预期的输出、输出范围以及功能表现等,说明通过与失败评判标准。
3.3 软件相关测试
3.3.1 软件单元测试
测试对象:
包括软件单元内部的语句、逻辑以及单元给外部调用的接口。
验证方法:
表8 可通过静态验证工具来进行验证,
表9中,一般需要进行数据流以及控制流分析图。
验证要求:
证明软件单元满足软件单元设计规范;
证明软件单元符合软硬件接口的定义;
证明软件单元具有一定的鲁棒性;
证明软件单元不包含非期望的功能,且满足下表覆盖度。
这里核心是需要借助一定的工具,统计需求覆盖度以及代码覆盖度。
3.3.2 软件集成测试
测试对象:
软件单元拼接集成后的软件,针对针对各个模块的交互接口以及集成起来的功能进行验证测试。
测试方法:
资源使用测试,包括消耗的CPU资源、RAM、ROM等。
验证要求:
证明软件实现与软件架构设计的符合性;
证明软件与与软硬件接口规范的符合性;
证明软件包含了已定义的功能;
证明软件具有一定的鲁棒性,具备有效的错误探测以及处理机制;
证明软件使用资源与预期消耗资源一致(或小于);
应满足在软件架构层面对要求的覆盖率要求。
备注:为了达到足够的覆盖度,可以采用不同的集成方法,分阶段进行集成。
3.3.3 软件安全需求验证
目标是验证嵌入式软件符合软件安全需求;
软件安全需求实现的测试需要在目标硬件平台上完成;
测试环境可选择下表所示:
3.4 硬件相关测试
3.4.1 硬件集成测试
测试对象:
针对硬件单板,集成硬件要素和测试硬件设计,以验证硬件设计符合适当 AS I L等级的硬件安全要求;
测试方法:
测试要求:
应验证针对硬件安全要求的安全机制实施的完整性和正确性;
应验证硬件在外部应力下的鲁棒性;
测试设备应按照国标要求(如ISO17025)。
3.5 系统相关测试
3.5.1 软-硬件集成测试
测试对象:
HSI,应以适当的覆盖率测试软硬件接口(HS I)要求,同时考虑 AS I L等级或应给出没有关于 HS I遗留问题的理由。
测试方法:
一般选用HIL台架进行故障注入测试。
测试要求:
验证安全机制在软硬件层的正确功能性能、准确性和时序;
验证外部和内部接口在软硬件层执行的一致性和正确性;
验证对于硬件失效探测机制在软硬件层面上与故障模型有关的诊断覆盖率的有效性;
验证安全相关要素在软硬件层的鲁棒性水平。
3.5.2 系统集成测试
测试对象:
组成系统的各个要素按照系统设计进行集成集成后的系统,证明各个系统要素正确交互、符合技术和功能安全要求,并为没有可能导致违背安全目标的非预期行为提供足够的置信度水平。
测试方法:
测试要求:
验证功能和技术要求在系统层面的正确执行;
验证安全机制在系统层的正确功能性能行为、准确性和时序;
外部和内部接口在系统层面执行的一致性和正确性;
安全机制在系统层面的失效覆盖率的有效性;
验证系统层面的鲁棒性水平。
3.5.3 整车集成测试
测试对象:
集成到整车后的相关项,为了探测整车集成期间的系统性故障。
测试方法:
测试要求:
验证功能安全要求在整车层面的正确的执行;
验证安全机制在整车层面的正确功能性能、准确性和时序;
验证整车层面外部接口实现的一致性和正确性;
验证安全机制在整车层面的失效覆盖率的有效性;
验证整车层面的鲁棒性水平。