三、相对于白盒测试的好处

  灰盒测试相对白盒测试的好处,比较容易概括。简单来说,是白盒测试较费钱(研发成本较高)。这多出来的研发成本,体现在如下几个方面。

  1、首先,招聘成本较高

  在人才市场上,100个应聘的测试人员中,未必能够找到一个合适的白盒测试人员。至少从俺及周围同事的面试经历来看,难得碰到具备白盒测试能力的人。所以,你可能要花很长时间才能找到合适的人,时间成本浪费掉了。

  2、其次,培训成本较高

  可能有同学会说,招不到内部培养呗。这个说起来容易,但是培训也是有成本的。而且周期还不短,同样要耗费时间成本。

  3、再其次,人力成本较高

  物以稀为贵是一条普遍的经济学规律。由于能搞白盒测试的家伙是稀有动物,你自然不能给他/她开太低的薪水。否则人家待不了多久跑路了。薪水开得高了,人力成本自然也提高了。

  四、其它的一些好处

  前面拿灰盒测试分别跟黑盒/白盒进行了对比,列举了一些优点。还有另外一些优点,和黑盒/白盒没啥关系,单独列在这里。

  1、顺便强化开发文档

  对于一个复杂的软件系统,模块之间的接口是很重要的,因此捏,接口文档也是很重要滴。而开发人员不爱写文档/不爱更新文档,(在软件业内)已经是臭名昭著了。很多软件开发到后期,模块之间的接口文档要么没有,要么和代码实现严重脱节。
 
  但是,如果引入测试人员对模块之间的接口进行测试,可以有效防止此种弊端。因为测试人员在测试前,首先要看模块间的接口文档,然后再根据接口文档设计测试用例,后再执行用例。因此,一旦接口文档和代码实现不符,立马露馅了。

  2、顺便搞搞自动化

  灰盒测试如果落实到位,还可以跟自动化测试相结合。从此可以大大提升测试的效率,进而大大提升软件的质量。(如何进行自动化的灰盒测试,后面的帖子会细谈)

  五、灰盒测试有啥缺点?

  当然,凡事都有优点和缺点,灰盒测试自然也不例外。下面列举它的主要缺点。

  1、不适用于简单的系统

  所谓的简单系统,是简单到总共只有一个模块。由于灰盒测试关注于系统内部模块之间的交互。如果某个系统简单到只有一个模块,那没必要进行灰盒测试了。

  2、对测试人员的要求比黑盒测试高

  从上面的介绍来看,灰盒测试要求测试人员清楚系统内部由哪些模块构成,模块之间如何协作。因此,对测试的要求提高了。

因此,会带来一定的培训成本。不过捏,依照俺的经验,培训难度不大。稍微有点基础的测试人员,都可以在短期培训之后胜任。

  3、不如白盒测试深入

  显然,灰盒不如白盒那么深入。不过捏,考虑到灰盒测试相比白盒测试有显著的成本优势,该缺点不是太明显。

  六、总结

  总而言之,言而总之,灰盒测试是一个很不错的东东,其优点明显而缺点容易克服。另外,俺前后在两家公司的研发部门推行过,效果不错的说。大伙儿值得去尝试一下。光说了优缺点对比,在本系列的下一个帖子 ,具体介绍一下,开展灰盒测试之前,管理上有哪些准备工作。