《系统架构设计师教程(第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 其他注意点
- 运行剖面的开发与定义必须充分分析和考虑软件的实际运行情况
- 软件可靠性行为是相对于软件实际的运行剖面而言的
- 同一软件在不同运行剖面下其可靠性表现可能大不相同
- 剖面上很小比例的操作可能占很大的故障比例
飞机的飞行控制软件,在正常飞行、起飞、降落、地面运动和地面等待这5个状态中,尽管起飞和降落在运行剖面上只占有很小的百分比,但是它们却占有很大的故障比例。
- 一个产品有可能需要开发多个运行剖面
- 边界、跃迁情况、关键功能通常单独定义运行剖面
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中,onShow是uni.onAppShow的别名,用于监听当前小程序被用户切换到前台运行时触发。在Vue 3中,你可以通过以下方式使用onShow: 在页面的vue文件中添加onShow方法: javascript <button click“onShow”&g…...
linux学习:进程(新建+运行某文件+退出处理函数+等待)
目录 api 创建新进程 注意 运行某文件 例子 注意 例子,等待进程 进程是由进程控制块、程序段、数据段三部分组成 进程有都有一个父进程,除了init,父进程可以创建子进程 每个进程都有一个PID,可以用ps来查看,等…...
Leetcode. 12 整数转罗马数字
罗马数字包含以下七种字符: I, V, X, L,C,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行业 ? 前言 简介:对于没有任何相关背景知识的人来说,如何才能成功进入IT行业?是否有一些特定的方法或技巧可以帮助他们实现这一目标? 主要方法有如下几点建议提供给宝子们 目录 免费视频网课学习…...
Go 单元测试基本介绍
文章目录 引入一、单元测试基本介绍1.1 什么是单元测试?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 指定视频初始播放位置,单位为秒(s)。 没什么卵用 2.使用 uni.createVideoContext(“myVideo”, this).seek(number)。 没什么卵用 <video :id&quo…...
使用undetected-chromedriver遇到的问题及解决方法,以及它使用SOCKS代理的问题
环境:python3.8.10 uc的安装方法: pip38 install undetected-chromedriver 上测试代码: import undetected_chromedriver as uc driver uc.Chrome() driver.get(https://www.baidu.com) driver.save_screenshot(baidu.png)报错ÿ…...
Hadoop入门学习路线
目录 一、基础理论学习 二、安装与配置 三、Hadoop安装与部署 四、实践操作与项目练习 五、进阶学习 六、学习资源推荐 一、基础理论学习 了解Hadoop的起源、发展历程及其在大数据领域的重要性。 掌握Hadoop的核心组件及其作用,包括HDFS(分布式文件…...
Python中的设计模式与最佳实践【第166篇—设计模式】
👽发现宝藏 前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。【点击进入巨牛的人工智能学习网站】。 Python中的设计模式与最佳实践 在软件开发中,设计模式是一种解决常见问题的经过…...
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数据操纵语言 定义 是针对数据做处理…...
springboot+axios传参问题
目录 get请求方式: 不携带参数: 携带参数 第一种方式: 第二种传参方式: post方式: 携带参数: 第一种方式: 第二种方式:...
(BERT蒸馏)TinyBERT: Distilling BERT for Natural Language Understanding
文章链接:https://arxiv.org/abs/1909.10351 背景 在自然语言处理(NLP)领域,预训练语言模型(如BERT)通过大规模的数据训练,已在多种NLP任务中取得了卓越的性能。尽管BERT模型在语言理解和生成…...
【数据结构|C语言版】双向链表
前言1. 初步认识双向链表1.1 定义1.2 结构1.3 储存 2. 双向链表的方法(接口函数)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文件,感觉自己被困在数字迷宫中吗?无法编辑的文本、无法调整大小的图像以及签署感觉像是一件苦差事的文档?好吧,不用再担心了!本指南解开了在 Windows 上掌握 PDF 的秘密,其中包含 10 款适用于 …...
久菜盒子|留学|推荐信|活动类|改性伽马-三氧化二铝催化剂上甲醇制备二甲醚的研究项目
尊敬的录取委员会: 我是华东理工大学化工学院的刘殿华。非常荣幸在此推荐我校优秀学生 XXX 进入贵校学习。 我认识 XXX是在一年前,当时,我正计划做一个有关改性伽马-三氧化二铝催化剂上甲醇制备二甲醚的研究项目。XXX 找到了我,表示希望能够加…...
Java项目如何使用EasyExcel插件对Excel数据进行导入导出
文章目录 一、EasyExcel的示例导入依赖创建实体类数据导入和导出 二、EasyExcel的作用三、EasyExcel的注解 EasyExcel是一个阿里巴巴开源的excel处理框架,它以使用简单、节省内存著称。在解析Excel时,EasyExcel没有将文件数据一次性全部加载到内存中&…...
STM32CubeIDE开发环境详解与实战指南
STM32CubeIDE开发环境全解析:从入门到实战1. 开发环境概述1.1 STM32CubeIDE核心特性STM32CubeIDE是基于Eclipse框架的集成开发环境,专为STM32微控制器设计。其主要技术特性包括:集成STM32CubeMX配置工具内置GCC编译工具链支持GDB调试接口跨平…...
Luau数据流分析技术:如何实现精准的类型推断
Luau数据流分析技术:如何实现精准的类型推断 【免费下载链接】luau A fast, small, safe, gradually typed embeddable scripting language derived from Lua 项目地址: https://gitcode.com/gh_mirrors/lu/luau Luau是一种快速、小巧、安全且支持渐进类型化…...
Unity WebGL输入优化:跨平台文本输入解决方案的技术突破
Unity WebGL输入优化:跨平台文本输入解决方案的技术突破 【免费下载链接】WebGLInput IME for Unity WebGL 项目地址: https://gitcode.com/gh_mirrors/we/WebGLInput 在Unity WebGL应用的开发过程中,文本输入功能一直是开发者面临的核心挑战。传…...
trt 动态batchsize优化:trtexec工具ONNX转engine实战指南
1. 为什么需要动态batchsize优化 在实际的AI模型部署中,我们经常会遇到输入数据量不固定的情况。比如视频分析场景,可能同时有1路或8路视频需要实时处理;又比如在线服务,请求量会随时间波动。这时候如果使用固定batchsize…...
WeChatExporter深度解析:如何三步搞定iOS微信聊天记录完整导出
WeChatExporter深度解析:如何三步搞定iOS微信聊天记录完整导出 【免费下载链接】WeChatExporter 一个可以快速导出、查看你的微信聊天记录的工具 项目地址: https://gitcode.com/gh_mirrors/wec/WeChatExporter 还在为无法备份微信聊天记录而烦恼吗ÿ…...
【Zynq 进阶一】深度解析 PetaLinux 存储布局:NAND Flash 分区与 DDR 内存分配全攻略
【Zynq 进阶】深度解析 PetaLinux 存储布局:NAND Flash 分区与 DDR 内存分配全攻略 文章目录【Zynq 进阶】深度解析 PetaLinux 存储布局:NAND Flash 分区与 DDR 内存分配全攻略📝 前言📦 第一部分:大局观——NAND 与 D…...
微信小程序身份证检测实战:从createVKSession版本兼容到真机调试全解析
1. 微信小程序身份证检测功能开发概述 最近在开发一个需要身份证识别功能的小程序时,遇到了一个让人头疼的问题:在开发者工具中运行正常,但真机调试时却报错"createVKSession:fail The current device does not support version v1&quo…...
Vue3+AI聊天室:如何实现消息自动滚动和流式响应?
Vue3AI聊天室:消息自动滚动与流式响应的工程实践 引言:当Vue3遇见AI对话 在构建现代化AI聊天应用时,流畅的交互体验往往比功能堆砌更重要。想象这样一个场景:用户发送问题后,界面立即开始逐字显示AI回复,同…...
3步实现Windows系统极致优化:Win11Debloat专业指南
3步实现Windows系统极致优化:Win11Debloat专业指南 【免费下载链接】Win11Debloat 一个简单的PowerShell脚本,用于从Windows中移除预装的无用软件,禁用遥测,从Windows搜索中移除Bing,以及执行各种其他更改以简化和改善…...
SWF逆向工程认证培训师手册:基于JPEXS Free Flash Decompiler的教学指南
SWF逆向工程认证培训师手册:基于JPEXS Free Flash Decompiler的教学指南 【免费下载链接】jpexs-decompiler JPEXS Free Flash Decompiler 项目地址: https://gitcode.com/gh_mirrors/jp/jpexs-decompiler JPEXS Free Flash Decompiler是一款开源的Flash SWF…...
