昨晚一个同事问我:测试人员在需求阶段该做些什么事情?为何说能在需求阶段就能找到问题的测试人员才是优秀的测试人员?
我的回答如下:
需求阶段的主要工作是产品人员对用户提出的需求进行筛选,归类,抽象的过程,在这个过程中,产品人员需要输出一份合理的需求文档,这份文档将作为后续生产的最早依据。根据越早发现缺陷越节约成本的道理,在需求分析过程中就能找到隐患,是非常有必要的。测试人员在需求分析过程中,需要注意:
1.需求的定义是否明确,不能有含糊的地方,不能有二义性。
2.需求中对各项指标是否有准确的定义,如性能指标等。
3.需求的实现需要转换成多少的功能点才能完成。
这其中,我举了一个例子:我经手过一个小项目,主要是获取为用户提供天气信息的查询,数据来源与合作网络,而这个软件的服务器提供的接口没有专门的时间接口,终端收费需要依赖与从天气数据包中提取的时间。但是在需求阶段,并没有人指出这个问题,终端开发人员没有给测试留外部接口。现在产生了一个需求是:需要给用户免费使用七天,七天之后开始计费。问题出现了:开发提供的终端这个免费期是写死在代码中的,而服务器时间无法从外部修改。如果要测试计费功能,需要等到七天的免费期过后。这就让软件功能变得不可测。
当然最后的解决方法就是我要求开发人员修改代码,留出测试接口。但是这样一来,浪费了足足两天的时间,开发修改自测一天,测试这边不仅仅只测试修改的功能,因为还得回归其他功能,避免修改代码引起别的问题。
能在需求分析阶段就能评估出后续测试中可能会遇到的问题,需要很多的业务经验,但是也可以依赖与把需求转换为测试点的方法来改善。如果能从需求中提出后续需要测试的测试点,那么我们就可以预估到需要采用的测试手法,以及需要用到那些测试用例,从而要求开发在设计时留下接口,如果对开发架构比较了解的测试工程师还可以预先告诉开发,在后续开发过程中可能遇到哪些瓶颈,这就体现出一个测试人员的功底了。
对于需求分析,我的想法和思路可能不算完整的,希望各位各抒己见,替我完善一下这一块的知识。在此谢过!