最近看到有的同事的文档里面提到测试策略,但是仔细一看,他们写的却是测试用例的大致内容,所以想在这篇文章里面简单谈谈什么是测试策略。
从字面意思来讲,测试策略应该是比较高层的概念,应该着眼于测试中大的方面,而不是细枝末节。一般来说,测试策略描述了软件开发过程中进行测试方法,用来告诉测试过程中所有可能的参与者,测试活动应该如何进行。其中主要会包括测试目标,测试新功能的方法,测试项目的时间和资源,以及测试环境等等。
除此以外,测试策略应该描述测试过程中存在哪些风险,以及如何能够规避或者降低这些风险。同时,测试策略也会提到测试的级别,哪些测试应该被执行,入口出口条件是什么。创建测试策略时候我们可以参考各种需求文档和设计文档。
一般来说,测试策略在结构上可以包括以下一些要点:
(1)测试级别:常见的测试级别有单元测试,集成测试和系统测试。大部分的测试组织里面,单元测试由开发负责,而集成测试和系统测试由测试部门或者质量保证部门负责。
(2)角色与职责:需要在测试策略里面明确定义各个角色,以及该角色的职责。比如项目经理,测试组长,测试工程师…
(3)环境需求:这一点非常重要,它将描述测试时需要的系统环境,包括软硬件以及网络环境等等。在澄清环境需求的时候,测试组织可以识别出资源方面的风险。
(4)风险分析:影响测试过程的风险都应该尽早被识别出来,而且必须有相应的解决办法以便消除或者减轻这些风险。
(5)测试进度:测试进度将会评估完成测试所需要的时间。在设定进度的时候,首先需要明确测试范围,然后根据测试资源的多少来制定能被各方面认可的测试进度计划。做一个非常准确的进度计划是困难的事情,因为测试过程中充满了各种不确定性,所以一般计划者需要考虑增加一定的buffer。当然,制定进度计划的时候可以参考已有的项目的数据。如果是一个全新的软件项目,专家认为将初始计划的时间翻倍比较靠谱!
(6)回归测试方法:回归测试用来保证之前fix bug的代码不会影响软件的其他部分,这样需要我们选择已经执行过的测试用例重新运行。测试人员需要找到一个方法来确定哪些测试用例应该在回归测试中运行,用例不能太多,因为资源有限,用例也不能太少,否则会达不到必须的测试强度。不过,如果测试部门对待测系统以及软件架构非常了解的话,就比较容易找到合适的回归测试集合。
(7)测试范围:这个没啥好说的,就是你要测试的内容,可能是某些模块,可能是某些指标,比如功能,性能,易用性…
(8)测试优先级:测试范围内的东西不会都是一样重要的,加上测试资源各种有限,所以为测试排定优先级是十分的必要。