嵌入式软件测试笔记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 测试活动

  • 以下为集中进行影响分析并采取矫正措施:
    在这里插入图片描述
目录
相关文章
|
7天前
|
机器学习/深度学习 人工智能 算法
深入探索软件测试中的黑盒测试技术
本文旨在通过一个创新视角,探讨软件测试领域中的黑盒测试技术。我们将从一个全新的维度——测试用例的生成策略出发,分析如何提高黑盒测试的效率和效果。文章不仅会介绍传统的测试用例设计方法,如等价类划分、边界值分析等,还会结合最新的技术发展,讨论人工智能在黑盒测试中的应用前景。通过案例分析和实践应用,我们期望为读者提供一套系统的黑盒测试解决方案,以应对日益复杂的软件测试需求。
|
11天前
|
敏捷开发 测试技术
软件测试中的探索性测试方法
【6月更文挑战第12天】探索性测试,一种灵活的测试实践,旨在通过自由形式的探索发现软件的潜在缺陷。它不依赖于事先编写的测试用例,而是鼓励测试人员利用直觉、经验和创造力来指导测试过程。本文将深入探讨探索性测试的核心概念、实施策略以及它如何增强传统测试方法的有效性。
|
2天前
|
存储 缓存 NoSQL
Redis性能测试实操记录与分析
Redis性能测试实操记录与分析
10 3
|
4天前
|
SQL 监控 中间件
【应急响应】拒绝服务&钓鱼指南&DDOS压力测试&邮件反制分析&应用日志
【应急响应】拒绝服务&钓鱼指南&DDOS压力测试&邮件反制分析&应用日志
|
5天前
|
敏捷开发 测试技术
软件测试中的探索性测试方法
【6月更文挑战第18天】本文将深入探讨探索性测试(Exploratory Testing)在软件测试领域的重要性与实施策略。不同于传统的脚本化测试,探索性测试强调测试人员的主观能动性和创造性,以真实用户的角度出发,发现那些可能在规范性测试中被忽视的问题。文章首先介绍探索性测试的定义和优势,然后通过案例分析,展示如何有效执行探索性测试,最后讨论其在敏捷开发环境中的适应性以及如何与传统测试方法相结合以提升测试覆盖率和效率。
|
20天前
|
NoSQL 关系型数据库 MySQL
软件测试之【基于开源商城系统fecmall功能测试项目实例】
软件测试之【基于开源商城系统fecmall功能测试项目实例】
47 0
软件测试之【基于开源商城系统fecmall功能测试项目实例】
|
11天前
|
移动开发 测试技术 C语言
Python基础教程(第3版)中文版 第16章 测试基础(笔记)
Python基础教程(第3版)中文版 第16章 测试基础(笔记)
|
17天前
|
Java
JavaSE——集合框架二(6/6)-(案例)补充知识:集合的嵌套(需求与分析、问题解决、运行测试)
JavaSE——集合框架二(6/6)-(案例)补充知识:集合的嵌套(需求与分析、问题解决、运行测试)
58 0
|
20天前
|
测试技术 Linux 开发工具
软件测试之【软件测试初级工程师技能点全解】
软件测试之【软件测试初级工程师技能点全解】
13 0
|
5天前
|
JSON Java Maven
使用`MockMvc`来测试带有单个和多个请求参数的`GET`和`POST`接口
使用`MockMvc`来测试带有单个和多个请求参数的`GET`和`POST`接口
17 3