在实际软件产品的测试过程中测试团队经常面临的一个挑战是有限的测试时间,即测试人员必须在某个时间段之内完成所有的测试任务;按照传统的测试思路按部就班的执行每个测试用例将会面临各种问题。首先,可能无法完成预先计划的测试任务;其次,测试的效率比较低下,如无法快速地发现测试对象中存在的缺陷。此时,基于潜在的风险列表选择测试重点将是一个有效的测试策略。
基于潜在的风险列表选择测试重点的核心思想是针对测试对象的每个功能模块,根据罗列的潜在风险列表评估风险,然后将潜在的风险列表评估的数值相加得到该功能模块的风险级别;根据功能模块的不同风险级别确定其测试重点并选择合适的测试策略。具体步骤如下。
1. 测试人员检查风险列表中的每个风险,评估该风险对测试对象功能模块产生影响的可能性。
2. 将功能模块相关的风险的可能性相加得到每个功能模块的风险级别。
3. 按照风险级别排序测试优先级。
基于潜在风险列表选择测试重点
某通信产品在一轮测试中主要覆盖4个功能模块,为简单起见,分别以功能模块1~功能模块4表示。其中潜在的风险列表如下。
(1)功能模块将会被用户频繁使用。
(2)功能模块提供的功能非常复杂。
(3)功能模块经常被修改或者升级。
(4)功能要求具有很高的实用性。
(5)功能要求保持一定的性能级别。
(6)功能的实现采用了新的开发工具和语言。
(7)功能模块具有众多接口。
(8)功能模块由经验欠缺的开发人员所开发。
(9)功能模块开发缺乏相关用户的充分介入。
(10)功能模块的开发由庞大的开发团队实施。
(11)完全是新的功能。
(12)功能模块的开发在极端时间压力下完成;
(13)对利益相关者而言是非常重要的功能;
(14)功能模块的历史版本中发现了很多的缺陷;
将测试对象中功能模块产生影响的可能性分为如下4个级别。
(1)不适用的(0):该风险不适用于该模块或者功能。
(2)低的(1):该风险偶尔会发生,但不经常。
(3)中等的(3):该风险可能会发生,并且可能会影响该模块或者功能。
(4)高的(5):该风险很可能发生,并且绝对会对模块或者功能产生影响。
表1所示为根据前面定义的风险列表和可能性分析该通信产品的4个功能模块之后得到的评估结果。
表1 评估结果
潜在风险列表 |
功能模块1 |
功能模块2 |
功能模块3 |
功能模块4 |
(1)功能模块将会被用户频繁使用 |
5 |
0 |
3 |
5 |
(2)功能模块提供的功能非常复杂 |
5 |
5 |
1 |
3 |
(3)功能模块经常被修改或者升级 |
1 |
1 |
1 |
1 |
(4)功能要求具有很高的实用性 |
0 |
0 |
0 |
0 |
(5)功能要求保持一定的性能级别 |
3 |
0 |
1 |
3 |
(6)功能的实现采用了新的开发工具和语言 |
0 |
0 |
0 |
0 |
(7)功能模块具有众多的接口 |
0 |
0 |
1 |
3 |
(8)功能模块是由经验欠缺的开发人员开发 |
0 |
0 |
0 |
0 |
(9)功能模块的开发缺乏相关用户的充分介入 |
5 |
5 |
5 |
5 |
(10)功能的开发是由庞大的开发团队实施的 |
5 |
5 |
5 |
5 |
(11)完全是新的功能 |
5 |
0 |
0 |
5 |
(12)功能模块的开发在极端时间压力下完成 |
3 |
1 |
1 |
5 |
(13)对利益相关者而言是非常重要的功能 |
3 |
1 |
3 |
5 |
(14)功能模块的历史版本中发现了很多的缺陷 |
0 |
0 |
1 |
5 |
总的风险级别 |
35 |
17 |
22 |
44 |