FUZZ测试方法介绍

FUZZ测试方法介绍 - tester的日志 - 网易博客

FUZZ测试方法介绍   

2011-07-18 14:43:52|  分类: 测试思想 |  标签:  |字号  订阅

Fuzz这个名词来自于Professor Barton Miller。在1989年一个风雨交加的夜晚,他登陆一台自己的主机,不知道怎么回事,信号通过猫传到主机上,雷电一闪,把里面的高位变低位,低位至高位了,结果到了主机以后改变了。他突发奇想,把这种方式作为一种测试的方式来做。

1、到底什么是Fuzz Test?

Generally speaking fuzz is a brute force method which used to break software,就是用大量的测试用例一个一个试,尽可能多的找出有可能出问题的地方。

2、Fuzz怎么工作?

现在有无数有名的Fuzz工具,有很多人很多还在写,一般包括四个部分。

(1)Generate lots of malformed data as test cases,要生成大量的测试用例。这个测试用力是malformed的,一个软件首先要找到输入点,然后把数据丢进去,这个数据有可能是一个文件,有可能是一个数据包,有可能是测试表里面的一个项,有可能是临时文件里面的一个东西,总之是一种数据,要定义malformed这种非正常的数据。

(2)Drop the test cases into product,把它丢进去,看这个产品怎么反应。

(3)Monitor and log any crash/exception triggered by malicious input.

(4)Review the test log, investigated deeply.

3、Fuzz在各个平台上的一个测试情况 

FUZZ测试方法介绍_第1张图片

 

Linux平台上的报告

FUZZ测试方法介绍_第2张图片

Mac上的一些应用测试情况

FUZZ测试方法介绍_第3张图片

数据说明一切,这些数据说明了fuzz在测试中的价值。

 

FUZZ应用

我在函数库中增加了一个fuzz工具,是用来fuzz http接口的。采用的是比较好用wfuzz

http://www.edge-security.com/wfuzz.php

 

加载函数库后,直接使用wfuzz命令即可。

程序运行,依赖pycurllibcurl,如果提示有问题,请安装这两个库解决。

 

 

FUZZ测试方法介绍_第4张图片

Fuzz isearch的请求

FUZZ测试方法介绍_第5张图片

Fuzz isearch的关键词查询。可以支持词典穷举。可以特殊字符写成文件的形式可以加进来

FUZZ测试方法介绍_第6张图片


Fuzz的自定义改进

可以增加对结果的解析

FUZZ测试方法介绍_第7张图片

Fuzz思想的延伸

Fuzz其实就是一个缩微版的自动化测试框架。

只不过他的测试数据,支持随机与特定的规则。Fuzz的判断依据,更简单而已。只是简单的异常情况。

这点上,我们可以进行充分的扩充,比如支持doc格式的判断,提取里面的某些字段判断等。

 

我们也可以在此理论基础上去合理的使用我们的框架。比如UI自动化一样,如果pwatir写出来的代码,支持query从文件中读取,那么就可以随意的构造Query了。

如果gtest写出的单元测试框架,可以支持从文件,或者数据库读取TC数据。那么fuzz也很容易实现。

同样日志对比脚本,也可以实现fuzz

 

 

此次介绍的是fuzz http协议。当然fuzz不仅支持这些,还支持其他的协议,以及执行方式。

比如fuzz c++代码来生成自动化的单元测试。

 

另外,也并不是任何地方都适合fuzz测试,需要根据场景选择。比如算法组的某些算法,为了提升效率,是会牺牲一些边缘的异常处理的。

如果是对外的Query或者接口,是有必要做的。比如isearch的查询,seachwebp4p的接口。

 

其他fuzz工具

推荐一个可以方便hack的工具,ruby编写,可以很容易开发自定义的fuzz。非常好用。

当然也可以使用上面介绍的wfuzz,采用python编写的。

http://rfuzz.rubyforge.org/index.html

FUZZ测试方法介绍_第8张图片

网上也有N多的fuzz工具集合与说明,大家可以自己Google

 

其他文章

 

http://www.aqualab.cs.northwestern.edu/HotWeb08/papers/Hammersland-FTW.pdf

http://www.edge-security.com/wfuzz.php

http://huaidan.org/archives/3261.html

你可能感兴趣的:(测试)