一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

基于模糊测试的程序测试方法和装置与流程

2022-06-29 21:10:22 来源:中国专利 TAG:

技术特征:
1.一种基于模糊测试的程序测试方法,包括:利用静态分析生成函数调用图和控制流图;利用所述函数调用图和所述控制流图生成可达集合,其中,所述可达集合中的代码通过跳转到达待测的目标代码;计算可达集合中的代码到所述目标代码的距离;利用所述距离对所述程序进行模糊测试。2.根据权利要求1所述的方法,所述函数调用图和所述控制流图包括函数的间接调用关系。3.根据权利要求1所述的方法,所述利用所述距离对所述程序进行模糊测试包括:交替使用基于覆盖率的模糊测试和导向式模糊测试对所述程序进行模糊测试,其中,所述基于覆盖率的模糊测试利用模糊测试过程中产生的覆盖率信息更新种子集合,所述导向式模糊测试利用模糊测试过程中产生的距离信息更新所述种子集合。4.根据权利要求3所述的方法,所述交替使用基于覆盖率的模糊测试和导向式模糊测试对所述程序进行模糊测试包括:当使用所述基于覆盖率的模糊测试对所述程序进行模糊测试时,在满足第一预设条件后,切换为使用导向式模糊测试对所述程序进行模糊测试;当使用所述导向式模糊测试对所述程序进行模糊测试时,在满足第二预设条件后,切换为使用基于覆盖率的模糊测试对所述程序进行模糊测试。5.根据权利要求4所述的方法,所述第一预设条件包括在第一预设时间内没有产生新的覆盖率信息,所述第二预设条件包括在第二预设时间内没有产生新的覆盖率信息。6.根据权利要求1所述的方法,所述计算可达集合中的代码到目标代码的距离包括:利用广度优先搜索方法计算所述可达集合中的代码到目标代码的距离。7.根据权利要求1所述的方法,所述通过静态分析生成函数调用图和控制流图包括:使用快速类型分析生成所述函数调用图;基于所述函数调用图生成所述控制流图。8.根据权利要求1所述的方法,所述通过静态分析生成函数调用图和控制流图包括:将所述程序编译为llvm的中间代码形式;静态分析所述中间代码形式,生成所述函数调用图和控制流图。9.根据权利要求1所述的方法,所述程序为操作系统内核程序。10.根据权利要求1~9任一项所述的方法,所述可达集合中的代码为基本块代码。11.一种基于模糊测试的程序测试的装置,包括:分析模块,被配置为利用静态分析生成包含函数间接调用关系的函数调用图和控制流图;生成模块,被配置为利用所述函数调用图和所述控制流图生成可达集合,其中,所述可达集合中的代码通过跳转到达待测的目标代码;计算模块,被配置为计算可达集合中的代码到所述目标代码的距离;测试模块,被配置为利用所述距离对所述程序进行模糊测试。12.根据权利要求11所述的装置,所述函数调用图和所述控制流图包括函数的间接调用关系。
13.根据权利要求11所述的装置,所述利用所述距离对所述程序进行模糊测试包括:交替使用基于覆盖率的模糊测试和导向式模糊测试对所述程序进行模糊测试,其中,所述基于覆盖率的模糊测试利用模糊测试过程中产生的覆盖率信息更新种子集合,所述导向式模糊测试利用模糊测试过程中产生的距离信息更新所述种子集合。14.根据权利要求13所述的装置,所述交替使用基于覆盖率的模糊测试和导向式模糊测试对所述程序进行模糊测试包括:当使用所述基于覆盖率的模糊测试对所述程序进行模糊测试时,在满足第一预设条件后,切换为使用导向式模糊测试对所述程序进行模糊测试;当使用所述导向式模糊测试对所述程序进行模糊测试时,在满足第二预设条件后,切换为使用基于覆盖率的模糊测试对所述程序进行模糊测试。15.根据权利要求14所述的装置,所述第一预设条件包括在第一预设时间内没有产生新的覆盖率信息,所述第二预设条件包括在第二预设时间内没有产生新的覆盖率信息。16.根据权利要求11所述的装置,所述计算可达集合中的代码到目标代码的距离包括:利用广度优先搜索方法计算所述可达集合中的代码到目标代码的距离。17.根据权利要求11所述的装置,所述通过静态分析生成函数调用图和控制流图包括:使用快速类型分析生成所述函数调用图;基于所述函数调用图生成所述控制流图。18.根据权利要求11所述的装置,所述通过静态分析生成函数调用图和控制流图包括:将所述程序编译为llvm的中间代码形式;静态分析所述中间代码形式,生成所述函数调用图和控制流图。19.根据权利要求11所述的装置,所述程序为操作系统内核程序。20.根据权利要求11~19任一项所述的装置,所述可达集合中的代码为基本块代码。21.一种基于模糊测试的程序测试的装置,包括存储器和处理器,所述存储器中存储有可执行代码,所述处理器被配置为执行所述可执行代码,以实现权利要求1-10中任一项所述的方法。

技术总结
本公开披露了一种基于模糊测试的程序测试方法和装置。该方法包括:通过静态分析生成包含函数间接调用关系的函数调用图和控制流图;利用所述函数调用图和所述控制流图生成可达集合,其中,所述可达集合中的代码可以通过跳转到达待测的目标代码;计算可达集合中的代码到所述目标代码的距离;利用所述距离对所述程序进行模糊测试。程序进行模糊测试。程序进行模糊测试。


技术研发人员:曹伟 刘向阳 闫广禄
受保护的技术使用者:支付宝(杭州)信息技术有限公司
技术研发日:2022.03.22
技术公布日:2022/6/28
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献