文章目录
第四章 软件可靠性度量和测试
1. 软件可靠性
1.1 软件可靠性的定义
- 在规定的条件下,在规定的时间内,软件不引起系统失效的概率。该概率是系统输入和系统使用的函数,也是软件中存在的错误的函数;系统输入将确定是否会遇到已存在的错误(如果错误存在的话)
1.2 软件可靠性及失效概率随时间变化
1.3 影响软件可靠性的因素-软件差错
软件差错是软件开发各阶段潜入的人为错误
- 需求分析定义错误
- 设计错误
- 编码错误
- 测试错误
- 文档错误
1.4 软件可靠性和硬件可靠性的区别
-
硬件有磨损,会出现浴盆曲线现象,软件没有
-
硬件可采用预防性维护技术预防故障,断开失效部件诊断故障,软件则不能采用这些技术
-
事先估计可靠性测试和可靠性的逐步增长等技术对软件和硬件有不同的意义
冗余技术可用来提高硬件可靠性,但软件的冗余不能提高可靠性
-
硬件可靠性已有成熟产品市场,软件没有
1.5 软件的差错、故障和失效
- 差错:软件中存在的任何不符合规定要求的错误均可称为差错
- 故障:软件内部不正确的步骤、过程或数据定义
- 失效:软件外部结果(输出结果)错误
显然差错包括故障和失效
补充异常和缺陷:
- 异常指偏离期望结果的任何情形
- 缺陷(差错)指不符合规定要求的任何状态
- 缺陷与差错等同
差错、故障、已纠正差错,失效的关系
1.6 软件可靠性反映了用户的质量观点
2.软件可靠性模型
2.1 Musa基本模型
- 差错对故障率贡献相同,每修正一个差错,故障率均匀减少
- 固有故障总数有限
2.2 Musa对数模型
- 差错对故障率贡献不同,差错发现越早,故障率随时间减小的越大
- 固有故障数无限
2.3 Goel-Okumoto模型(GO模型)
- 差错对于时间分布是非时齐的
- 差错可能因修复其他差错而产生
3. 提高软件可靠性的方法和技术
- 建立以可靠性为核心的质量标准
- 选择合适开发方法
- 软件重用
- 使用开发管理工具
- 加强测试
- 容错设计