(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
测试团队通过对每个功能模块潜在风险列表中的风险的评估,分别得到了它们的总的风险级别。测试人员可以根据功能模块的总的风险级别,采取相应的应对手段,选择其测试重点。在本案例中,测试团队将根据总的风险级别,对该产品提供的4个功能模块进行基于风险的广度优先测试策略,对它们进行不同的强度测试。
另外,读者需要注意的是:基于潜在风险列表选择测试重点,预先定义风险列表中的各个风险是顺利开展该活动的基础。潜在风险列表需要测试团队不断的积累和更新。不同的组织和测试对象,测试团队应该定义合适其测试背景的风险列表。
本文只是从“测试的尽早介入”和“基于风险的测试”两个策略,阐述了在有限的时间和资源情况下,如何有效的开展测试活动。当然,除了策略层面之外,我们还需要在战术层面,例如:采用合适的测试设计技术、测试工具等,以更好的支持和满足策略层面的目标。
22/2<12