通常的观点是:白盒测试要分析代码,更有技术含量。其实这个观点是错误的。要知道可以这么说没有黑盒测试的话,白盒测试是没有办法进行的,或者这么说即便做了世界上最完美的白盒测试,没有做黑盒测试,这个测试依然是不完全的。白盒测试是对过程的测试,黑盒测试是对结果的测试。有了好的过程并不一定会有好的结果。(如果我和我前任女朋友,大家都很好的呵护对方,可是最后还是分手了)所以说两者缺一不可。因为测试说到底是找出这个程序或系统中的错误,所谓错误有两种:就是错误的,“1+1=2”但是出来是3。另一种是不符合客户的要求。这两种都需要通过黑盒测试来最后确认,因为你做白盒测试时你确认了代码是正确的,但是你没有办法确定这段正确的代码的组合最后产出的结果是不是客户要求的。如果不是你的代码正确么?所以我认为(我看到现在测试书籍也都是这么说的)白盒测试作为黑盒测试的辅助测试,因为你首先要用黑盒测试来验证结果是否正确,或者说目标是否正确。如果结果正,确然后再用白盒测试来验证,这个正确的结果是不是由于正确的过程产生的。如果结果不正确,那么用白盒测试来找到过程中错误的地方。它们的关系在我看来就像恩爱的夫妻一样不可分割(不好意思刚刚失恋,比较容易想到这个做比喻)。只有先做好黑盒测试,然后用白盒测试验证,这个测试才能说做的完整了。
所以请大家以后不要再看不起做黑盒测试的人了。黑盒测试也不是没有前途的,而是有前途的。不过如果真的想再测试这个行当做深,就不能过于关注某一点,要适当的看得广,看的深,因此想成为测试专家就真的不能只懂黑盒测试。建议做黑盒测试的人以这个为切入点来做好测试。