• 软件测试技术
  • 软件测试博客
  • 软件测试视频
  • 开源软件测试技术
  • 软件测试论坛
  • 软件测试沙龙
  • 软件测试资料下载
  • 软件测试杂志
  • 软件测试人才招聘
    暂时没有公告

字号: | 推荐给好友 上一篇 | 下一篇

模糊测试是安全软件开发方法的一部分吗?

发布: 2010-1-22 11:08 | 作者: 不详 | 来源: 领测软件测试网采编 | 查看: 206次 | 进入软件测试论坛讨论

领测软件测试网

  模糊测试是安全软件开发方法的一部分吗?   软件测试 

   问:我听说一个叫“模糊测试”(Fuzzing)的新技术。这种技术是不是查找出软件漏洞的一个有效方法呢?

  答:模糊测试,事实上不是一种新技术。它早在1989年就被威斯康星州的麦迪逊大学BartonMiller教授发明。由于目前人们聚焦于开发更加安全的软件,模糊测试才被更加广泛应用并成为公认的代码测试方法。

  在软件测试过程中,一个程序被随机产生的数据大量验证,称为模糊测试。假如一个程序在应对任一的这类数据上失效,开始出现冲突、锁住、消耗大量内存或者产生不可控制的程序错误,开发者就知道代码中某处出现了bug。因此这个缺陷可能在程序发布或者配置前被定位并予以矫正,从而使可能的程序漏洞不出现在程序最终发行版本中。软件测试被频繁地用于测试缓冲区溢出漏洞,而这种溢出在输入字符的数量超出可用的缓冲区空间时候发生。

  软件程序有许多种的输入方式,比如鼠标、键盘和触摸屏。另外还包括调用其它程序或植入实用系统中的控制器数据。模糊测试可以有效地找出漏洞,是由于输入一个程序的数据是随机的,因此不会被任何的关于软件应该如何运行的偏见所束缚。当人们自己测试软件的时候,可能作出软件被如何使用的假设,而造成只对特定的输入进行测试。

  一个彻底的模糊测试是对有效数据和随机数据的联合调试。有效数据测试防止程序在抵达一个欠缺的代码块前出现拒绝信息。

  你必须意识到,虽然通过一个模糊测试,这并不意味着一个程序完全没有bug。软件测试仅仅是随机测试的模拟,是程序行为的一个有限样本的测试。测试可能只展现那些软件可以处理的没有冲突的例外。还有,模糊测试不能测试出开发中出现的逻辑错误。

  模糊测试一个大的优点在于它的成本效率;测试通常是自动化的,而且容易配置。模糊测试是一种有效的软件测试方法,但它也只是众多软件测试方法中的一种。静态分析、相互评价和安全代码方法学都是安全软件开发的方法。

延伸阅读

文章来源于领测软件测试网 https://www.ltesting.net/

TAG: 软件开发


关于领测软件测试网 | 领测软件测试网合作伙伴 | 广告服务 | 投稿指南 | 联系我们 | 网站地图 | 友情链接
版权所有(C) 2003-2010 TestAge(领测软件测试网)|领测国际科技(北京)有限公司|软件测试工程师培训网 All Rights Reserved
北京市海淀区中关村南大街9号北京理工科技大厦1402室 京ICP备10010545号-5
技术支持和业务联系:info@testage.com.cn 电话:010-51297073

软件测试 | 领测国际ISTQBISTQB官网TMMiTMMi认证国际软件测试工程师认证领测软件测试网