软件测试论坛

 找回密码
 软件测试论坛注册页
查看: 2013|回复: 8

[功能测试文档] 黑盒测试比白盒更难的五个理由(转载)

  [复制链接]
发表于 2010-5-11 16:43:41 | 显示全部楼层 |阅读模式
软件测试工程师就业班马上开班
黑盒测试比白盒更难的五个理由
            来源:[b][url=http://www.ltesting.net/html/77/category-catid-377.html]网络[/url][/b] 作者:cleverman 时间:2008-11-24 Tag:黑盒测试   
  几个月前我还在谈论黑盒测试不一定比白盒测试技术含量低,现在我却可以比较肯定地说,黑盒测试比白盒测试更难,技术要求更高。道理其实非常简单,黑盒,白盒测试的本质区别在于源代码的访问权利,白盒测试具有这种权利,因此也就具有更多的资源和信息进行测试,当然事情就会变得容易很多,而黑盒测试由于不能看到源代码,就使得对于白盒测试人员发现的[b][url=http://www.ltesting.net/html/98/category-catid-98.html]bug[/url][/b],你要花更多的时间,并且具有更高的技术才有可能发现。

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

在Sym[b][url=http://www.ltesting.net/html/57/category-catid-457.html]ant[/url][/b]ec出版的一本书《TheArtofSoftwareSecurityTest》里边就有这个说法。这本书我觉得一般般,但是里边体现着这个道理,就是,“对于白盒测试,一个公司可以组成一个测试队伍来进行,而对于黑盒测试,可能就很少有公司有这个能力了,只能去外边聘请专业的公司来作,这个成本是很高的,但是是值得的”。

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

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

如果我们把刚进入黑盒测试领域的新人的技术打分为0,而黑客的技术打分为5的话,那么根据技术水平我有这样一个列表:

0.测试新手

1.黑盒手工测试

2.黑盒自动化测试

3.具有白盒测试能力

4.安全测试

5.黑客



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

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

3.作为一个黑盒测试人员,没有人会要求你不具备白盒测试能力,如果你有源代码访问的权利,那很好,你完全可以利用这个优势,把通过查看源代码得到的信息应用到你的黑盒测试中去。如果你没有源代码访问的能力,这也并不能阻碍你在这个领域进行探索和实践。如果你的项目是Java,.NET这种,你可以反编译,如果你的项目是C,C++这种,你可以反汇编。总而言之,所谓具有白盒测试能力的意思是,发现一个bug能够定位到代码里,是什么代码,为什么产生这个bug?可以进行代码级的[b][url=http://www.ltesting.net/html/94/category-catid-94.html]测试用例[/url][/b]的设计。一般来说,这个级别的要求是具备良好的代码读写的能力。

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

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

以前我认为,要想进行安全测试,或者说做高端测试,多年的[b][url=http://www.ltesting.net/html/4/category-catid-4.html]开发[/url][/b]经验必不可少,实践证明也未必。同理,要想进行高端测试,你也未必要先转向白盒测试。从我个人的经历来说,只要你自己有心,只要你自己用心,你总能发展和提高的,外部环境固然重要,但是起决定因素的还是自己。安全测试完全不属于我的工作内容与职责,可是在一个月的时间里,我已经连续发现4个安全漏洞了。如果你在工作中也能够发现你项目的安全漏洞,公司还能如何不重视你
ISTQB
发表于 2010-5-12 16:03:15 | 显示全部楼层
软件测试工程师就业班马上开班
感谢楼主的分享,我也是刚入行的[b][url=http://www.ltesting.net/html/93/category-catid-93.html]黑盒测试[/url][/b]人员,读到这篇文章很受教益,谢谢!
ISTQB
发表于 2010-5-13 09:51:03 | 显示全部楼层
软件测试工程师就业班马上开班
顶一个,多看看
发表于 2010-6-22 14:35:24 | 显示全部楼层
软件测试工程师就业班马上开班
很不错!我也很同意楼主的意见!我们是不应该抱怨什么!做好自己的事情,不断的给自己充电!要想做更好的,必须先把自己的基础打好!谢谢哦!
发表于 2010-6-22 16:19:50 | 显示全部楼层
软件测试工程师就业班马上开班
我不太同意楼主的观点。我并不否认自学是正确的,可是如果公司里没有人用你所知道的东西,不能运用你的成熟的理论来运行[b][url=http://www.ltesting.net]测试[/url][/b]的话,你的这些理论有发挥的余地吗?不能应用,你学的东西不是白学了吗?我仍然认为,只有运用,才能将你的能力得到提升!否则,书上的“经验”也只是纸上谈兵而已.
发表于 2010-6-24 14:12:31 | 显示全部楼层
软件测试工程师就业班马上开班
不敢苟同,个人看法是白的比黑的难,当然了,难着不会,会着不难。
发表于 2010-12-10 12:55:49 | 显示全部楼层
楼主这篇文章的前提是在懂编程,代码的情况下认为黑盒测试比白盒测试难,但对于不懂编程,不懂代码的人来说,刚好相反,不过,楼主的五个等级也让我对测试发展方向有了很明确的了解。谢谢分享
发表于 2012-9-12 10:29:42 | 显示全部楼层
很受启发  谢谢
发表于 2012-10-10 11:12:56 | 显示全部楼层
首先谢谢楼主分享,对于一个不懂代码,同样进行黑盒测试人员来说如果不在项目中进行提升自己,那在哪里提升?书中能提升么?我个人觉得一个人对于测试人员来说,项目的测试是提升的最好机会。

本版积分规则

Archiver|手机版|小黑屋|领测软件测试网 ( 京ICP备10010545号-5 )

GMT+8, 2021-10-16 20:06 , Processed in 0.203175 second(s), 14 queries , Xcache On.

Powered by Discuz! X3

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表