《系统架构设计师教程(第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没有将文件数据一次性全部加载到内存中&…...
JavaSec-RCE
简介 RCE(Remote Code Execution),可以分为:命令注入(Command Injection)、代码注入(Code Injection) 代码注入 1.漏洞场景:Groovy代码注入 Groovy是一种基于JVM的动态语言,语法简洁,支持闭包、动态类型和Java互操作性,…...
连锁超市冷库节能解决方案:如何实现超市降本增效
在连锁超市冷库运营中,高能耗、设备损耗快、人工管理低效等问题长期困扰企业。御控冷库节能解决方案通过智能控制化霜、按需化霜、实时监控、故障诊断、自动预警、远程控制开关六大核心技术,实现年省电费15%-60%,且不改动原有装备、安装快捷、…...
页面渲染流程与性能优化
页面渲染流程与性能优化详解(完整版) 一、现代浏览器渲染流程(详细说明) 1. 构建DOM树 浏览器接收到HTML文档后,会逐步解析并构建DOM(Document Object Model)树。具体过程如下: (…...
华硕a豆14 Air香氛版,美学与科技的馨香融合
在快节奏的现代生活中,我们渴望一个能激发创想、愉悦感官的工作与生活伙伴,它不仅是冰冷的科技工具,更能触动我们内心深处的细腻情感。正是在这样的期许下,华硕a豆14 Air香氛版翩然而至,它以一种前所未有的方式&#x…...
【Go语言基础【13】】函数、闭包、方法
文章目录 零、概述一、函数基础1、函数基础概念2、参数传递机制3、返回值特性3.1. 多返回值3.2. 命名返回值3.3. 错误处理 二、函数类型与高阶函数1. 函数类型定义2. 高阶函数(函数作为参数、返回值) 三、匿名函数与闭包1. 匿名函数(Lambda函…...
Linux 内存管理实战精讲:核心原理与面试常考点全解析
Linux 内存管理实战精讲:核心原理与面试常考点全解析 Linux 内核内存管理是系统设计中最复杂但也最核心的模块之一。它不仅支撑着虚拟内存机制、物理内存分配、进程隔离与资源复用,还直接决定系统运行的性能与稳定性。无论你是嵌入式开发者、内核调试工…...
2025年渗透测试面试题总结-腾讯[实习]科恩实验室-安全工程师(题目+回答)
安全领域各种资源,学习文档,以及工具分享、前沿信息分享、POC、EXP分享。不定期分享各种好玩的项目及好用的工具,欢迎关注。 目录 腾讯[实习]科恩实验室-安全工程师 一、网络与协议 1. TCP三次握手 2. SYN扫描原理 3. HTTPS证书机制 二…...
HTTPS证书一年多少钱?
HTTPS证书作为保障网站数据传输安全的重要工具,成为众多网站运营者的必备选择。然而,面对市场上种类繁多的HTTPS证书,其一年费用究竟是多少,又受哪些因素影响呢? 首先,HTTPS证书通常在PinTrust这样的专业平…...
Win系统权限提升篇UAC绕过DLL劫持未引号路径可控服务全检项目
应用场景: 1、常规某个机器被钓鱼后门攻击后,我们需要做更高权限操作或权限维持等。 2、内网域中某个机器被钓鱼后门攻击后,我们需要对后续内网域做安全测试。 #Win10&11-BypassUAC自动提权-MSF&UACME 为了远程执行目标的exe或者b…...
Qwen系列之Qwen3解读:最强开源模型的细节拆解
文章目录 1.1分钟快览2.模型架构2.1.Dense模型2.2.MoE模型 3.预训练阶段3.1.数据3.2.训练3.3.评估 4.后训练阶段S1: 长链思维冷启动S2: 推理强化学习S3: 思考模式融合S4: 通用强化学习 5.全家桶中的小模型训练评估评估数据集评估细节评估效果弱智评估和民间Arena 分析展望 如果…...
