计划与控制是测试第一个阶段的内容,后面所有的工作都是以测试计划为指导进行的,所以测试计划中时间、任务和资源的安排显得很重要。
计划与控制主要包括以下几方面的关键过程域:
(1)制订一份详细的测试计划,主要包含时间安排、资源分配。
(2)整个测试执行过程中的风险管理。
(3)记录整个测试过程的结果。
(4)对结果进行分析和度量。
制定测试计划的目的是通过确定测试任务、定义测试对象和详细的测试活动来达到组织的目标和使命。测试计划主要描述的内容是整个项目测试的阶段、每个阶段的时间安排和每天阶段需求的资源分配。
关于测试计划通常使用两张表来描述:一是详细的时间安排WBS(工作分解结构Work Breakdown Structure);二是里程碑时间点,也叫关键时间点。
详细的时间安排即通常说的WBS的创建方法,通常可以使用一些专业的工具(如office project工具)来创建。关于工具如何使用,在这里就不再赘述了。如图4-2所示是一个典型测试计划的WBS图。
很多人不理解为什么有了详细的WBS工作计划,还需要一个关键时间点的图。关键时间点的图其实本质上来说根本不如详细的WBS工作计划,但是在测试计划的文档中,这个关键时间点的图扮演着很重要的角色。因为这个测试计划是要给领导看的,领导其实根本就没有时间看详细的测试计划,他只想看一些关键的时间点,如测试方案什么时候完成、测试用例什么时候可以完成等,也就是说,这个关键时间点主要是为了提高文档的可读性。文档的可读性比较高,那么领导会更认可你,这样加薪或升职就有戏了。所以不能只工作,还要表现出你的能力,而文档就是一方面。如图4-3所示就是一个典型的关键时间点的图。
在做计划时有一个很重要的问题需要解决,就是如何估算工作时间,例如,如何估算某个版本要测试多久。这就要涉及到测试时间的估算了。在测试过程中常见的工作量估算方法包括:功能点评估法、类比法、Delphi法、开发时间的百分比法和PERT估计法。
在评估测试工作量时,使用最多的方法是功能点评估法,其步骤如下:
第一步:分析需求,确定本次测试的需求点。
第二步:根据需求点确定本次要测试的功能点。
这些功能点不能是复合的功能点,应该是一个原子功能点,所谓的原子功能点是指这个功能点中不再包含其他的子功能,如登录功能就是一个原子功能点,但用户管理这类功能就是复合功能,因为用户管理功能下面还包含新增用户、删除用户等。
如果是升级的版本,还需要分析当前升级的这些需求有没有和以前版本中其他的一些需求是否有关联的地方,如果有相关联的地方就必须对原来老的功能点进行详细的测试。
第三步:评估功能点的用例数。
确定原子功能点后就可以估算这些功能点的用例数,在估算用例数时,可以估算一个功能的平均用例的个数。
第四步:确定具体的时间。
用例数确定后,就可以确定写用例的时间和对这些用例执行一轮所需要的时间。如估算用例数为1000条用例,那么写这些用例的时间大约为20天,一般的情况一天只能写50条用例左右(不计算加班时间),一天能执行的用例数也在50条左右。
类比法也叫经验值法或历史数据法,主要是根据以前相类似项目所积累的经验和历史数据来估算工作量。既然是根据以前的经验来估算工作量,那么就一定要选择对类似的项目,一般判断两个项目是否是类似的项目或者说是否有参考价值,一般从以下三个维度来判断:
1)项目性质:首先相比较的两个项目应该是同一性质的,即其是一类系统,如同为银行系统。
2)相同领域:相比较的两个项目应该是相同领域的,不能是跨领域的,跨领域的没有可比性。
3)规模:项目规模大小应该是一个级别的,也就是说不能是10万行代码的项目与100万代码的项目进行比较,这在项目规模上来说不是同一个级别的。
在使用类比法进行估算时,通常需要先对历史项目的数据进行详细分析再进行估算,一般分析一个历史项目应该从以下维度进行详细的分析:
1)阶段分布:每个阶段占总工作量的百分比。
2)工种分布:每个工种占总工作量的百分比。
3)阶段工作分布:每个阶段每个工种点本阶段工作量的百分比。
类比法估计结果的精确度取决于历史项目数据的完整性和准确度,因此,用好类比法的前提条件之一是组织建立起较好的项目后评价与分析机制,对历史项目的数据分析是可信赖的。