基于风险的测试的优点

发表于:2014-12-04来源:uml.org.cn作者:郑文强点击数: 标签:风险
软件测试是软件质量保证的重要组成部分,测试的目的是尽早发现缺陷和尽量多地提供测试对象相关的信息,从而提高产品质量和帮助利益相关者做出合适的决定。在有限的时间和资

  软件测试是软件质量保证的重要组成部分,测试的目的是尽早发现缺陷和尽量多地提供测试对象相关的信息,从而提高产品质量和帮助利益相关者做出合适的决定。在有限的时间和资源的情况下,穷尽测试是不可能的,测试团队需要在时间、成本和质量等各个方面进行平衡和协调。基于风险的测试作为软件测试的一种有效方法,可以解决测试过程中面临的一些问题:

  ● 首先,测试团队面临的问题是测试任务的时间压力。很少有测试项目可以获得足够的时间进行充分的测试。相反,测试一般都是有时间限制的,例如:项目具体里程碑时间、客户或者用户要求产品提交的时间等。基于风险的测试可以提供一种方法,对测试用例和测试任务进行优先级排列。测试的时间限制,其面临的挑战实际就是确定测试的覆盖率。通过基于风险的测试,可以从几乎无限的测试中选择重要的和风险高的测试来开展,从而降低风险和尽快提高质量,提高对产品的信心。测试的时间压力不仅仅存在于测试实现和执行阶段,同样也存在于测试分析和设计阶段。通过基于风险的测试,可以在早期将测试工作量放在高风险的地方,同时可以告知利益相关者这样做可能存在的风险。

  ● 其次,测试团队经常面临的问题是系统需求质量低下或者不完整。通过召集利益相关者讨论哪些是需要测试的、哪些是不需要测试的、测试的深度是多少等问题,基于风险的测试可以用来识别需求规格说明中存在的不足。基于风险的测试也可以帮助其他利益相关者认识到测试在确定测试范围和测试深度方面面临的挑战,有助于项目团队成员之间更好地理解和沟通。

  ● 第三,在项目测试的后期,例如:完成测试执行之后,测试团队需要提供相关的信息给其他的利益相关者,以帮助做出合适的决定。基于风险的测试可以允许测试团队和其他利益相关者一起,根据剩余的风险确定一个可接受的风险级别。而不是仅仅依赖于其他一些不充分的度量,例如:缺陷数目、测试用例执行数目等。

  有效地应用基于风险的测试可以较好地指导测试活动的展开,更好地使测试活动在时间、成本、质量等方面进行平衡,从而提高测试质量、降低测试成本、缩短测试时间等。下面是基于风险的测试的优点。

  1)确定测试优先级

  根据测试风险的分析和评估得到的风险分布,确定测试的优先级(风险级别分析也适用于测试的设计和测试实现等阶段,即通过风险分析,确定测试设计和测试实现的优先级)。测试风险的分析基于两个方面:发生的可能性和发生的严重程度。其中,风险发生的可能性主要是从技术方面考虑;而风险发生的严重程度主要是从客户或者用户的角度考虑。图1是一种风险等级的划分方式。

  图1 确定测试优先级

  根据图1的风险等级划分方式,在测试过程中,首先将重点放在高优先级的区域(例如:不同的模块、功能等)。假如时间、成本等因素不允许,标注为低优先级的模块或者功能(风险等级较低)可能就会放弃测试。

  2)确定测试完备性

  前面提到的一个假设条件:并不是所有的测试对项目而言是同等重要的。同样的道理,并不需要对测试对象的不同内容进行同等重要的测试,例如:最重要或者风险最大的模块或者对象需要测试得更加彻底,更加完备。而对于风险比较小、优先级低的模块或对象,可以简单测试。对于优先级最低的对象,在时间和成本等不允许的时候,甚至不进行测试。图2显示了一种测试风险和完备性的对应关系。测试完备性的要求需要在测试计划制定的时候,在测试经理和项目经理之间达成共识,在测试风险、测试成本、测试进度、测试范围和测试质量之间进行平衡。

  图2 确定测试完备性

  3)确定测试资源分配

  根据测试风险的分析和测试优先级的评估,将经验丰富和技术能力丰富的测试人员(不管是设计人员、实现人员,还是执行人员)放在最重要的模块或测试对象中,可以达到如下效果:

  设计更加完善、完备和准确的测试用例。

  实现高质量的测试用例脚本和代码。

原文转自:http://www.uml.org.cn/Test/201011112.asp