嵌入式软件测试笔记10 | 嵌入式软件测试中如何进行安全性分析?

news2024/11/25 11:21:26

10 | 嵌入式软件测试中如何进行安全性分析?

  • 1 简介
  • 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 简介
    • 3.2 常用建立故障树的符号
    • 3.3 FTA实例
  • 4 安全性分析生命周期
    • 4.1 基于MOD-00-56的安全性生命周期
    • 4.2 测试基础
    • 4.3 测试活动

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 测试活动

  • 以下为集中进行影响分析并采取矫正措施:
    在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/746142.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Prompt本质解密及Evaluation实战与源码解析(三)

9.5 Evaluation for QA源码解析 如图9-4所示,我们看一下LangChain框架对问答评估的(Evaluation for QA)的源代码。 图9- 5 LangChain的evaluation qa目录 在eval_prompt.py文件里面,主要定义了三个类 PromptTemplate,它们都是用于生成题目的模板。 Gavin大咖微信:NLP_Mat…

跨端技术栈综合考察:深入剖析 UniApp、Flutter、Taro 和 React Native 的优势与限制

文章目录 📈UniApp⚡概念⚡优势⚡限制 📈Flutter⚡概念⚡优势⚡限制 📈Taro⚡概念⚡优势⚡限制 📈React Native⚡概念⚡优势⚡限制 📈跨端技术栈对比附录:「简历必备」前后端实战项目(推荐&…

强化学习快速复习笔记--待更新

目录 蒙特卡洛方法动态规划算法策略迭代 时序差分方法Sarsa算法Q-learning算法如何区分在线学习和离线学习DQN深度强化Q学习概念介绍代码解析 DQN改进算法Double DQN网络 蒙特卡洛方法 求解价值函数和状态价值函数,可以使用蒙特卡洛方法和动态规划。首先介绍一下蒙…

25-分布式事务----Seate

1、seate 官网:Seata Seata 是一款开源的分布式事务解决方案,致力于提供高性能和简单易用的分布式事务服务。Seata 将为用户提供了 AT、TCC、SAGA 和 XA 事务模式,为用户打造一站式的分布式解决方案。 1.1、Seata术语 TC (Transaction Coordinator) - 事务协调者…

mysql 执行sql开启事务

SHOW VARIABLES LIKE autocommit;SET autocommit 0; INSERT INTO sugar.realmauctiondatum(Id, Name) VALUES (3, A); INSERT INTO sugar.realmauctiondatum(Id, Name) VALUES (1, A); COMMIT;如果没有调用COMMIT;退出session时会执行回滚

python 面向对象之继承

文章目录 前言继承的概念单继承多继承子类重写父类的同名方法和属性子类调用父类同名的方法和属性多层继承私有权限 前言 前面我们已经学习了 python 面向对象的类和对象,那么今天我将为大家分享面向对象的三大特性之一:继承。 继承具有以下特性&#…

怎么使用文件高速传输,推荐镭速高速文件传输解决方案

​​随着互联网的发展,文件传输越来越频繁,如何实现文件高速传输已经越来越成为企业发展过程中需要解决的问题,在当今的业务中,随着与客户和供应商以及内部系统的所有通信的数据量不断增加,对 高速文件传输解决方案的需…

全网最新项目:会说话的汤姆猫直播搭建教程(附教学流程)

今天为大家分享一个 汤姆猫直播搭建项目 ,这个项目最近可以说在圈内爆火,我相信很多朋友以前应该都玩过,或者说给自己家小孩子玩过。 -------------------------------------------------------------------- 课程获取:www.yn521.cn/160852…

RabbitMQ【笔记整理+代码案例】

1. 消息队列 1.1. MQ 的相关概念 1.1.1. 什么是 MQ MQ(message queue),从字面意思上看,本质是个队列,FIFO 先入先出,只不过队列中存放的内容是message 而已,还是一种跨进程的通信机制,用于上下游传递消息…

Python应用:什么是爬虫?

文章目录 什么是爬虫虫之初,性本善?出行社交电商搜索引擎政府部门总结 面向监狱编程爬虫的君子协议什么是君子协议君子协议是怎么产生的?君子协议是什么内容?如何查看一个网站的robots协议违反君子协议的案例 参考文献 2022年初的…

装饰器模式:灵活扩展功能的设计利器

装饰器模式是一种结构型设计模式,它允许我们在不改变现有对象结构的情况下,动态地将新功能附加到对象上。本文将深入探讨装饰器模式的原理、结构和使用方法,并通过详细的 Java 示例代码来说明。 1. 装饰器模式的定义 装饰器模式是一种允许我…

Python: 如何批量预处理FY4A L1 DISK和REGC产品?(辐射定标/裁剪/GLT校正/HDF5转TIFF文件等)

目录 01 前言 1.1 想要说 1.2 Requirements 1.3 程序适用数据集 02 函数说明 2.1 读取HDF5文件某一数据集 2.2 读取HDF5文件数据集属性 2.3 对FY4A数据集进行辐射定标 2.4 基于官方地理对照表获取经纬度数据(仅适用DISK) 2.5 依据行列号计算经纬度数据(仅适用DISK) …

C++primer(第五版)第十八章(用于大型程序的工具)

不做大项目的话估计下面的都暂时用不到,包括下一章 大规模应用程序要求:能使用各种库进行协调开发(多人多文件编程);能在独立开发的子系统之间协同处理错误(说人话就是我用了你写的库结果报错了,我们得协调处理好出错的地方);能对比较复杂的应用概念进行建模(定义合理的类,函数…

(工具记录)Log4j2_RCE

0x00 简介 ApacheLog4j2是一个开源的Java日志框架,被广泛地应用在中间件、开发框架与Web应用中。 0x01 漏洞概述 该漏洞是由于Apache Log4j2某些功能存在递归解析功能,未经身份验证的攻击者通过发送特定恶意数据包,可在目标服务器上执行任意…

获取DNF人物坐标值

众所周知DNF是一个没有坐标值显示的游戏。 那么如何才能不碰内存和封包的情况下,获取DNF游戏中人物在当前房间的坐标值呢? 有兴趣的找我交流吧。

Go语言IO模式

Go语言IO模式 IO 操作是我们在编程中不可避免会遇到的,Go语言的 io 包中提供了相关的接口,定义了相应的规范,不同的数 据类型可以根据规范去实现相应的方法,提供更加丰富的功能。 本文主要介绍常见的 IO (输入和输出)模式&…

《MySQL》复合查询和连接

文章目录 查询单行子查询多行子查询合并查询 连接内连接外连接 点睛之笔:无论是多表还是单表,我们都可以认为只有一张表。 只要是表,就可以查询和连接成新表,所以select出来的结果都可以认为成一张表,既然是一张表&…

Python多线程使用详解

概要 多线程是一种并发编程的技术,通过同时执行多个线程来提高程序的性能和效率。在Python中,我们可以使用内置的threading模块来实现多线程编程。 一、创建线程 在使用多线程之前,我们首先需要了解如何创建线程。Python提供了threading模块…

你信不信,只要学几天javascript就可以使用纯原生实现五星评分效果 【附完整代码】

🚀 个人主页 极客小俊 ✍🏻 作者简介:web开发者、设计师、技术分享博主 🐋 希望大家多多支持一下, 我们一起进步!😄 🏅 如果文章对你有帮助的话,欢迎评论 💬点赞&#x1…

动态规划DP(七) 股票交易

1.股票交易 在股票买卖的最佳时机问题中,给定一个数组,数组中的每个元素代表某一天的股票价格。你可以进行多次买入和卖出,但是必须在再次购买前卖出之前的股票。目标是找到最大的利润。 动态规划可以用于解决股票交易类的问题,…