什么是白盒测试?很多人都听说过白盒测试。通常的说法是,白盒测试是能看到全部产品源代码的测试。常常,白盒测试都是和牛人绑在一起的。个人认为这是一种比较狭隘的说法。然而究竟什么是白盒测试呢?可能有很多的人在做了很长时间的白盒测试以后发现,自己其实不是在做白盒测试,而是在做灰盒测试,原因是不够“ 白”,因为他没有看到全部的产品代码。其实,我个人认为,这是做白盒测试的误区。

从广义来说,个人认为,白盒测试是代码级的测试,是软件半成品的测试,不存在所谓的灰盒测试。所谓的灰盒测试,只不过是因为代码的暴露程度不同而已,从本质上来说,都是白盒测试。其实,无论是作为一个测试者,还是作为一个开发者,谁也不能保证通晓所有的代码,尤其是在现代软件企业中工程师的职责和分工越来越细,第二、三方库越来越丰富了以后。

然而,我们该如何构建白盒测试体系呢?由前面的讨论,我们可以知道,产品代码的暴露程度在白盒测试体系中有着十分重要的作用。

在代码暴露量等于零的时候,测试的粒度和广度不是等于零的,这里代表的是黑盒测试。随着代码暴露量的增加,测试的粒度和广度并不是线性上升的,这里主要体现了一个含义,代码暴露量的边际效应该是递减的。也是说,代码暴露量的增加给测试带来的难度是增加的。当代码暴露量达到的时候,我们也很难做到测试覆盖率达到。