当前位置: 首页 > news >正文

《系统架构设计师教程(第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 测试报告

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

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

在这里插入图片描述

相关文章:

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

文章目录 1. 概述2. 定义软件运行剖面2.1 软件的使用行为建模2.2 输入域分层2.3 弧上的概率分配2.4 其他注意点 3. 可靠性测试用例设计4. 可靠性测试的实施4.1 测试前检查4.2 注意点4.2 可靠性测试的难点1)失效判断的主观性2)计算的错误结果不易被发现 4…...

uni-app vue3 setup 如何使用 onShow

在uni-app中&#xff0c;onShow是uni.onAppShow的别名&#xff0c;用于监听当前小程序被用户切换到前台运行时触发。在Vue 3中&#xff0c;你可以通过以下方式使用onShow&#xff1a; 在页面的vue文件中添加onShow方法&#xff1a; javascript <button click“onShow”&g…...

linux学习:进程(新建+运行某文件+退出处理函数+等待)

目录 api 创建新进程 注意 运行某文件 例子 注意 例子&#xff0c;等待进程 进程是由进程控制块、程序段、数据段三部分组成 进程有都有一个父进程&#xff0c;除了init&#xff0c;父进程可以创建子进程 每个进程都有一个PID&#xff0c;可以用ps来查看&#xff0c;等…...

Leetcode. 12 整数转罗马数字

罗马数字包含以下七种字符&#xff1a; I&#xff0c; V&#xff0c; X&#xff0c; L&#xff0c;C&#xff0c;D 和 M。 字符 数值 I 1 V 5 X 10 L 50 C 100 D 500 M 1000 例…...

【uniapp】request请求函数封装,token、成功、失败等

1、封装http.ts //utils--->http.ts/*** 添加拦截器* 拦截request请求* 拦截uploadFile文件上传** TODO* 1、非http开头需要拼接地址* 2、请求超时* 3、添加小程序端请求头标识* 4、添加token请求头标识*/ import { useMemberStore } from /stores/index const member…...

0基础如何入门编程?

0基础如何进入IT行业 &#xff1f; 前言 简介&#xff1a;对于没有任何相关背景知识的人来说&#xff0c;如何才能成功进入IT行业&#xff1f;是否有一些特定的方法或技巧可以帮助他们实现这一目标&#xff1f; 主要方法有如下几点建议提供给宝子们 目录 免费视频网课学习…...

Go 单元测试基本介绍

文章目录 引入一、单元测试基本介绍1.1 什么是单元测试&#xff1f;1.2 如何写好单元测试1.3 单元测试的优点1.4 单元测试的设计原则 二、Go语言测试2.1 Go单元测试概要2.2 Go单元测试基本规范2.3 一个简单例子2.3.1 使用Goland 生成测试文件2.3.2 运行单元测试2.3.3 完善测试用…...

uniapp 上传视频到阿里云之后回显视频获取视频封面

uniapp 上传视频到阿里云之后回显视频获取视频封面 官网的解决方案 1.initial-time Number 指定视频初始播放位置&#xff0c;单位为秒&#xff08;s&#xff09;。 没什么卵用 2.使用 uni.createVideoContext(“myVideo”, this).seek(number)。 没什么卵用 <video :id&quo…...

使用undetected-chromedriver遇到的问题及解决方法,以及它使用SOCKS代理的问题

环境&#xff1a;python3.8.10 uc的安装方法&#xff1a; pip38 install undetected-chromedriver 上测试代码&#xff1a; import undetected_chromedriver as uc driver uc.Chrome() driver.get(https://www.baidu.com) driver.save_screenshot(baidu.png)报错&#xff…...

Hadoop入门学习路线

目录 一、基础理论学习 二、安装与配置 三、Hadoop安装与部署 四、实践操作与项目练习 五、进阶学习 六、学习资源推荐 一、基础理论学习 了解Hadoop的起源、发展历程及其在大数据领域的重要性。 掌握Hadoop的核心组件及其作用&#xff0c;包括HDFS&#xff08;分布式文件…...

Python中的设计模式与最佳实践【第166篇—设计模式】

&#x1f47d;发现宝藏 前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;忍不住分享一下给大家。【点击进入巨牛的人工智能学习网站】。 Python中的设计模式与最佳实践 在软件开发中&#xff0c;设计模式是一种解决常见问题的经过…...

Python赋能AI数据分析开启人工智能新时代

文章目录 一、Python是办公自动化的重要工具二、Python是提升职场竞争力的利器三、Python是企业数字化的重要平台四、Python是AI发展的重要通道之一《编程菜鸟学Python数据分析》编辑推荐内容简介作者简介目录前言为什么要写这本书读者对象如何阅读本书 随着我国企业数字化和信…...

TP5使用group报错:1055 Expression #1 of SELECT list is not in GROUP

