欢迎登陆真网站,您的到来是我们的荣幸。 登陆 注册 忘记密码? ☆设为首页 △加入收藏
欢迎加入真幸福QQ群
电脑知识: 基础知识 网络技术 操作系统 办公软件 电脑维修 电脑安全 windows7 windows8 windows10 服务器教程 平板电脑 视频播放教程 网络应用 互联网 工具软件 浏览器教程 QQ技巧 输入法教程 影视制作 YY教程 wps教程 word教程 Excel教程 PowerPoint
云南西双版纳特产小花糯玉米真空包装


百度云管家WP版如何删除文件?
百度云管家WP版如何刷新文件列表?
火狐浏览器使用技巧问答
如何开启“WiFi时相册自动备份”功能?
20个设计师必备工具推荐
有道云笔记待办事项提醒怎么设置
dns错误无法上网
局域网访问共享文件无法访问
Linux系统下ADSL拨号上网方法
应当关注SDN控制器的哪些要素?
黑盒测试比白盒测试技术要求更高吗?
【 来源:网络 】【 点击:1 】 【 发布时间:2017_03_03 08:59:59 】

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

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

  在Symantec出版的一本书《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?可以进行代码级的测试用例的设计。一般来说,这个级别的要求是具备良好的代码读写的能力。

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

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

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

本网站由川南居提供技术支持,fkzxf版权所有 浙ICP备12031891号
淳安分站 淳安分站