《系统架构设计师教程(第2版)》第9章-软件可靠性基础知识-05-软件可靠性测试

文章目录

  • 1. 概述
  • 2. 定义软件运行剖面
    • 2.1 软件的使用行为建模
    • 2.2 输入域分层
    • 2.3 弧上的概率分配
    • 2.4 其他注意点
  • 3. 可靠性测试用例设计
  • 4. 可靠性测试的实施
    • 4.1 测试前检查
    • 4.2 注意点
    • 4.2 可靠性测试的难点
      • 1)失效判断的主观性
      • 2)计算的错误结果不易被发现
    • 4.3 用时间定义的可靠性数据
    • 4.4 测试记录包含的信息
    • 4.5 测试报告

1. 概述

  • 其主要活动:可靠性目标的确定、运行剖面的开发、测试用例的设计、测试实施、测试结果的分析

2. 定义软件运行剖面

【扩展】

  • 马尔可夫链:
    • 是一种随机过程,它描述了系统在不同状态之间的转移概率
    • 系统的未来状态仅取决于当前状态,而与过去的状态无关
  • 弧:在软件运行剖面中,用来表示软件系统在不同状态之间转换的一种抽象

2.1 软件的使用行为建模

  • 建模过程:
    • 马尔可夫链输入域编码为一个代表用户观点的软件使用的状态集
    • 连接两个状态,它表示由各种激励导致的状态转换
    • 转换概率分配给每个弧

2.2 输入域分层

  • 两种类型的分层形式:
    • 用户级分层:依赖于谁能激励系统
    • 用法级分层:依赖于在测试状态下,能做什么

2.3 弧上的概率分配

  • 分配考虑因素:

    • 从现有系统收集到的数据
    • 与用户的交谈或对用户进行观察获得的信息
    • 原型使用与测试分析的结果。
    • 相关领域专家的意见。
  • 分配方法

    • 最佳方法:使用实际的用户数据

      如来自系统原型、前一版本的使用数据;

    • 其次:是由该软件应用领域的用户和专家提供的预期使用数据

    • 最差情况(无数据情况):将每个状态现有的弧分配相同的概率

2.4 其他注意点

  1. 运行剖面的开发与定义必须充分分析和考虑软件的实际运行情况
    • 软件可靠性行为是相对于软件实际的运行剖面而言的
    • 同一软件在不同运行剖面下其可靠性表现可能大不相同
  2. 剖面上很小比例的操作可能占很大的故障比例

飞机的飞行控制软件,在正常飞行、起飞、降落、地面运动和地面等待这5个状态中,尽管起飞和降落在运行剖面上只占有很小的百分比,但是它们却占有很大的故障比例。

  1. 一个产品有可能需要开发多个运行剖面
    • 边界、跃迁情况、关键功能通常单独定义运行剖面

3. 可靠性测试用例设计

  • 测试用例的选择方法:

    • 在运行剖面中的每个元素都定量地赋予一个发生概率值和关键因子
    • 根据这些因素分配测试资源,挑选和生成测试用例
  • 测试用例考虑因素:

    • 既要有一般情况,也应有极限情况、最大和最小的边界值情况
    • 易于发现缺陷的测试用例和数据
  • 测试用例的组成部分

    • 测试用例标识
    • 被测对象
    • 测试环境及条件
    • 测试输入
    • 操作步骤
    • 预期输出
    • 判断输出结果是否符合标准
    • 测试对象的特殊需求
  • 可靠性测试用例考虑的特殊情况

在这里插入图片描述

4. 可靠性测试的实施

4.1 测试前检查

  • 检查软件需求与设计文档是否一致
  • 检查文档的准确性、完整性以及与程序的一致性
  • 检查所交付程序和数据以及相应的软件支持环境是否符合要求

4.2 注意点

  • 要补充的非统计性测试,需要在可靠性测试之前
  • 开发方交付的任何软件文档中与可靠性质量特性有关的部分、程序以及数据都应当按照需求说明和质量需求进行测试
  • 在项目合同、需求说明书和用户文档中规定的所有配置情况下,程序和数据都必须进行测试。
  • 获得更多的可靠性数据,可使用多台计算机同时运行软件,以增加累计运行时间

4.2 可靠性测试的难点

  • 其难点是:判断测试用例的运行是否成功
  • 原因如下:

1)失效判断的主观性

一般应用系统中,失效的定义较主观些,它不仅依赖于程序是否符合规格说明的要求,也取决于指定的性能是否能够达到用户的期望。

2)计算的错误结果不易被发现

如:在一些科学计算中,计算结果只能由计算机给出,在这种情况下,如果软件只是输出了错误的结果而不是整个系统发生失效,错误就不可能被发现。

  • 解决方案一:将测试分成两个阶段进行
    • 第一阶段运行较少量的测试用例,并对照规范进行仔细检查
    • 第二阶段再运行大量测试用例,仅找出失效现象
  • 解决方案二:把输出记录到文件中,采用搜索或过滤方法进行处理
    • 条件:软件有足够的可测试性
    • 优点:不会遗漏错误

4.3 用时间定义的可靠性数据

可分为以下四类:

  • 失效时间数据:记录发生一次失效所累积经历的时间
  • 失效间隔时间数据:记录本次失效与上一次失效间的间隔时间
  • 分组时间内的失效数:记录某个时间区内发生了多少次失效。
  • 分组时间的累积失效数:记录到某个区间的累积失效数。

4.4 测试记录包含的信息

  • 测试时间
  • 含有测试用例的测试说明或标识
  • 所有与测试有关的测试结果,包括失效数据
  • 测试人员。

4.5 测试报告

测试活动结束后要编写《软件可靠性测试报告》,对测试用例及测试结果在测试报告中加以总结归纳、剪裁。其内容如下:

  • 软件产品标识
  • 测试环境配置
  • 测试依据
  • 测试结果
  • 测试问题
  • 测试时间

在这里插入图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

5_vscode+valgrind+gdb调试程序

需求 项目程序, 读取串口数据, 出现程序崩溃问题valgrind 可以调试定位内存问题: 内存泄漏,非法地址访问,越界访问等内存问题vscode gdb 可视化调试效果, 比命令行简单快捷很多期望使用vscode valgrind gdb 调试程序内存异常, 崩溃退出的问题 环境准备 sudo apt install v…

论文笔记:(INTHE)WILDCHAT:570K CHATGPT INTERACTION LOGS IN THE WILD

iclr 2024 spotlight reviewer 评分 5668 1 intro 由大型语言模型驱动的对话代理(ChatGPT,Claude 2,Bard,Bing Chat) 他们的开发流程通常包括三个主要阶段 预训练语言模型在被称为“指令调优”数据集上进行微调&…

Pytorch-张量形状操作

😆😆😆感谢大家的观看😆😆 🌹 reshape 函数 transpose 和 permute 函数 view 和 contigous 函数 squeeze 和 unsqueeze 函数 在搭建网络模型时,掌握对张量形状的操作是非常重要的&#xff…

JVM虚拟机(九)如何开启 GC 日志

目录 一、引言二、开启 GC 日志三、解析 GC 日志四、优化建议 一、引言 在 Java 应用程序的运行过程中,垃圾收集(Garbage Collection,简称 GC)是一个非常重要的环节。GC 负责自动管理内存,回收不再使用的对象所占用的…

25 vs code配置

1.中文语言 搜索chinese,安装,等待重新打开 2.remote ssh 安装后F1打开,输入adduser 输入ssh [用户名][主机ip],添加主机,然后选择保存配置文件 如果出现管道不存在,设置一下 如果出问题,也…

VBA脚本: excel隐藏和展开指定行 【图文】

打开开发工具功能 【文件】-》【选项】-》【自定义功能区】-》勾选【开发工具】-》【确定】 代开VBA编辑器 【开发工具】-》【Visual Basic】 插入模块 编写代码 所有sheet 关闭 Sub HideRowsInAllSheets()Dim ws As WorksheetDim i As Integer 循环遍历所有工作表For E…

YOLOv8改进 | 知识蒸馏 | 利用模型蒸馏改进YOLOv8进行无损涨点(在线蒸馏 + 离线蒸馏)

一、本文介绍 这篇文章给大家带来的是模型的蒸馏,利用教师模型指导学生模型从而进行模型的涨点,本文的内容不仅可以用于论文中,在目前的绝大多数的工作中模型蒸馏是一项非常重要的技术,所以大家可以仔细学习一下本文的内容&#…

Spring Boot 处理过滤器(filter )中抛出的异常

前言: 在改造老项目登录功能的时候,使用了过滤器对 token 进行有效性验证,验证通过继续进行业务请求,验证不通过则抛出校验异常。 过程: 技术方案拟定后,就着手开始改造,一切都很顺畅&#x…

