嵌入式软件测试笔记10 | 嵌入式软件测试中如何进行安全性分析?
10 | 嵌入式软件测试中如何进行安全性分析?
1 简介
- 这里的安全指在一定条件下,系统不会危及到人的生命的期望;
- 某些系统的故障可能导致严重的后果,如
人员死亡、严重伤害、或环境环境收到严重破坏
; - 书中说到了两种方法:
FMEA(故障模型及后果分析)
、FTA(故障树分析)
; - 故障原因:
① 硬件或软件故障;
② 硬件磨损;
③ 电磁干扰,机械、化学干扰;
- 故障模式:描述产品或过程无法执行所期望的功能的一种方法;
- 故障:系统或部件不能实现其运行需求;
- 后果:由故障模式导致的不利结果。
2 故障模型及后果分析(FMEA)
2.1 三个步骤
- 标识潜在的故障模式;
- 确定这些潜在的故障模式对系统功能的影响;
- 制定行动来减少影响/故障模式。
2.2 带来的结果优势
- 大幅度提高系统的安全性;
- 在这整个开发生命周期过程中能够跟踪风险;
- 及早确定潜在的安全风险;
- 将风险及为减少风险而采取的行动文档化;
- 将后期系统的改动和相关费用减到最少;
- 测试策略有高度可靠的输入。
2.3 FMEA分析过程
2.3.1 描述系统及其功能
- 描述系统及其功能;
- 包括设计及其需求文档;
- 描述系统不同部分之间关系的文档。
2.3.2 识别潜在的故障模式
两种类型的软件故障模式:
- 数据故障模式:
① 数据丢失;
② 数据不正确;
③ 数据有时限;
④ 额外数据。
- 事件故障模式:
① 停机或异常终止;
② 忽略事件;
③ 错误逻辑;
④ 时间/顺序。
2.3.3 故障模式对功能的影响
- 多每一个功能,需描述潜在的故障模式对其产生的影响;
- 先描述对功能的影响,再描述对系统的影响,最后根据风险将后果进行分类。
2.3.4 风险导致后果的原因
- 对原因需要描述措施。
2.3.5 风险监控
- 开发过程中,对所识别的风险进行监控。
3 故障树分析(FTA)
3.1 简介
- FTA被用来确定故障的原因;
- 系统的故障放在故障树的顶端,其次是考虑系统的哪些不必要的行为是造成故障的原因;
- 这里的故障是指错误事件,错误数据,意外数据或行为。
3.2 常用建立故障树的符号
3.3 FTA实例
- 以下为起搏器故障分析的子集:
4 安全性分析生命周期
4.1 基于MOD-00-56的安全性生命周期
- 安全需求:
① 是用于安全验证的测试基础的一部分;
② 是安全过程的第一个活动。
- 安全项目程序:对时间、费用和资源进行预算的项目方案;
- 灾害识别:
① 目标是确定系统哪些部分出现故障,将会导致系统工作出现严重后果;
② 常用技术FMEA和FTA。
- 风险评估:对已识别的灾害,分析他们对系统的影响是什么,其后果是什么;
- 安全性评估:目标是确定是否采取了所有必要的措施;
- 安全验证:根据安全要求,测试系统是否正常运行。
4.2 测试基础
- 以下为最终设计的实现以及与测试和安全过程的关系:
4.3 测试活动
- 以下为集中进行影响分析并采取矫正措施: