需求评审对于测试员来说就项目最初的“产品测试”,在理解的基础上发现产品设计上缺陷,其中包括逻辑错误,功能缺失,细节问题等等,这样就会有效的在前期规避很多后期开发中产生的bug,减少了很多后期返工的成本。可偏偏需求评审往往是最不重视的一环,甚至可以说是没有这个环节,追其原因无非因为项目时间紧迫或者觉得没有必要,其实这是本末倒置和得不偿失的。
产品需求作为程序的源头,只有控制好最开始部分,才不会到最后去亡羊补牢。我有过很多血的教训,所以才深深的体会到需求评审的重要性。举个栗子
记得有一次由于项目时间比较紧迫,没有对需求进行评审,当开始测试的时候发现需求的计费逻辑有一个重大的错误,经过和产品经理讨论后发现是需求设计有缺陷,需要重新设计一套计费逻辑。于是改完需求后反馈到开发这里的时候,开发原来的计费代码不能处理这种逻辑,只能把代码的计费逻辑重新写一遍,最后又花了好几天重构代码,项目就延迟了一周上线。
后来回头想想如果当时在需求评审的时候把这个问题抛出来,开发就不需要编写错误的代码,测试也不需要再多测试一遍,项目也不会延迟那么久才能上线。类似的教训还有很多,都是由于不重视需求评审造成的,虽然大多数问题还是可以通过后期的测试来弥补的,但这样反正折腾真的是累人累己,如果可以有好的方法来优化,为什么不用呢?
说了需求评审的重要性,接着就来谈谈如何进行需求评审,一般还是分为3步:
第一步就是要完全读懂产品需求,这个过程只需要理解而不是去挑刺,因为要明白这个需求的目的是什么,为什么这样做,怎么做等等,只有在理解的基础上才能去发现问题,而不是一知半解的去挑毛病,有些需求设计的是不合理,但也许有其特殊的用意,或者只是没有更好的方案,不能为了挑毛病而去挑。
第二步就是分析和找问题;这就有点类似写测试用例的时候设计测试方案了,把逻辑梳理出来,看看有没有不对或者遗漏的点,整理出来反馈给产品经理。除了考虑有问题的地方,没问题的地方也是需要分析的,比如有些设计非常合理,但会增加代码的复杂度或者不利于后续的扩展和修改,同时也可能会给测试带来成倍的工作量,这些也是需要指出的,因为测试要考虑的东西一定要比产品经理多,用户使用习惯,程序复杂度,与线上系统的兼容性等等,不然直接让产品经理做测试不就好了吗?
第三步就是细节问题的纠正,可以是界面,可以是文字,开发一般都是复制黏贴或者照着样子画葫芦,这些小问题后期其实也可以测试出来的,但其锅不在于开发,早点发现问题早点解决也是好事一件,至少不用提bug走一套bug处理流程了,也算给大家省点工作量,积少成多也是极好的。
当然需求评审能解决的问题也是有限的,一方面计划往往赶不上变化,中间会有部分需求的改动,另外一方面有些深层次的问题只有在测试之后才会发现。但无论如何对于测试来说还是非常有必要的,如果能重视起来不仅仅对项目的效率提高不少,而且也能让后期测试压力减小,何乐而不为呢