系统架构师备考日记(3.13)
第9章 软件可靠性基础知识篇(下)
考点
软件可靠性基本概念、建模、管理、设计、测试和评价等
涉及单项选择题(约占 2~3 分),论文也会有涉及
一、软件可靠性设计
软件可靠性设计技术有:容错设计技术、检错技术、降低复杂度设计、系统配置技术
1.1容错设计技术
(1)恢复快设计 选择一组操作作为容错设计单元,从而把普通的程序块变成恢复快 (2)N版本程序设计 通过设计出多个模块或不同版本,对于相同初始条件和相同输入的操作结果,实行多数表决,防 止其中某一软件模块/版本的故障提供错误的服务,以实现软件容错 (3)冗余设计 在一套完整的软件系统之外,设计一种不同路径、不同算法或不同实现方式方 法的模块或系统作为备份,在出现故障时可使用冗余部分进行替换。
1.2 检错技术
检错技术实现的代价一般低于容错技术和冗余技术,但是不能自动解决故障,出现故障需要人工干预。 检错技术考虑几个要素:检测对象、检测延时、实现方式、处理方式
1.3降低复杂度设计
降低复杂度设计的思想就是在保证实现软件功能的基础上,简化软件结构,缩短程序代码长度,优化软件数据流向,降低软件复杂度,从而提高软件可靠度。
1.4 系统配置技术
双机热备技术和服务器集群技术。
二、软件可靠性测试
2.1 软件可靠性测试概述
软件可靠性测试由可靠性目标的确定、运行剖面的开发、测试用例的设计、测试实施、测试结果的分析等活动组成。
2.2 定义软件运行剖面
为软件的使用行为建模,开发使用模型,明确需要测试的内容
2.3 可靠性测试用例设计
典型的测试用例应由以下几部分组成:
- 测试用例标识
- 被测对象
- 测试环境及条件
- 测试输入
- 操作步骤
- 预期输出
- 判断输出结果是否符合标准
- 测试对象的特殊需求
2.4 软件可靠性测试的实施
(1)用时间定义的软件可靠性数据可以分为4类:
- 失效时间数据
- 失效间隔时间数据
- 分组时间内的失效数
- 分组时间的累积失效数
(2)测试记录必须包含:
- 测试时间
- 含有测试用例的测试说明或标识
- 所有与测试有关的测试结果、包括失效数据
- 测试人员
(3)测试报告应具备如下内容
- 软件产品标识
- 测试环境配置(硬件和软件)
- 测试依据
- 测试结果
- 测试问题
- 测试时间
三 、软件可靠性评价
3.1 软件可靠性评价概述
评估和预测软件可靠性的过程包括: (1)选择可靠性模型 (2)收集可靠性数据 (3)可靠性评估和预测
3.2 怎样选择可靠性模型
(1)模型假设的适用性 (2)预测的能力与质量 (3)模型输出值能否满足可靠性评价需求 (4)模型使用的简便性
3.3 可靠性数据的收集
数据收集可行的方法有: (1)尽可能早地确定可靠性模型 (2)数据收集计划要有较强的可操作性 (3)重视测试数据的分析和整理 (4)充分利用技术手段(数据库技术)来完成分析合统计
3.4 软件可靠性的评估和预测
(1) 软件可靠性的评估和预测的目的是评估软件系统的可靠性状态和未来一段时间的可靠性水平 (2)软件可靠性的评估和预测以软件可靠性模型分析为主,以失效数据的图形分析法和试探 性数据分析技术等为辅
总结
软件可靠性基础知识概念点较多,分值不高但是容易取分,需要将基本概念掌握即可。