使用group报错 Mysql环境是5.7的, 使用了View进行了表连接, 进行了表连接 搬迁到本地后, 查询报错 Syntax error or access violation: 1055 Expression 解决方法1 配置 my.cnf(linux)文件 win下面是 mysql.ini文件 在 mysqld 里加上 sql_modeNO_ENGINE_SUBSTITUTION,STR…...

SQL-DML数据操纵语言(Oracle)

文章目录 DML数据操纵语言常见的字段属性字符型字段属性char(n)varchar2(n)/varchar(n) 数值型字段属性number([p],[s]int 日期型字段属性DATEtimestamp 如何查看字段属性增加数据INSERT快捷插入 删除数据DELETE修改数据UPDATE DML数据操纵语言 定义 是针对数据做处理&#xf…...

springboot+axios传参问题

目录 get请求方式: 不携带参数: 携带参数 第一种方式: 第二种传参方式: post方式: 携带参数: 第一种方式: 第二种方式:...

(BERT蒸馏)TinyBERT: Distilling BERT for Natural Language Understanding

文章链接&#xff1a;https://arxiv.org/abs/1909.10351 背景 在自然语言处理&#xff08;NLP&#xff09;领域&#xff0c;预训练语言模型&#xff08;如BERT&#xff09;通过大规模的数据训练&#xff0c;已在多种NLP任务中取得了卓越的性能。尽管BERT模型在语言理解和生成…...

【数据结构|C语言版】双向链表

前言1. 初步认识双向链表1.1 定义1.2 结构1.3 储存 2. 双向链表的方法&#xff08;接口函数&#xff09;2.1 动态申请空间2.2 创建哨兵位2.3 查找指定数据2.4 指定位置插入2.5 指定位置删除2.6 头部插入2.7 头部删除2.8 尾部插入2.9 尾部删除2.10 计算链表大小2.11 销毁链表 3.…...

适用于 Windows 的 10 个顶级 PDF 编辑器 [免费和付费]

曾经打开PDF文件&#xff0c;感觉自己被困在数字迷宫中吗&#xff1f;无法编辑的文本、无法调整大小的图像以及签署感觉像是一件苦差事的文档&#xff1f;好吧&#xff0c;不用再担心了&#xff01;本指南解开了在 Windows 上掌握 PDF 的秘密&#xff0c;其中包含 10 款适用于 …...

久菜盒子|留学|推荐信|活动类|改性伽马-三氧化二铝催化剂上甲醇制备二甲醚的研究项目

尊敬的录取委员会: 我是华东理工大学化工学院的刘殿华。非常荣幸在此推荐我校优秀学生 XXX 进入贵校学习。 我认识 XXX是在一年前&#xff0c;当时&#xff0c;我正计划做一个有关改性伽马-三氧化二铝催化剂上甲醇制备二甲醚的研究项目。XXX 找到了我&#xff0c;表示希望能够加…...

Java项目如何使用EasyExcel插件对Excel数据进行导入导出

文章目录 一、EasyExcel的示例导入依赖创建实体类数据导入和导出 二、EasyExcel的作用三、EasyExcel的注解 EasyExcel是一个阿里巴巴开源的excel处理框架&#xff0c;它以使用简单、节省内存著称。在解析Excel时&#xff0c;EasyExcel没有将文件数据一次性全部加载到内存中&…...

python标准库常用方法集合

前段时间准备第十五届蓝桥杯python a组&#xff0c;因为赛中不允许导包&#xff0c;因此对py中的标准库进行了笔记和总结&#xff0c;即不导包即可使用的常用方法。包含了内置函数、math、random、datetime、os、sys、re、queue、collections、itertools库的常用方法&#xff0…...

智谱AI通用大模型:官方开放API开发基础

目录 一、模型介绍 1.1主要模型 1.2 计费单价 二、前置条件 2.1 申请API Key 三、基于SDK开发 3.1 Maven引入SDK 3.2 代码实现 3.3 运行代码 一、模型介绍 GLM-4是智谱AI发布的新一代基座大模型&#xff0c;整体性能相比GLM3提升60%&#xff0c;支持128K上下文&#x…...

单片机家电产品--OC门电路

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 单片机家电产品–OC门电路 前言 记录学习单片机家电产品内容 已转载记录为主 一、知识点 1OC门电路和OD门电路的区别 OC门电路和OD门电路的区别 OC门&#xff1a;三极管…...

gcc常用命令指南(更新中...)

笔记为gcc常用命令指南&#xff08;自用&#xff09;&#xff0c;用到啥方法就具体研究一下&#xff0c;更新进去... 编译过程的分布执行 64位系统生成32位汇编代码 gcc -m32 test.c -o test -m32用于生成32位汇编语言...

【深度学习】【机器学习】用神经网络进行入侵检测,NSL-KDD数据集,基于机器学习(深度学习)判断网络入侵,网络攻击,流量异常【3】

之前用NSL-KDD数据集做入侵检测的项目是&#xff1a; 【1】https://qq742971636.blog.csdn.net/article/details/137082925 【2】https://qq742971636.blog.csdn.net/article/details/137170933 有人问我是不是可以改代码&#xff0c;我说可以。 训练 我将NSL_KDD_Final_1.i…...

两步解决 Flutter Your project requires a newer version of the Kotlin Gradle plugin

在开发Flutter项目的时候,遇到这个问题Flutter Your project requires a newer version of the Kotlin Gradle plugin 解决方案分两步: 1、在android/build.gradle里配置最新版本的kotlin 根据提示的kotlin官方网站搜到了Kotlin的最新版本是1.9.23,如下图所示: 同时在Ko…...

ArcGIS加载的各类地图怎么去除服务署名水印

昨天介绍的&#xff1a; 一套图源搞定&#xff01;清新规划底图、影像图、境界、海洋、地形阴影图、导航图-CSDN博客文章浏览阅读373次&#xff0c;点赞7次&#xff0c;收藏11次。一体化集成在一起的各类型图源&#xff0c;比如包括影像、清新的出图底图、地形、地图阴影、道路…...

AttributeError: module ‘cv2.face’ has no attribute ‘LBPHFaceRecognizer_create’

问题描述&#xff1a; 报错如下&#xff1a; recognizer cv2.face.LBPHFaceRecognizer_create() AttributeError: module ‘cv2.face’ has no attribute ‘LBPHFaceRecognizer_create’ 解决方案&#xff1a; 把opencv-python卸载了&#xff0c;然后安装ope…...

配置路由器实现互通

1.实验环境 实验用具包括两台路由器(或交换机)&#xff0c;一根双绞线缆&#xff0c;一台PC&#xff0c;一条Console 线缆。 2.需求描述 如图6.14 所示&#xff0c;将两台路由器的F0/0 接口相连&#xff0c;通过一台PC 连接设备的 Console 端口并配置P地址&#xff08;192.1…...

Google Guava第五讲:本地缓存实战及踩坑

本地缓存实战及踩坑 本文是Google Guava第五讲,先介绍为什么使用本地缓存;然后结合实际业务,讲解如何使用本地缓存、清理本地缓存,以及使用过程中踩过的坑。 文章目录 本地缓存实战及踩坑1、缓存系统概述2、缓存架构演变2.1、无缓存架构2.2、引入分布式缓存问题1:为什么选…...

做课宝官方网站/俄罗斯搜索引擎浏览器

本文实例讲述了Python实现模拟登录及表单提交的方法。分享给大家供大家参考。具体实现方法如下&#xff1a; # -*- coding: utf-8 -*- import re import urllib import urllib2 import cookielib #获取CSDN博客标题和正文 url "http://blog.csdn.net/[username]/archive/…...

网站建设 总结/seowhy

路桥施工现场十大员《技术操作标准规范手册》实用性强&#xff0c;免费领&#xff01;关键词&#xff1a;施工员、质量员、材料员、定额员、安全员、测量员、检验员、机械员、资料员和现场电工&#xff0c;造价、施工、清单、计价等等路桥施工现场十大员《技术操作标准规范手册…...

做网站推广需要什么专业/永久免费制作网页

ASM镜像和磁盘组冗余2017-10-31 Oracle 宅必备上节讲了磁盘发现的内容&#xff0c;这节内容详细讲解写ASM镜像和故障组1. ASM MirroringASM可以为ASM 文件提供镜像服务&#xff0c;做法为将不同的文件区拷贝放在故障组中&#xff0c;这样可以保证文件副本不会存放在同个故障组中…...

简单网站建设课程/百度的网址是什么呢

该楼层疑似违规已被系统折叠 隐藏此楼查看此楼/*通过double指针从用户那里获得10个数字&#xff0c;然后对他们进行排序&#xff0c;并将它们打印到屏幕上*/#include#include#define N 10void paixu( double *b[] );void print( double **b );void free_memory( double *b[]);i…...

聊城 网站制作/百度收录提交网站后多久收录

俄罗斯C语言经典代码(国外英文资料)俄罗斯C语言经典代码(国外英文资料)# include < DOS. H ># include < conio. H ># include < graphics. H ># include < stdlib. H ># ifdef __cplusplus# define __CPPARGS...# the else# define __CPPARGS# endif#…...

可以做司法考试题的网站/十大永久免费的软件下载

传送门 又一个没有上司的舞会 这个dp有环 妈妈怎么办啊 要不...环上随便断一条边? 然后最后选的时候分别取两个根节点不选的情况的最大值 几个要点: 1.图可能是多个环套树 要循环走完 2.不能只记录顶点 因为如果有重边的话会把二元环筛掉 3.位运算优先级... 要写成(i^1)cntlin…...