模糊测试中测试用例生成方法
2015 年 第 24 卷 第 4 期 计 算 机 系 统 应 用
模糊测试中测试用例生成方法①
李 彤, 黄 轩, 黄 睿
(装甲兵工程学院 信息工程系, 北京 100072)
摘 要: 代码覆盖率一直是影响模糊测(Fuzzing)测试效率的重要因素, 而模糊测试用例则很大程度上影响代码覆
盖率, 所以如何构造高效的测试用例就显得非常重要. 将遗传算法应用到测试用例的生成上, 可以实现降低测试
用例的冗余度, 还能提高代码的覆盖率. 从而使被测程序在尽量短的时间内得到充分的测试, 提高模糊测试的效
率和效果.
关键词: 模糊测试; 测试用例; 代码覆盖; 遗传算法
Test Case Generation Method in Fuzzing
LI Tong, HUANG Xuan, HUANG Rui
(Department of Information Engineering, Academy of Armored Force Engineering, Beijing 100072, China)
Abstract: Code coverage has been an important factor affecting the efficiency of Fuzzing, but it is largely affected by
Fuzzing test cases, so it is very important to construct efficient tests. Applying genetic algorithm into the generation of
test cases, it can not only reduce the redundancy of test cases, but also improve code coverage. So that we can fully test
the target in less time, and improve the efficiency and effectiveness of Fuzzing test.
Key words: Fuzzing; test case; code coverage; genetic algorithm
目前, 模糊测试已经被广泛的应用于各种软件的 试技术, 通过给程序提供恶意的输入迫使程序异常,
安全测试中, 这得益于其高度自动化的特性. 但模糊 然后分析异常发生的位置和原因, 从而对程序内部的
测试本身具有盲目性, 传统的模糊测试是在输入空间 缺陷做出判断. 模糊测试的工作流程如图 1 所示.
内随意取值, 这样产生的测试用例很大一部分在还没
有进入到软件内部就被拒绝了, 从而导致了整个测试
效率低. 遗传算法是利用进化历史中获得的信息指导
下一步的搜索或计算, 其中适应度函数确定了整个算
法的方向. 文中将遗传算法引入到模糊测试的测试例
生成过程中, 通过利用测试过程中产生的历史信息,
由适应度函数来控制进化方向并确定下一代的测试用
例. 在保证其高度自动化的基础上使得模糊测试的测
试具有了方向性, 从而提高测试的效率.
1 模糊测试技术概述 图 1 模糊测试的流程
模糊测试最早在 1989 年由 Wisconsin-Madison 大
学的Barton Miller 教授提出[1], 用于测试UNIX 系统的 完整的模糊测试过程大致要经过识别目标及输入,
健壮性. 模糊测试是一种自动化或半自动化的软件测 生成模糊测试数据, 执行模糊测试数据, 监视异常, 确
① 收稿时间:2014-07-17;收到修改稿时间:2014-09-04
Software Technique ·Algorithm 软件技术·算法 139
计 算 机 系 统 应 用 2015 年 第 24 卷 第 4 期
定可利用性五个阶段.
相关资源:小兵软件安装程序破解版-其它工具类资源-CSDN文库
声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!