文章目录
- 1. 概述
- 2. 定义软件运行剖面
- 2.1 软件的使用行为建模
- 2.2 输入域分层
- 2.3 弧上的概率分配
- 2.4 其他注意点
- 3. 可靠性测试用例设计
- 4. 可靠性测试的实施
- 4.1 测试前检查
- 4.2 注意点
- 4.2 可靠性测试的难点
- 1)失效判断的主观性
- 2)计算的错误结果不易被发现
- 4.3 用时间定义的可靠性数据
- 4.4 测试记录包含的信息
- 4.5 测试报告
1. 概述
- 其主要活动:可靠性目标的确定、运行剖面的开发、测试用例的设计、测试实施、测试结果的分析
2. 定义软件运行剖面
【扩展】
- 马尔可夫链:
- 是一种随机过程,它描述了系统在不同状态之间的转移概率
- 系统的未来状态仅取决于当前状态,而与过去的状态无关
- 弧:在软件运行剖面中,用来表示软件系统在不同状态之间转换的一种抽象
2.1 软件的使用行为建模
- 建模过程:
- 用
马尔可夫链
将输入域
编码为一个代表用户观点的软件使用的状态集
- 用
弧
连接两个状态,它表示由各种激励
导致的状态转换 - 将
转换概率
分配给每个弧
- 用
2.2 输入域分层
- 两种类型的分层形式:
- 用户级分层:依赖于谁能激励系统
- 用法级分层:依赖于在测试状态下,能做什么
2.3 弧上的概率分配
-
分配考虑因素:
- 从现有系统收集到的数据
- 与用户的交谈或对用户进行观察获得的信息
- 原型使用与测试分析的结果。
- 相关领域专家的意见。
-
分配方法
-
最佳方法:使用实际的用户数据
如来自系统原型、前一版本的使用数据;
-
其次:是由该软件应用领域的用户和专家提供的预期使用数据
-
最差情况(无数据情况):将每个状态现有的弧分配相同的概率
-
2.4 其他注意点
- 运行剖面的开发与定义必须充分分析和考虑软件的实际运行情况
- 软件可靠性行为是相对于软件实际的运行剖面而言的
- 同一软件在不同运行剖面下其可靠性表现可能大不相同
- 剖面上很小比例的操作可能占很大的故障比例
飞机的飞行控制软件,在正常飞行、起飞、降落、地面运动和地面等待这5个状态中,尽管起飞和降落在运行剖面上只占有很小的百分比,但是它们却占有很大的故障比例。
- 一个产品有可能需要开发多个运行剖面
- 边界、跃迁情况、关键功能通常单独定义运行剖面
3. 可靠性测试用例设计
-
测试用例的选择方法:
- 在运行剖面中的每个元素都定量地赋予一个发生概率值和关键因子
- 根据这些因素分配测试资源,挑选和生成测试用例
-
测试用例考虑因素:
- 既要有
一般情况
,也应有极限情况
、最大和最小的边界值情况
易于发现缺陷
的测试用例和数据
- 既要有
-
测试用例的组成部分
- 测试用例标识
- 被测对象
- 测试环境及条件
- 测试输入
- 操作步骤
- 预期输出
- 判断输出结果是否符合标准
- 测试对象的特殊需求
-
可靠性测试用例考虑的特殊情况
4. 可靠性测试的实施
4.1 测试前检查
- 检查软件需求与设计文档是否一致
- 检查文档的准确性、完整性以及与程序的一致性
- 检查所交付程序和数据以及相应的软件支持环境是否符合要求
4.2 注意点
- 要补充的非统计性测试,需要在可靠性测试之前
- 开发方交付的任何软件文档中与可靠性质量特性有关的部分、程序以及数据都应当按照需求说明和质量需求进行测试
- 在项目合同、需求说明书和用户文档中规定的所有配置情况下,程序和数据都必须进行测试。
- 获得更多的可靠性数据,可使用多台计算机同时运行软件,以增加累计运行时间
4.2 可靠性测试的难点
- 其难点是:判断测试用例的运行是否成功
- 原因如下:
1)失效判断的主观性
一般应用系统中,失效的定义较主观些,它不仅依赖于程序是否符合规格说明的要求,也取决于指定的性能是否能够达到用户的期望。
2)计算的错误结果不易被发现
如:在一些科学计算中,计算结果只能由计算机给出,在这种情况下,如果软件只是输出了错误的结果而不是整个系统发生失效,错误就不可能被发现。
- 解决方案一:将测试分成两个阶段进行
- 第一阶段运行较少量的测试用例,并对照规范进行仔细检查
- 第二阶段再运行大量测试用例,仅找出失效现象
- 解决方案二:把输出记录到文件中,采用搜索或过滤方法进行处理
- 条件:软件有足够的可测试性
- 优点:不会遗漏错误
4.3 用时间定义的可靠性数据
可分为以下四类:
- 失效时间数据:记录发生一次失效所累积经历的时间
- 失效间隔时间数据:记录本次失效与上一次失效间的间隔时间
- 分组时间内的失效数:记录某个时间区内发生了多少次失效。
- 分组时间的累积失效数:记录到某个区间的累积失效数。
4.4 测试记录包含的信息
- 测试时间
- 含有测试用例的测试说明或标识
- 所有与测试有关的测试结果,包括失效数据
- 测试人员。
4.5 测试报告
测试活动结束后要编写《软件可靠性测试报告》,对测试用例及测试结果在测试报告中加以总结归纳、剪裁。其内容如下:
- 软件产品标识
- 测试环境配置
- 测试依据
- 测试结果
- 测试问题
- 测试时间