黑盒测试比白盒测试技术要求更高吗?

几个月前我还在谈论黑盒测试不一定比白盒测试技术含量低,现在我却可以比较肯定地说,黑盒测试比白盒测试更难,技术要求更高。道理其实非常简单,黑盒,白盒测试的本质区别在于源代码的访问权利,白盒测试具有这种权利,因此也就具有更多的?#35797;?#21644;信息进行测试,?#27604;?#20107;情就会变得容易很多,而黑盒测试由于不能看到源代码,就使得对于白盒测试人员发现的bug,你要花更多的时间,并且具有更高的技术才有可能发现。

我做黑盒测试已经4年多了,是一个地地道道的黑盒测试人员,可是我具有源代码访?#23454;?#26435;利,也就是说,虽然我是做黑盒测试的,但是我所拥有的信息并不比白盒测试人员少。随着我黑盒测试经验和技术的提高,我突然发现我已经完全依赖与源代码提供的信息了,如果没有源代码,我的黑盒测试的工作将会变得复杂很多,困难很多,甚者无法实现。这也让我有了一个强烈的感觉,就是黑盒测试比白盒测试更难。

在Symantec出版的一本书《TheArtofSoftwareSecurityTest》里边就有这个说法。这本书我觉得一般般,但是里边体现着这个道理,就是,“对于白盒测试,一个公司可以组成一个测试队伍来进行,而对于黑盒测试,可能就很少有公司有这个能力了,只能去外边聘请专业的公司来作,这个成本是很高的,但是是值得的”。

经常听到有人抱怨“我在公司是做黑盒测试的,没什么技术含量,我的目标就是转到白盒测试”,我一?#26412;?#24471;这个说法是可以质疑的,也希望看了我的这篇文章以后,不要再出现这种声音,更不要再拿它当成自己不去提高测试技术的一个冠冕?#27809;实?#20511;口了。

为什么我们大多数人,包括以前我自己都会认为黑盒测试比白盒测试的技术含量低呢?那是因为,我们绝大多数人都是在做低端黑盒测试的。很早以前我就曾想过,黑客都是通过黑盒测试的方法来寻找安全漏洞的,我们怎么能说黑盒测试技术含量低呢?随着自己的水?#36739;?#40657;客的?#36739;?#25509;近,自己也越来越有更深,更丰富的理解和体会了。

如果我?#21069;?#21018;进入黑盒测试领域的新?#35828;?#25216;术打分为0,而黑客的技术打分为5的话,那么根据技术水平我有这样一个列表:

0.测试新手

1.黑盒手工测试

2.黑盒自动化测试

3.具有白盒测试能力

4.安全测试

5.黑客

大?#26131;?#24847;,很多人把自己的测试技术的提高依赖于公司,依赖于team,依赖于project,这是不对的。我本人在公司的工作内容?#36824;?#23601;是黑盒自动化测试,可是这并不影响我可以向更高的?#36739;?#21457;展,现在internet这么发达,什么资料不能找到呢?各种各样的计算机书籍,网上各种各样的计算机技术交流探讨的论?#24120;?#21338;客等等。很多人觉得跳槽,换个工作自己就能更好的发展测试技术,这也是有误区的。说句实话,个人发展本质上还是个?#35828;?#38382;题,并不是公司的问题,或者你的lead,你的manager的问题,一个公司既然要你了,就说明你自己的能力和水平跟公司对你的要求还是比较接近的,公司对你已经有一个期望值了,也就是说你能胜任这份工作了,而再往上的发展并不属于公司对你的期望了,绝大多数的情况还是要靠个?#35828;摹?#22240;此,我个人认为,无论在任何的工作环?#24120;?#24037;作内容的情况,你都是有技术提高余地的,但是这事情要由你自己来drive,而不要太多地依?#20302;?#37096;环境。我?#26377;?#21040;大?#38590;?#20064;,主要是靠自学,我很少能集中精力地去听完老师的一堂课。包括现在,我很多training都是没听完就走人了,或者有些签个到就溜。我的这个性格造就了我很独立?#38590;?#20064;能力,自己为自己规划学习,不知道?#28304;?#23478;是否有借鉴作用。

