模糊测试中测试用例生成方法

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 期

定可利用性五个阶段.

软件测试模糊搜索用例,模糊测试中测试用例生成方法.pdf相关推荐

  1. 符号测执行软件测试,基于符号执行与模糊测试的混合测试方法

    1 引言 随着信息技术的发展, 软件已经渗透到现代社会的方方面面, 而由于开发不当引入的软件漏洞也日益增多.据统计, 最近5年内软件漏洞数增加了38%, 而仅在2016年~2017年间就增加了14%[ ...

  2. 模糊测试中的动态符号执行

    文章目录 前言 整体描述 前言 来源:Concolic Fuzzing 建议阅读原文,我这里仅仅整理下思路:fuzzing仓库 建议先阅读这篇文章:SMT简介 整体描述 AFL可以通过插桩的方式,记录 ...

  3. 坐地铁软件测试自学,基于UML的地铁联锁软件测试用例生成方法的研究

    摘要: 计算机联锁是保证列车安全运行的重要技术措施,对联锁逻辑的分析.测试.验证是满足苛刻需求条件的基础.联锁软件作为保证行车安全的重要设备,定期对其测试至关重要.基于模型的测试用例生成方法研究,可以 ...

  4. 软件测试顺序图写测试用例,基于UML顺序图的场景测试用例生成方法

    基于UML顺序图的场景测试用例生成方法 发表于:2007-06-01来源:作者:点击数: 引言 本文提出了一个基于 UML 模型图来测试场景的方法,它以顺序图为主要测试模型,结合类图和状态图导出所有的 ...

  5. 科技论文写作中脚注生成方法

    科技论文写作中脚注生成方法,有示例和图示 /Files/xiexiaokui/论文脚注生成方法.pdf 转载于:https://www.cnblogs.com/xiexiaokui/archive/2 ...

  6. 软件测试中的测试结果block是什么?软件测试的用例状态/测试结果分为pass , fail , Block...

    今天测试组长问我有没有block的情况,我:???block是什么?? 作为一位测试小白,接下来给大家介绍一下软件测试的用例状态. 具体这些状态都是什么意思呢??? 1. 排队(In Queue):测 ...

  7. 下列哪一项不属于软件测试步骤,[多选] 下列测试中哪些不属于软件测试步骤中的()。...

    [多选] 下列测试中哪些不属于软件测试步骤中的(). 更多相关问题 [名词解释] CKD汽车 [名词解释] 动力因数D [名词解释] 利用附着率 [名词解释] 动力因数D [名词解释] 扰流板 [名词 ...

  8. 场景法设计测试用例atm_软件测试零基础入门:常用八大测试用例设计方法,含案例...

    测试用例的十大特点 测试用例编号.测试项.测试标题.用例属性.重要级别(高中低).预置条件.测试输入.操作步骤.预期结果.实际结果: 测试用例的编写原则:100%的覆盖需求文档,如需求变更时,测试用例 ...

  9. 电容在ESD测试中的选用方法

    电容是构成电路的基本器件之一,也是在EMC整改手段中最便利.最有效和成本最低的手段之一.而在ESD测试中,我们会遇到一些比较明显的测试现象,比如机器重启或者屏幕闪屏,而这些现象有时候只需要加一个电容就 ...

最新文章

  1. 气温上升影响数据中心节能
  2. Python 实例方法、类方法、静态方法的区别与作用
  3. JavaScript实现Interpolation search插值查找算法(附完整源码)
  4. F5与Ctrl+F5及地址栏输入地址回车
  5. PHP 从结果集中取得一行作为关联数组:
  6. linux实验试题 cp,cp命令实验,cp命令
  7. 云原生势不可挡,华为云GaussDB加速企业数字化转型
  8. mysql合集_Mysql数据库知识点合集
  9. mysql卡住锁表 processlist explain
  10. 手机端网站底部悬浮 广告代码 代关闭_莱阳附近外贸网站建设公司-鸿强传媒
  11. 阿里云资深技术专家何勉:研发效能提升的系统方法
  12. Windows程序设计(5):移动窗口、调整窗口大小
  13. Eclipse安装SVN插件三种方式
  14. 快商通知识图谱工程:让信息不再零碎,构建全行业的知识库 |百万人学AI评选
  15. mysql8 错误日志_MySQL 8 服务器日志
  16. 一个以表驱动得汉字转拼音的库
  17. html设置ie9兼容性视图,ie9兼容性设置在哪里 IE兼容性视图在哪里设置?
  18. 两组的数据平均值合并_数据平均值合并计算 合并计算求平均值
  19. 什么是Knife4j?
  20. python3:利用openpyxl xlwt xlrd实现对excel的增删改查和读入

热门文章

  1. 如何制作一份更具洞察力的商业BI报告?
  2. 微信小程序设置背景图片不显示问题解决方法
  3. 手机备忘录里的录音怎么转文字
  4. 圣诞灯出口欧盟CE认证怎么做
  5. html clear属性值,CSS clear both清除浮动
  6. 江苏一网推网络技术有限公司:如何才能做好百度爱采购排名
  7. #StringBuilder中的append方法 @FDDLC
  8. 比最快的超级计算机快一百万亿倍!中国科学家实现“量子计算优越性”里程碑...
  9. ora-01031 sys linux,ORA-01031: insufficient privileges 问题解决笔记
  10. java根号n元素的合并排序算法_分治算法:根号n段合并排序算法