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

   几个月前我还在谈论黑盒测试不一定比白盒测试技术含量低,现在我却可以比较肯定地说,黑盒测试比白盒测试更难,技术要求更高。道理其实非常简单,黑盒,白盒测试的本质区别在于源代码的访问权利,白盒测试具有这种权利,因此也就具有更多的资源和信息进行测试,当然事情就会变得容易很多,而黑盒测试由于不能看到源代码,就使得对于白盒测试人员发现的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个安全漏洞了。如果你在工作中也能够发现你项目的安全漏洞,公司还能如何不重视你?

时间: 2024-08-29 10:56:07

黑盒测试比白盒测试技术要求更高吗?的相关文章

交互广告技术需要更高的门槛

上个月,国际广告局(IAB)围绕在线用户评估问题举办了一次非常成功的会议.我说这次会议"非常成功"是因为这次会议解决了一些问题,而且承诺今后要完成一些工作. 今年4月,国际广告局致信尼尔森调查组织和comScore,业界存在很大矛盾.市场开发商不得不通过多个评估报告来判断用户在线行为,现在很有必要很用户在线评估工作达到一个新的,更透明的水平.国际广告局的提议得到了广告研究基金会.美国广告协会.国家广告商协会.美国发行商杂志.媒体评估委员会.在线发行商协会以及保护动物协会的支持. 在多家

蹲下来是为了跳得更高-2016 天猫技术这一年

正儿八经 点击蓝色字体可查看全文 天猫技术全面打造『身临其境』的消费者交互体 12月20日,天猫技术部集结了一大批优质技术服务商(ISV)和品牌代理商.市场运营等代表,在喵葩互动创意大赛颁奖暨战略合作发布会上,宣布成立"天猫互动联盟".这意味虚拟穿戴.全景体验.3D交互.AR(现实增强).语音和手势识别等新的消费者交互形式,都将成为天猫购物链路中的日常体验,大量运用在家装.服饰.汽车.数码家电等行业中.从传统图文并茂的货架式购物体验全面升级为身临其境的沉浸式体验! 天猫总架构师何崚:好

ICT领域浮现新一批颠覆性技术 亚太地区的企业应用热情更高

以万物互联.人工智能.虚拟现实为代表的新兴"颠覆性技术",正在引领信息通信技术新一轮的发展浪潮.全球信息技术研究和顾问公司Gartner的年度首席信息官调查显示,相比全球同行,亚太区首席信息官采用物联网(IoT).人工智能(AI)与会话式界面等颠覆性技术的比例更高.43%的亚太区首席信息官表示他们已经部署或在短期内计划部署物联网技术(全球比例为37%):37%已经部署或在短期内计划部署人工智能技术(全球比例为25%).28%的亚太区首席信息官已经投资于会话式界面(全球比例为21%):2

明明技术难度更低,为何MySQL DBA工资比Oracle高?

前几天在知乎上出现了一个很热的帖子,话题是"MySQL DBA技术难度低为什么工资比oracle高?",这个话题很快引起了热烈的讨论.从回帖的情况来看,大部分人几乎都默认了MySQL DBA工资的确高这个事实,那么原因是什么,我们节选MySQL专家刘伟的回帖跟大家分享.以下是他回帖的原文: 原因分析 主要有以下两个原因: 市场供需关系 技术要求相对高 这两个因素一直没有得到改善,导致现在市场的行情是:招MySQL DBA难,招称心的MySQL DBA就更难.先说一个工资议价的常识,工资

川普提高技术企业税收,迫使后者以更高工资雇用技能水平更低的国内人员

 对于硅谷自成体系的运营方式,不光是美国,整个世界往往都对其投出不屑的目光. 是的,可观的人员薪酬.高度集中的单一行业再加上自我引导型文化导向,这一切都让外人很难理解其如何发展,更不用提会给人类带来怎样的影响. 而技术领导者们在达沃斯峰会上与民主党领袖及银行家们一起用餐时,对方无奈的态度显然也从侧面证明了这一点. 在硅谷亿万富翁彼得·蒂尔的支持之下,唐纳德·川普在一片争议声中坐实了其候选人地位,同时亦巩固了其有能力说服足够的美国人将其送入白宫的呼声优势. 然而作为硅谷的家园,加利福尼亚州民众却集

论黑盒测试与白盒测试在软件测试中的不同作用

摘要:黑盒测试着眼于外部结构,不考虑内部结构,只依据程序的需求规格说明书,检查程序的功能是否符合它的功能说明:而白盒测试着眼于内部结构,对软件的过程性细节做细致的检查. 关键词:黑盒测试:白盒测试:测试用例 一.引言 随着软件市场的成熟,人们对软件作用的期望值也越来越高,我国的软件企业已越来越意识到软件测试的重要性,逐渐加大软件测试在整个软件开发的系统工程中的比重. 软件测试并非传统意义上产品交付前单一的"找错"过程,而是贯穿于软件过程的始终,是一个科学的质量控制过程.而对于任何工程产

使用AJAX技术构建更优秀的Web应用程序

ajax|web|程序 一. 简介 异步JavaScript+XML(即Ajax),是一种创建交互式web应用程序的Web开发技术.这种程序使用JavaScript和XML从客户端提交服务器请求,且整个过程中仅需要交换少量的数据而不必提交整个web页面.因此,这样的程序将更快和更具响应性,并将成为新一代客户机-服务器系统的重要基础技术之一.你可以在站点http://www.google.com/webhp?complete=1&hl=en处看到一种良好的AJAX实践技术展示.在此页面中,如果你把

如何设计出易用性更高的iPad软件

概要:iPad 软件的介面设计缺乏统一性,各种功能不易被用户发觉,用户无意之间的手势也很容易造成误操作.此外,整个介面的隐喻[译注一]过度接近印刷品,人机交互的方式也很怪异,这都会造成进一步的易用性问题. 「看上去像一台大号 iPhone,」这是我们要求用户测试 iPad 时听到的第一反应.(第二反应呢?「哇,好重.」) 但从交互设计的角度来看,iPad 的介面不应只是一个放大版的 iPhone 介面. 的确,我们的研究表明,iPad 底部的标签栏远不如 iPhone 的有效.在 iPhone

新手怎么建设更高质量的外链

在为自己的网站进行优化当中,很多新手站长们经常会听到关于"内容为王,外链为皇"这句话,于是乎,整天拼命的给自己的网站发外链,每次见到一个网站就想尽一切办法搞外链.最后给自己的网站发了很多很多条外链,但是却没有什么效果,甚至可能还比不上外链比你少的网站的排名,而且由于你网站的外链一下子增加了太多从而导致被百度给拔毛了,那么这是什么缘故?没错"外链为皇"这句话是正确的.但是却是即简单而又深奥的一句话,看起来简单,但是做起来就很难了. 因为你给网站建立的基本上都是一些垃圾