文章目录
- 1. 软件可靠性的概述
- 1.1 定义
- 1.1.1 规定的时间
- 1.1.2 规定的条件
- 1.1.3 所要求的功能
- 1.2 定义的特点和意义
- 1.3 注意点
- 2. 软件可靠性的定量描述
- 2.1 规定时间
- 2.1.1 自然时间
- 2.1.2 运行时间
- 执行时间
- 2.2 失效概率 F(t)
- 2.3 可靠度 R(t)
- 2.4 失效强度 f(t)
- 2.5 平均失效前时间(MTTF)
- 2.6 平均恢复前时间 (MTTR)
- 2.7 平均故障间隔时间(MTBF)
- 3. 可靠性目标
- 3.1 失效严重程度类
- 3.1.1 按对成本影响分类
- 3.1.2 按对系统能力的影响分类
- 3.2 可靠性目标
- 4. 可靠性测试
- 4.1 可靠性测试的意义
- 4.2 广义的可靠性测试
- 4.3 狭义的软件可靠性测试
1. 软件可靠性的概述
1.1 定义
- 定义:在
规定的时间
周期内,规定的条件
下,程序执行所要求的功能
的能力
下边对高亮部分详细阐述:
1.1.1 规定的时间
- 规定时间的量度:运行时间
- 运行时间:
- 包括软件系统运行后
工作
与挂起
的累计时间 - 属于随机变量
- 包括软件系统运行后
由于软件运行的环境与程序路径选取的随机性,软件的失效为随机事件,所以运行时间属于随机变量
1.1.2 规定的条件
-
指软件的运行环境。
- 包括:硬件环境、软件支持环境、确定的软件输入域
-
主要是描述:
- 软件系统运行时计算机的配置情况及对输入数据的要求
- 并假定其他一切因素都是理想的
-
可有效地判断软件失效的责任在用户方还是开发方
-
软件运行剖面(规定条件的另一种描述)
- 对系统使用条件的定义,即,关于软件可靠性描述中的规定条件
1.1.3 所要求的功能
- 功能不同导致可靠性不同的原因:
功能不同 —> 调用子模块不同 —> 可靠性不同
1.2 定义的特点和意义
- 其定义描述的特点:
- 用
内在缺陷
和外在失效
来描述可靠性 - 用
概率
的方法去描述可靠性
- 用
- 意义:使人们对软件可靠性进行量化评估成为可能
1.3 注意点
- 描述的软件对象必须明确(指明界限)
- 软件失效必须明确定义
- 必须假设硬件无故障、软件有关变量的输入值正确
- 规定的时间必须指明时间基准(见2.1)
2. 软件可靠性的定量描述
2.1 规定时间
- 系统处于稳定工作状态时,可根据经验,按比例换算以下三种
时间基准
2.1.1 自然时间
- 概念
- 即我们日历、时钟的显示的时间
- 如:9:00 开始 17:30 结束
2.1.2 运行时间
- 概念:
- 软件从启动到结束的时间
- 如,软件运行了8 小时
执行时间
- 概念
- 软件运行过程中,中央处理器 (CPU) 执行程序指令所用的时间总和
- 该方法度量软件可靠性最为准确
- 使用方法:系统处于稳定工作状态时,根据经验,按比例换算
2.2 失效概率 F(t)
-
概述:
- 从软件运行开始,到某一时刻 t为止,出现失效的概率
- 可以看作是关于软件运行时间的一个随机函数
- 表示:F(t)
-
特征
- F(0)=0:软件运行初始时刻失效概率为0
- F(t) 在时间域(0, + ∞ +\infty +∞) 上是单调递增的
- F( + ∞ +\infty +∞)=1:失效概率在运行时间不断增长时趋向于1
即,任何软件都存在缺陷
-
为了简化分析,把F(t) 看作关于时间 t 的一个连续函数,并且可导。
-
替代:可用模糊数学中的可能性替代
2.3 可靠度 R(t)
-
概述:
- 软件系统在规定的条件下、规定的时间内
不发生
失效的概率 直接
反映软件可靠性的度量指标- 是一种动态度量
- 软件系统在规定的条件下、规定的时间内
-
工式:R(t)=1-F(t)
-
特征:
- R(0)=1
- R( + ∞ +\infty +∞)=0
-
另一中表述:表示软件成功执行一个
回合
的概率 -
软件回合 (Run):
- 软件在规定环境下的一个基本执行过程
即,定一组输入数据,到软件给定相应的输出数据这一过程
- 是软件运行最小的、不可分的执行单位
2.4 失效强度 f(t)
- 概述:(
公式需要和书上对比
)- Failure Intensity
- 单位时间软件系统出现失效的概率
- 表示:f(t)
- 公式:
说明:- t 到 t+△t时刻,软件系统出现失效的平均概率为 (F(t+△t)-f(t))/△t, 当△t趋于很小时,就表现为 t时刻的失效强度
2.5 平均失效前时间(MTTF)
-
概念:
- Mean Time To Failure
- 定义为从t=0时到故障发生时系统的持续运行时间的值
-
公式:
-
不可修复系统的系统平均寿命:系统在失效前的平均时间
2.6 平均恢复前时间 (MTTR)
- 概念
- Mean Time To Restoration
- 出现故障到修复成功的时间
- 包括:
- 确认失效发生所必需的时间
- 记录所有任务的时间
- 将设备重新投入使用的时间
- MTTR越短表示易恢复性越好
2.7 平均故障间隔时间(MTBF)
- 概念:
- Mean Time Between Failures
- 失效或维护中所需的平均时间
- 包括:
- 故障时间
- 检测和维护设备的时间
- 特点:MTBF=MTTF+MTTR
3. 可靠性目标
- 对软件运行的影响程度不仅取决于软件失效发生的
概率
,还和软件失效的严重程度
有很大关系
3.1 失效严重程度类
- 概念:
- Failure Severity Class
- 对用户具有相同程度影响的失效集合
3.1.1 按对成本影响分类
-
其影响包括:
- 失效引起的额外运行成本
- 修复和恢复成本
- 现有或潜在的业务机会的损失等
-
示例
3.1.2 按对系统能力的影响分类
- 其影响包括:
- 关键数据的损失
- 系统异常退出、系统崩溃
- 导致用户操作无效等
- 示例
3.2 可靠性目标
-
概述:
- 指客户对软件性能满意程度的期望
- 描述:一般用可靠度、故障强度、平均失效时间等指标
- 确定可靠性目标:失效严重程度 + 失效强度
-
示例(可靠性目标参考表)
失效严重程度 | 可靠性要求(%) | 失效强度 | 平均无失效时间 |
---|---|---|---|
1 | 99.9999 | 10-6 | 114年 |
2 | 99.99 | 10-4 | 417天 |
3 | 99 | 10-1 | 4天 |
4 | 90 | 1 | 9小时 |
4. 可靠性测试
4.1 可靠性测试的意义
-
软件失效可能造成灾难性的后果
-
软件的失效在整个计算机系统失效中的比例较高
- 原因:
- 软件系统的复杂性
- 无法用全路径方式测试
- 计算机系统的失效中,有80%和软件有关
-
4.3 软件可靠性技术不成熟
-
4.4 软件可靠性问题造成软件费用增长
软件可靠性问题是造成费用增长的主要原因之一
-
4.5 系统对软件的依赖性增强,使得可靠性测试更重要
4.2 广义的可靠性测试
- 概述:
- 指为了最终评价软件系统的可靠性而运用建模、统计、试验、分析和评价等一系列手段对软件系统实施的一种测试
- 完整过程:
4.3 狭义的软件可靠性测试
-
概述:
- 即,我们通常所说的可靠性测试(Software Reliability Test)
- 概念:
- 指为了获取
可靠性数据
- 针对软件的某个
重要质量特性
,按预先确定的测试用例
- 在软件的
预期使用环境
中,对软件实施的一种测试
- 指为了获取
- 是面向缺陷的测试
-
目的
- 发现软件系统在需求、设计、编码、测试和实施等方面的各种缺陷
- 为软件的使用和维护提供可靠性数据
- 确认软件是否达到可靠性的定量要求