话说回来,因为大家对0,1,2级别应该都是比较熟悉的,我想谈谈3,4,5级别。

3.作为一个黑盒测试人员,没有人会要求你不具备白盒测试能力,如果你有源代码访?#23454;?#26435;利,那很好,你完全可以利用这个优势,把通过查看源代码得到的信息应用到你的黑盒测试中去。如果你没有源代码访?#23454;?#33021;力,这也并不能阻碍你在这个领域进行探索和实践。如果你的项目是Java,.NET这种,你可以反编译,如果你的项目是C,C++这种,你可以反汇编。总而言之,所谓具有白盒测试能力的意思是,发现一个bug能够定位到代码里,是什么代码,为什么产生这个bug?可以进行代码级的测试用例的设计。一般来说,这个级别的要求是具备?#24049;?#30340;代码?#21015;?#30340;能力。

4.安全测试与白盒测试的根本区别在于安全意识,黑客的思维。有一本书《WritingSecureCode》里面提到“你可以培训一个人具有测试安全feature的能力,你很难培训一个人具有黑客的思维方式,如果你发现了这样一个人,你就Hire他”。在这个级别的人要具有?#24049;?#30340;安全意识,知道各种各样的攻击方式,当发现一个bug的时候要就有安全方面的判?#24076;?#27604;如“是否一个安全漏洞”,“是否能够被黑客利用”,?#25226;现?#31243;度如何”,等等。同样,自己的测试内容里要包含大量的安全测试用例。

5.黑客级别要求就更高了。对于安全测试来说,只是分析到“是否能够被黑客利用”,而黑客就要分析“如何利用”以及写出攻击代码进行攻击。至少对我而言,他们要具备非常熟练的汇编编程能力。

以前我认为,要想进行安全测试,或者说做高端测试,多年的开发经验必不可少,实践证明也未必。同理,要想进行高端测试,你也未必要先转向白盒测试。从我个?#35828;?#32463;历来说,只要你自己有心,只要你自己用心,你总能发展和提高的,外部环境固然重要,但是起决定因素的还是自己。安全测试完全不属于我的工作内容与职责,可是在一个月的时间里,我已经连续发现4个安全漏洞了。如果你在工作中也能够发现你项目的安全漏洞,公司还能如何不重视你?

猜你?#19981;?/h3>
  1. 百度输入法怎么设置快捷键让输入更便捷效率更高

    百度输入法怎么设置快捷键?输入法设置选项?#36824;?#21253;含十余个,包括快捷键、外观、词库、账号、按键等多个方面的设置。每一项?#27809;?#37117;可以进行灵活设置,选择最符合你的使用习惯。这样才能让你的输入更便捷,效率更高。 ...

  2. office2003怎么升级到office更高版本

    office2003怎么升级到office更高版本 office office2003升级到office更高版本的方法: 首先,先把电脑里的office2003的所有组件都?#23545;?#20102;,具体步骤如下: 1. ...

  3. 微信理财通和余额宝?#30446;釷找?#26356;高些

    腾?#37117;?#25903;付宝余额宝这么火,终于坐不住了。昨天腾讯微信宣布“理财通”上线。这下就有些看头,反正他们怎么都最后还不是便宜了我们!管他呢! 不知道理财通和余额宝哪个?#25214;?#39640;下面和小编一起来看看吧。 理财通和余 ...

  4. 室内线?#20998;?#24341;更高端 高德地图实用玩法大公开

    对于一款地图?#24049;?#31867;型的软件来说,它的用途会体现在哪些方面呢?#38752;?#36710;的人肯定会用到实时?#24049;劍?#24466;步者肯定会用到步行?#24049;劍?#32780;搜寻周边精?#24335;?#30446;的朋友肯定会用到?#26696;?#36817;”的功能。其实,高德地图在满足以上三种状况的前 ...

  5. QQ相册容量与如何获取更高容量详?#38468;?#32461;

    普通?#27809;?#30340;相册容量为30G,可以通过开通成为黄钻或QQ会员来增加相册的容量.不同等级的黄钻和会?#27604;?#37327;也不相同,具体规则如下表: 注: 1.取消黄钻.QQ会员业务,会减少相应等级下的相册容量,但已上传的 ...