1 风险评估
1.1 分析风险
- 著名公式:
风险 = 失败几率 * 受到的损失
- 公式说明:
失败几率与系统的使用频率和单个故障几率有关;
1.2 如何估计故障几率?
以下有助于估计故障几率,他给出了容易发生故障的位置:
- 复杂部件;
- 全新部件;
- 经常改动的部件;
- 首次采用某种工具或技术的部件;
- 在开发过程中从一个开发人员移交给另一个开发人员的部件;
- 在时间及其紧迫的情况下构建的部件;
- 超过优化频率平均值而频繁优化的部件;
- 在早期发现过许多缺陷的部件;
- 有许多接口的部件。
1.3 导致故障几率较高的因素
- 无经验的开发人员;
- 用户代表参与不足;
- 开发过程中缺少质量保障;
- 质量不高的低层次测试;
- 新的开发工具和开发环境;
- 大型开发团队;
- 沟通不畅的开发团队;
- 在组织内存在尚未解决的冲突的情况下,迫于行政压力而开发的部件。
1.4 估计可能的损失
- 修理复用;
- 负面新闻报道;
- 市场份额丢失;
- 用户合法要求赔偿;
- 收入减少等。
1.5 风险评估的来源
- 最终用户;
- 支持工程师;
- 产品经理;
- 架构设计师;
- 程序员;
- 测试人员;
- 质量保证人员。
1.6 风险的处理
2 主测试计划中的策略
2.1 目标
使组织内的成员对必须避免的风险获得认知,以及约定在开发过程中,在何时何地需要执行多少测试。
2.2 制定策略的步骤
- 选择质量特性;
- 确定质量特性的相对重要性;
- 为测试层次分配质量特性。
2.3 选择质量特性
- 详细说明质量特性;
- 提供典型的例子;
- 定义衡量质量特性的方法。
2.4 确定质量特性的相对重要性
举例说明:比如质量特性的相对重要性矩阵如下:
质量特性 | 相对重要性(%) |
---|---|
连接性 | 10 |
效率(内存) | - |
功能 | 40 |
可维护性 | |
性能 | 15 |
可恢复性 | 5 |
可靠性 | 10 |
安全性 | - |
适用性 | 20 |
可用性 | - |
总计 | 100 |
2.5 为测试层次分配质量特性
- 用矩阵来表示,行为测试层次,列为质量特性;
- 每一个交叉点的符号( 、 或空白)表示测试层次在质量特性中的覆盖程度;
: 该测试层次将完全覆盖质量特性;
: 该测试层次将覆盖一部分质量特性;
空 :该测试层次与质量特性无关。
- 举例:
功能 | 连接性 | 可用性 | 可恢复性 | 性能 | 适用性 | |
---|---|---|---|---|---|---|
40 | 10 | 10 | 5 | 15 | 20 | |
单元测试 |
|
| ||||
SW集成测试 |
| |||||
HW/SW集成测试 |
|
| ||||
系统测试 |
|
|
| |||
验收测试 |
|
|
| |||
实地测试 |
|
|
3 测试层次中的策略
3.1 选择质量特性
- 采用的原则与主测试计划一致。
3.2 确定质量特性的相对重要性
- 举例如下:
质量特性 | 相对重要性(%) |
---|---|
功能 | 40 |
性能 | 25 |
可靠性 | 10 |
适用性 | 25 |
总计 | 100 |
3.3 将系统分解为子系统
- 子系统也可以理解为部件、功能单元等。
3.4 确定子系统的相对重要性
- 举例:
子系统 | 相对重要性(%) |
---|---|
A部分 | 30 |
B部分 | 10 |
C部分 | 30 |
D部分 | 5 |
整个系统 | 25 |
总计 | 100 |
3.5 确定每个子系统/质量特性联合体的测试重要性
- 用矩阵来表示,行为质量特性,列为子系统;
- 每一个交叉点的符号( 、 或空白)表示测试层次在质量特性中的覆盖程度;
: 质量特性对该子系统起主导作用;
: 质量特性和该子系统相关;
空 :质量特性和该子系统无关。
- 举例:
相对重要性(%) | A部分 | B部分 | C部分 | D部分 | 整个系统 | |
---|---|---|---|---|---|---|
100 | 30 | 10 | 30 | 5 | 25 | |
功能性 | 40 |
|
|
|
|
|
性能 | 25 |
|
|
| ||
可靠性 | 10 |
|
| |||
适用性 | 25 |
|
|
|
|
3.6 确定要使用的测试技术
影响选择测试技术的因素
- 被测试的质量特性;
- 应用的领域;
- 需要的测试基础;
- 需要的资源;
- 需要的知识和技能。
4 测试过程中的策略变更
- 项目进度表的变更导致;
- 产品内容发生变化导致;
- 测试结果导致。
5 维护测试策略
按照变更需求来规划测试策略的步骤:
- 确定变更;
- 确定变更和回归的重要性;
- 选择质量特性;
- 确定质量特性的相对重要性;
- 确定每个变更(回归)/质量特性联合体的相对重要性;
- 确定可用的测试技术。