大数据平台搭建2024(二)

二:Hive安装 只在node01上操作 1 安装MySQL 8.0 最小化安装需要安装这个 yum install -y wget1-1 下载MySQL的yum源 wget http://dev.mysql.com/get/mysql80-community-release-el7-7.noarch.rpm检查是否安装成功 rpm -qpl mysql80-community-release-el7-7.n…

【YOLO系列PR、F1绘图】更改v5、v7、v8(附v8训练、验证方式),实现调用val.py或者test.py后生成pr.csv,然后再整合绘制到一张图上(使用matplotlib绘制)

目录 1. 前提 效果图2. 更改步骤2.1 得到PR_curve.csv和F1_curve.csv2.1.1 YOLOv7的更改2.1.1.1 得到PR_curve.csv2.2.1.2 得到F1_curve.csv 2.1.2 YOLOv5的更改(v6.1版本)2.1.3 YOLOv8的更改(附训练、验证方式) 2.2 绘制PR曲线 …

牛客-环形链表的约瑟夫问题

目录 题目 描述 示例1 示例2 图解 代码(解析在注释中) 题目 描述 编号为 1 到 n 的 n 个人围成一圈。从编号为 1 的人开始报数,报到 m 的人离开。 下一个人继续从 1 开始报数。 n-1 轮结束以后,只剩下一个人,问最后留下的这个人编号…

zabbix 自动发现与自动注册 部署 zabbix 代理服务器

zabbix 自动发现(对于 agent2 是被动模式) zabbix server 主动的去发现所有的客户端,然后将客户端的信息登记在服务端上。 缺点是如果定义的网段中的主机数量多,zabbix server 登记耗时较久,且压力会较大。1.确保客户端…

Qt | 事件第二节

Qt | 事件第一节书接上回 四、事件的接受和忽略 1、事件可以被接受或忽略,被接受的事件不会再传递给其他对象,被忽略的事件会被传递给其他对象处理,或者该事件被丢弃(即没有对象处理该事件) 2、使用 QEvent::accept()函数表示接受一个事件,使用 QEvent::ignore()函数表示…

认识异常(1)

❤️❤️前言~🥳🎉🎉🎉 hellohello~,大家好💕💕,这里是E绵绵呀✋✋ ,如果觉得这篇文章还不错的话还请点赞❤️❤️收藏💞 💞 关注💥&a…

OpenHarmony南向开发实例:【游戏手柄】

介绍 基于TS扩展的声明式开发范式编程语言,以及OpenHarmony的分布式能力实现的一个手柄游戏。 完成本篇Codelab需要两台开发板,一台开发板作为游戏端,一台开发板作为手柄端,实现如下功能: 游戏端呈现飞机移动、发射…

python生成二维码

要在Python中生成二维码,可以使用第三方库qrcode。首先,确保已经安装了qrcode库: pip install qrcode然后,使用以下代码生成二维码: import qrcodedata "https://mp.csdn.net/mp_blog/creation/editor?spm100…

项目7-音乐播放器2(上传音乐+查询音乐+拦截器)

0.加入拦截器 之后就不用对用户是否登录进行判断了 0.1 定义拦截器 0.2 注册拦截器 生效 1.上传音乐的接口设计 请求: { post, /music/upload {singer,MultipartFile file}, } 响应: { "status": 0, "message&…

Promise简单概述

一. Promise是什么? 理解 1.抽象表达: Promise是一门新的技术(ES6规范) Promise是JS中进行异步编程的新解决方案(旧方案是单纯使用回调函数) 异步编程:包括fs文件操作,数据库操作(Mysql),AJAX,定时器 2.具…

RK3568笔记二十二:基于TACO的垃圾检测和识别

若该文为原创文章,转载请注明原文出处。 基于TACO数据集,使用YOLOv8分割模型进行垃圾检测和识别,并在ATK-RK3568上部署运行。 一、环境 1、测试训练环境:AutoDL. 2、平台:rk3568 3、开发板: ATK-RK3568正点原子板子…

大创项目推荐 深度学习YOLOv5车辆颜色识别检测 - python opencv

文章目录 1 前言2 实现效果3 CNN卷积神经网络4 Yolov56 数据集处理及模型训练5 最后 1 前言 🔥 优质竞赛项目系列,今天要分享的是 🚩 **基于深度学习YOLOv5车辆颜色识别检测 ** 该项目较为新颖,适合作为竞赛课题方向&#xff0…