混合测试方法:模糊与符号执行在软件测试中的结合应用
29 浏览量
更新于2024-06-28
收藏 2.02MB PDF 举报
"基于符号执行与模糊测试的混合测试方法"
本文深入探讨了软件测试领域中的一个关键议题,即如何通过结合不同的测试技术来提高覆盖率,尤其是对于复杂条件分支的覆盖。文章介绍了两种主流的测试技术:模糊测试和符号执行,并分析了它们各自的优缺点。
模糊测试,以其随机性著称,通过生成各种变异的输入来动态执行程序,能够有效地探索程序的深层分支。然而,它的主要局限在于难以生成能够触发复杂条件组合的测试用例。相反,符号执行依赖于约束求解器,能够精确地构造出覆盖复杂条件的测试用例,但面临的问题是状态爆炸,这限制了它对深层分支的覆盖。
鉴于此,研究者提出了一种名为Afleer的混合测试方法,该方法旨在融合模糊测试和符号执行的优势。Afleer首先利用模糊测试工具(如AFL)快速生成大量能覆盖深度分支的测试用例,然后由符号执行工具(如KLEE)根据这些模糊测试的覆盖信息,专注于寻找和生成尚未被覆盖的分支的测试用例,以此提升分支覆盖率。
在评估Afleer的有效性时,研究人员选择了标准程序集LAVA-M和实际项目oSIP作为测试基准,以漏洞检测能力和覆盖能力作为衡量标准。实验结果显示,Afleer在漏洞检测方面表现突出,能发现更多的问题,并且在提高覆盖能力上也表现出显著优势。这表明,混合测试方法不仅能够弥补单一测试技术的不足,还能在实际应用中产生更好的测试效果,对于保障软件质量和安全性具有重要意义。
该研究为软件测试领域提供了一个新的策略,即通过混合模糊测试和符号执行来提升测试效率和质量,这为未来的软件测试方法改进提供了新的方向。同时,Afleer的实验结果证明了这种混合方法在实践中的可行性,对于软件开发和维护阶段的测试工作具有重要的参考价值。
2021-08-18 上传
2021-11-02 上传
2021-10-27 上传
2017-03-02 上传
2021-10-14 上传
2022-12-16 上传
罗伯特之技术屋
- 粉丝: 4413
- 资源: 1万+
最新资源
- 单片机串口通信仿真与代码实现详解
- LVGL GUI-Guider工具:设计并仿真LVGL界面
- Unity3D魔幻风格游戏UI界面与按钮图标素材详解
- MFC VC++实现串口温度数据显示源代码分析
- JEE培训项目:jee-todolist深度解析
- 74LS138译码器在单片机应用中的实现方法
- Android平台的动物象棋游戏应用开发
- C++系统测试项目:毕业设计与课程实践指南
- WZYAVPlayer:一个适用于iOS的视频播放控件
- ASP实现校园学生信息在线管理系统设计与实践
- 使用node-webkit和AngularJS打造跨平台桌面应用
- C#实现递归绘制圆形的探索
- C++语言项目开发:烟花效果动画实现
- 高效子网掩码计算器:网络工具中的必备应用
- 用Django构建个人博客网站的学习之旅
- SpringBoot微服务搭建与Spring Cloud实践