发布时间:2022-07-24 文章来源:xp下载站 浏览:
网络技术是从1990年代中期发展起来的新技术,它把互联网上分散的资源融为有机整体,实现资源的全面共享和有机协作,使人们能够透明地使用资源的整体能力并按需获取信息。资源包括高性能计算机、存储资源、数据资源、信息资源、知识资源、专家资源、大型数据库、网络、传感器等。 当前的互联网只限于信息共享,网络则被认为是互联网发展的第三阶段。 几个月前我还在谈论黑盒测试不一定比白盒测试含量低,现在我却可以比较肯定地说,黑盒测试比白盒测试更难,要求更高。道理其实非常简单,黑盒,白盒测试的本质区别在于源代码的访问权利,白盒测试具有这种权利,因此也就具有更多的资源和信息进行测试,当然事情就会变得容易很多,而黑盒测试由于不能看到源代码,就使得对于白盒测试人员发现的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的时候要就有安全方面的判断,比如“是否一个安全漏洞”,“是否能够被黑客利用”,“严重程度如何”,等等。同样,自己的测试内容里要包含大量的安全测试用例。 网络的神奇作用吸引着越来越多的用户加入其中,正因如此,网络的承受能力也面临着越来越严峻的考验―从硬件上、软件上、所用标准上......,各项技术都需要适时应势,对应发展,这正是网络迅速走向进步的催化剂。 |
上一篇:传说中的4G到底是如何回事?