当前位置:主页 > 科技论文 > 软件论文 >

基于符号化执行的测试用例自动生成方法研究

发布时间:2022-12-05 05:49
  软件测试是整个软件生命周期中的重要环节,各个企业在对软件测试方面的投入也越来越大,测试用例的自动生成技术对于企业和整个软件测试都十分重要。现在市场上的测试用例生成工具虽然取得了一定的作用,但也存在路径覆盖率不高,冗余测试用例过多,执行效率低的问题。因此本文以符号化执行生成测试用例为课题进行研究,通过研究发现,符号化执行技术生成测试用例大部分为有效用例,有较高的覆盖率,但也存在路径遗漏覆盖和路径增长迅速造成路径膨胀,执行效率不高的问题。针对这些问题本文提出了基于摘要的随机深度遍历策略,该策略结合随机方法和深度遍历方法对符号执行树进行遍历,将执行过的路径保存在摘要函数,避免重复遍历。对于路径膨胀提出相似路径预测剪枝后二次覆盖执行的方法,本方法在进行代码插桩后获取程序函数间调用图,分析计算哪些代码没有被覆盖到,在遍历生成符号执行树后对生成的路径进行相似度预测计算,一些未覆盖路径且相似度较大的路径进行剪枝处理,最终再进行测试用例生成执行。本文还设计了自动化插桩方法,目的是收集路径约束、引导程序进入符号化执行,对变量进行符号赋值。实验证明,本文遍历策略相比改进之前的方法能够提升代码覆盖和执行效率... 

【文章页数】:66 页

【学位级别】:硕士

【文章目录】:
摘要
Abstract
1 绪论
    1.1 研究的背景与意义
    1.2 国内外研究现状综述
        1.2.1 形式化测试用例生成
        1.2.2 随机测试用例生成
        1.2.3 基于搜索方法的测试用例生成
        1.2.4 约束求解技术
    1.3 本研究的内容及难点
    1.4 本文的组织结构
2 符号化执行生成测试用例框架与分析
    2.1 符号执行技术
        2.1.1 符号执行技术原理
        2.1.2 动态符号执行技术
    2.2 符号化执行生成测试用例的思路与框架
    2.3 框架任务分析及说明
        2.3.1 程序插桩
        2.3.2 符号化执行生成测试用例
        2.3.3 未覆盖及路径预测剪枝二次执行
    2.4 本章小结
3 基于LLVM的代码插桩方法
    3.1 符号化执行中的插桩策略分析与实现
        3.1.1 基于LLVM的插桩
        3.1.2 代码块插桩策略实现
        3.1.3 插桩中变量的符号化
        3.1.4 插桩中符号表达式
    3.2 插桩实验与分析
        3.2.1 实验效果
        3.2.2 结果分析
    3.3 本章小结
4 符号化执行生成测试用例方法
    4.1 基于符号执行树的遍历算法设计与实现
        4.1.1 软件度量及遍历方法背景
        4.1.2 遍历算法设计
        4.1.3 遍历算法实现
        4.1.4 核心代码及分析
    4.2 约束求解过程
        4.2.1 Z3求解器概述
        4.2.2 程序路径求解生成测试用例过程
    4.3 本章小结
5 未覆盖及相似路径剪枝方法
    5.1 程序静态分析
        5.1.1 函数过程间控制流分析
        5.1.2 函数调用关系
    5.2 相似度路径计算
        5.2.1 未覆盖度
        5.2.2 矩阵向量、相似系数
    5.3 未覆盖相似路径预测及路径剪枝方法设计
    5.4 本章小结
6 实验与分析
    6.1 实现环境与界面
    6.2 对比实验与验证
        6.2.1 摘要随机深度与随机遍历算法对比
        6.2.2 其他生成测试用例与本文方法对比实验
    6.3 改进方法生成测试用例对比结果及分析
    6.4 本章小结
7 结论与展望
    7.1 本文工作总结
    7.2 研究展望
致谢
参考文献


【参考文献】:
期刊论文
[1]新型智慧城市与智慧社会建设[J]. 单志广.  中国建设信息化. 2018(05)
[2]静态程序分析方法和工具[J]. 高婉玲,赵鹤.  现代计算机(专业版). 2017(05)
[3]面向条件判定覆盖的线性拟合制导测试生成[J]. 汤恩义,周岩,欧建生,陈鑫.  软件学报. 2016(03)
[4]基本路径覆盖测试探针插桩技术研究[J]. 施冬梅.  计算机工程与设计. 2010(13)
[5]一种基于双约束传播的面向路径自动随机测试方法[J]. 黄远东,卢江,赵瑞莲.  计算机应用. 2008(04)
[6]基于遗传算法的测试用例生成工具研究[J]. 赵明,张毅坤,沈建雄,崔杜武,高海龄.  计算机工程. 2005(13)

硕士论文
[1]基于符号摘要的动态符号执行的研究[D]. 罗荣森.电子科技大学 2016
[2]动态符号执行路径分歧自动化检测与诊断技术研究[D]. 黄金.电子科技大学 2016
[3]基于符号化执行的插桩技术研究与实现[D]. 徐栋.电子科技大学 2016
[4]基于CIL自动化插桩的研究与设计[D]. 李明.电子科技大学 2016
[5]基于数据挖掘的软件多故障定位与分析技术[D]. 张泽林.南京理工大学 2015
[6]基于数据挖掘的软件故障定位技术研究[D]. 陈会波.南京理工大学 2014
[7]软件测试用例自动生成技术的应用研究[D]. 孙宝云.吉林大学 2012
[8]随机测试用例的自动化生成和约简[D]. 曹青.中国科学技术大学 2010
[9]C/C++安全检查工具中抽象语法树的设计与实现[D]. 陈超.西安电子科技大学 2009
[10]自适应随机测试研究[D]. 陈永祥.华东师范大学 2009



本文编号:3709809

资料下载
论文发表

本文链接:https://www.wllwen.com/kejilunwen/ruanjiangongchenglunwen/3709809.html


Copyright(c)文论论文网All Rights Reserved | 网站地图

版权申明:资料由用户93f9b***提供,本站仅收录摘要或目录,作者需要删除请E-mail邮箱[email protected]