定义
软件系统在应用或系统错误面前,在意外或错误使用的情况下维持软件系统的功能特征的基本能力
软件可靠性
软件产品在规定条件下和规定时间区间完成规定功能的能力
软硬件对比
- 复杂性:软件复杂度高,大部分失效来自软件失效
- 物理退化:硬件的失效主要物理退化导致,软件不存在物理退化
- 唯一性:软件唯一的,硬件不可能完全一样
- 版本更新周期:硬件较慢,软件较快
软件可靠性定量描述
可以基于使用条件、规定时间、系统输入、系统使用和软件缺陷等变量构建数学表达式
规定时间
自然时间、运行时间、执行时间。使用执行时间来度量软件的可靠性最准确
失效率
从软件运行开始,到某一时刻 t 为止,出现失效的概率用 F(t)表示
- F(0)=0,软件初始是失效率为 0
- F(t)在时间上递增
- 失效率随时间增长不断趋近 1
可靠度
表示可靠性最直接的方式,是软件在规定条件下、规定时间内不发生失效的概率 R(t) = 1 -F(t)(失效概率)
失效强度
单位时间系统软件出现失效的概率
平均失效前时间(平均无故障时间)(MTTF)
从系统运行时刻(t=0)直到其发生故障所持续的时间,这一指标衡量了系统在故障前平均运行的时长 MTTF = 1 / 失效率
平均恢复时间(平均故障修复时间)(MTTR)
系统从故障发生到成功修复之间的平均时间
平均故障间隔时间(MTBF)
失效或维护中所需的平均时间,包括故障时间以及检测和维护设备时间 (MTBF = MTTF + MTTR) 实际应用中,一般 MTTR 很小,所以通常认为:MTBF ≈ MTTF
可靠性目标
通常由可靠度、故障强度和平均失效时间(MTTF)等指标表示
可靠性测试
广义
为了最终评价软件系统的可靠性而运用建模、统计、实验、分析和评价等一系列手段对软件系统实施的一种测试
狭义
为了获取可靠度数据,按预先确定的测试用例,在软件预期使用环境中,对软件实施的一种测试
目的
- 发现软件在各方面的缺陷
- 为软件的使用和维护提供可靠性数据
- 确认软件可靠度是否达标