软件可靠性
2026/3/1约 1212 字大约 4 分钟
软件可靠性
1. 基本概念
1.1 定义
- 软件可靠性:软件产品在 规定的条件 下和 规定的时间区间 完成 规定功能 的能力。
- 串并联系统可靠性:无论什么系统,都是由多个设备组成的,协同工作,而这多个设备的组合方式可以是串联、并联,也可以是混合模式
- 串联系统:
- 一个设备不可靠,整个系统崩溃。
- 可靠性公式:$ R_{串联} = R_1 × R_2 × ⋯ × R_n $
- 并联系统:
- 所有设备都不可靠,整个系统才崩溃。
- 可靠性公式:$ R_{并联} = 1 - (1 - R_1)(1 - R_2)...(1 - R_n) $
- 串联系统:
- 广义的软件可靠性测试:指为了 最终评价软件系统的可靠性 而运用 建模、统计、试验、分析 和 评价 等一系列手段对软件系统实施的一种测试。
- 狭义的软件可靠性测试:指为了获取可靠性数据,按预先确定的测试用例,在软件的预期使用环境中,对软件实施的一种测试。它是面向缺陷的测试,以用户将要使用的方式来测试软件。
- ISO/IEC 25010 软件质量模型中 “可靠性(Reliability)” 的子特性分类:
- 无故障性(Faultlessness):
- 可用性(Availability): 产品在需要使用时可运行且可访问的能力。
- 容错性(Fault Tolerance): 系统在出现故障时仍能维持部分功能的能力。
- 可恢复性(Recoverability): 软件在发生失败后恢复数据和恢复服务的能力。
1.2 软件和硬件可靠性的区别
- 复杂性:软件复杂性比硬件高,大部分失效来自于软件失效。
- 物理退化:硬件失效主要是物理退化所致,软件不存在物理退化。
- 唯一性:软件是唯一的,每个 COPY 版本都一样,而两个硬件不可能完全一样。
- 版本更新周期:硬件较慢,软件较快。
1.3 软件可靠性的定量描述
- 规定时间:自然时间、运行时间、执行时间(占用CPU)。
- 失效概率:软件运行初始时为 0,随着时间增加单调递增,不断趋向于 1。
- 可靠度:软件系统在规定的条件下、规定的时间内不发生失效的概率。可靠度 = 1 - 失效概率。
- 失效强度:单位时间软件系统出现失效的概率。
- 平均失效前时间(MTTF):平均无故障时间,发生故障前正常运行的时间。
- 平均恢复前时间(MTTR):平均故障修复时间,发生故障后的修复时间。
- 平均故障间隔时间(MTBF):失效或维护中所需的平均时间,包括故障时间以及检测和维护设备的时间。MTBF = MTTF + MTTR。
系统可用性 = MTTF / (MTTF+MTTR) * 100%

2. 可靠性管理
- 概念:
- 是软件工程管理的一部分,它以全面提高和保证软件可靠性为目标,以 软件可靠性活动 为主要对象,是把 现代管理理论 用于 软件生命周期中的可靠性保障活动 的一种管理形式。
- 内容
- 包括软件工程各个阶段的可靠性活动的 目标、计划、进度、任务和修正措施 等。
- 各阶段设计任务:
- 需求分析阶段:确定可靠性目标、分析影响因素、确定验收标准、制定框架、制定文档编写规范、制定初步计划、确定数据收集规范。
- 概要设计阶段:确定可靠性度量、制定详细验收方案、可靠性设计、收集数据、调整计划、明确后续阶段详细计划、编制文档。
- 详细设计阶段:可靠性设计、预测、调整计划、收集数据、明确后续阶段详细计划、编制文档。
- 编码阶段:可靠性测试(单元)、排错、调整计划、收集数据、明确后续阶段详细计划、编制文档。
- 测试阶段:可靠性测试(集成和系统)、排错、可靠性建模、评价、调整计划、收集数据、明确后续阶段详细计划、编制文档。
- 实施阶段:可靠性测试(验收)、排错、收集数据、调整模型、评价、编制文档。
