六、测试执行的日程和进度
测试经理需要明确清楚地回答这几个问题:什么时间,在什么版本上,出于什么目的,做哪些和测试相关的活动。
通常的经验,对于软件测试项目来讲,测试要进行至少四轮才有意义。
1)第一轮,验证功能,提交发现的问题;
2)第二轮,验证提交的问题是否被修改,同时看是否在修改后引入了新问题;
3)第三轮,验证性能,假定前两轮测试后那些低级的功能性的错误已经被消灭的差不多了,这时需要创造一些恶劣的环境,来验证软件是否足够强壮;
4)第四轮,全面验证软件的全部待测点,并根据本次测试的结果评估产品上市的风险。
并不是所有的问题都是在测试开始第一轮就可以被全部发现,原因有几个方面:
1)测试人员在第一轮可能尚未进入状态,对待测产品的熟悉还有待提高;
2)测试进行中,可能有一些问题阻碍了其他问题的发现;
3)依靠执行测试用例不可能发现100%的错误,软件的功能好比是面,靠孤立的点来覆盖面试完全不可能的。因此测试的主观因素就永远不可避免。测试人员的灵机一动可能会发现很多重要的问题,而这种问题的发现一定要依靠一定的时间和工作量的积累。
M0(软件项目启动,需求定义阶段)—M1(分布式开发阶段)—M2(总体联调阶段)—M3(产品上市)
Mo—M1阶段:测试的人才储备期,主要从人力及其培训方面做准备,保证在将来的测试阶段有足够熟练新技术新功能的测试人员;
M1—M2阶段:测试的技术流程准备期,依据项目明确下来的需求,分别从计划、技术、工具、环境、团队、流程等方面做准备。包括制定测试计划,设计测试用例,搭建测试环境,组建测试团队,明确测试流程等;
M2—M3阶段:测试的全速实施期,整个测试团队按照之前的准备全速执行测试,力求在最短的时间内发现最多的问题;
M3后:对测试仍旧极为重要,测试团队需要根据市场的反馈了解产品在市场上发生了哪些情况,协助开发人员复现这些问题,以使这些问题得到最快的定位和修改,而减少在市场上的负面影响。
测试日程的制定需要根据两个文档,第一是总体的项目时间表,第二是项目的软件版本发布计划。
制定测试日程需遵循以下原则:
1)每个软件版本一定要有一个版本基本测试,目的是在最短的时间里判断软件是否值得一测;
2)在所有功能都集成起来之前不需要进行系统测试,但应该按照集成模块的次序,进行各个子系统的测试;
3)现场测试盒互操作性测试要在系统测试进行至少两轮之后才开始,以保证最基本的功能性问题已经被发现并解决;
4)压力测试发生在上市之前的一两个版本上,主要目的是试图复现那些影响较大但复现概率极低的问题。