软件测试方式的比较:白盒测试

日期: 2009-12-20 作者:Diana Kelley翻译:李博文 来源:TechTarget中国 英文

得到一个能包治百病的工具真的很诱人──例如在家里,如果有一个集成了录像机、看YouTube视频的因特网连接、以及环绕音箱的高清电视该多好?确实不错,但是,在现实中,要想达到所有这些目的还是必须要买多个部件──分别实现各自的功能。   软件测试也是一样。Jay Leek说,软件安全性测试“没有必杀法宝”。他是移动技术公司Nokia的企业IT安全主管。

白盒和黑盒软件测试工具和技术面向的是特定的不可或缺的需求;他们可以互作补充,但是没有哪个方法能实现全部功能。或者,像Leek总结说的,“你需要不同的方法来从不同的角度审视相同的软件,这样才能有足够的信心你得到的是一个比较安全的软件。”   白盒测试:……

我们一直都在努力坚持原创.......请不要一声不吭,就悄悄拿走。

我原创,你原创,我们的内容世界才会更加精彩!

【所有原创内容版权均属TechTarget,欢迎大家转发分享。但未经授权,严禁任何媒体(平面媒体、网络媒体、自媒体等)以及微信公众号复制、转载、摘编或以其他方式进行使用。】

微信公众号

TechTarget微信公众号二维码

TechTarget

官方微博

TechTarget中国官方微博二维码

TechTarget中国

电子邮件地址不会被公开。 必填项已用*标注

敬请读者发表评论,本站保留删除与本文无关和不雅评论的权力。

得到一个能包治百病的工具真的很诱人──例如在家里,如果有一个集成了录像机、看YouTube视频的因特网连接、以及环绕音箱的高清电视该多好?确实不错,但是,在现实中,要想达到所有这些目的还是必须要买多个部件──分别实现各自的功能。

  软件测试也是一样。Jay Leek说,软件安全性测试“没有必杀法宝”。他是移动技术公司Nokia的企业IT安全主管。白盒和黑盒软件测试工具和技术面向的是特定的不可或缺的需求;他们可以互作补充,但是没有哪个方法能实现全部功能。或者,像Leek总结说的,“你需要不同的方法来从不同的角度审视相同的软件,这样才能有足够的信心你得到的是一个比较安全的软件。”

  白盒测试:从里向外看

  白盒测试也称结构测试和静态分析。从内部人士的角度来审视源码──或者是编译后的二进制代码──来寻找安全性弱点或者编码漏洞。白盒测试通常在开发的早期阶段使用,因为在代码和模块正在建造的过程中的时候实施白盒会比较有效率。

  通过白盒测试,开发者可以在选择的集成开发环境(integrated development environment ─ IDE)中安装插件来在提交或者编译代码之前找出语法错误。可以把这看作是一种拼写检查;在初期检查一些可能的错误,但是它不能完全替代一个高效的编辑器。这是因为某种程度上软件的漏洞并不是语法上的。例如,让用户在一个表格中填入没有遮蔽的16位数字并无本质错误,但是如果那个数字是一个信用卡的主帐号(primary account number - PAN)而该页面是公司的持卡人数据系统的一部分,这就违反了《支付卡行业数据安全标准》(Payment Card Industry Data Security Standard - PCI DSS)。换句话说,编码错误不是软件漏洞的唯一来源;在考察一个软件的整体安全性状况的时候,也需要考虑到业务规则和法规遵从。

  静态源码分析也可以在后面的流程中实现,例如在代码被提交到源码中心之后,或者,对静态二进制代码分析来说,在代码通过独立工具编译之后。通常,审计或者安全团队在代码编译之前使用独立的工具对代码模块进行现场检查。对二进制分析来说,编译的代码可以在它投入生产之前检查,或者在发行之后发现已经投入使用的软件的问题。

  使用静态分析测试的好处是工具可以指出引起弱点或者缺陷的确切的代码行号(或者多行)。缺点是,如果没有仔细调校,静态分析工具可能会产生很多的误报。而且,对有些公司来说扫描每一行代码可能会太消耗资源。随着各个公司越来越精通于这些工具,他们可以配置他们来忽略针对特定类型弱点的警告,当然前提是公司已经认定这些弱点带来的风险是可以承受的,从而降低误报率。在效率方面,Leek建议企业要“专注于具有高风险的领域和应用,然后再查看(这些应用的)代码的子集。”

  优点:在流程的前期,白盒测试找出语法错误十分有效,能帮助开发人员写出更好的代码,而且可以在出现问题的时候找出确切的行号。

  缺点:白盒测试可能不能覆盖依赖的代码(例如服务,库和其它资源),它需要访问源码,对缺陷的可利用性认识能力有限,而且在调校不当的时候会产生大量的误报。

相关推荐