[发明专利]模糊测试方法、装置、电子设备及存储介质有效
申请号: | 201911359307.X | 申请日: | 2019-12-25 |
公开(公告)号: | CN111124926B | 公开(公告)日: | 2022-09-16 |
发明(设计)人: | 李文杰 | 申请(专利权)人: | 支付宝(杭州)信息技术有限公司 |
主分类号: | G06F11/36 | 分类号: | G06F11/36 |
代理公司: | 北京风雅颂专利代理有限公司 11403 | 代理人: | 郭曼 |
地址: | 310000 浙江省杭州市*** | 国省代码: | 浙江;33 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 模糊 测试 方法 装置 电子设备 存储 介质 | ||
1.一种模糊测试方法,包括:
从种子池中选择预定数量种子;
对所选择的种子进行变异生成程序输入;
对目标程序在接受所述程序输入之后的运行状态进行监控,获取测试过程的内存状态信息;
根据获取的内存状态信息确定本次测试的平均内存状态空间;
针对所述种子池中已经参与过测试的种子,将各个种子对应的内存状态空间分别与所述平均内存状态空间进行比较;以及
保留其中内存状态空间大于所述平均内存状态空间的种子;其中,
所述获取测试过程的内存状态信息包括:获取测试过程中所述目标程序运行的特征数据;以及分析所述特征数据获得所述内存状态信息;其中,
所述分析所述特征数据获得所述内存状态信息包括:
分析所述特征数据获得本轮测试过程中各种子对应的各个内存模块的内存读写次数、内存读写长度以及数据结构复杂度;
根据如下计算公式分别确定本轮测试各个种子对应的内存状态空间,将所述各个种子对应的内存状态空间作为所述内存状态信息:
其中,MSS为一个种子对应的内存状态空间;n代表涉及到的内存对象数量;Mi代表第i个内存对象被操作的读写次数;Li代表第i个内存对象的数据结构复杂度;Ri代表第i个内存对象的长度。
2.根据权利要求1所述的方法,其中,所述从种子池中选择预定数量种子包括:
针对所述种子池中已经参与过测试的种子,根据各个种子对应的内存状态空间分别为各个种子设置优先级;以及
根据所述各个种子的优先级选择所述预定数量的种子。
3.根据权利要求2所述的方法,其中,所述根据各个种子对应的内存状态空间分别为各个种子设置优先级包括:将所述各个种子的优先级设置为其对应内存状态空间。
4.根据权利要求1所述的方法,其中,所述从种子池中选择预定数量种子包括:
针对所述种子池中已经参与过测试的种子,根据各个种子对应的内存状态空间和路径覆盖信息分别为各个种子设置优先级;以及
根据所述各个种子的优先级选择所述预定数量的种子。
5.根据权利要求4所述的方法,其中,所述根据各个种子对应的内存状态空间和路径覆盖信息分别为各个种子设置优先级包括:
根据所述各个种子对应的路径覆盖信息设置各个种子的路径值;其中,路径值越高的种子所对应的路径覆盖信息中包含的路径节点越多;以及
将所述各个种子的优先级设置为其对应内存状态空间和路径值的加权和。
6.根据权利要求2或3所述的方法,其中,所述根据各个种子的优先级选择所述预定数量的种子包括:
在所述种子池中已经参与过测试的种子的数量小于所述预定数量时,选择所述种子池中全部已经参与过测试的种子,以及从所述种子池中未参与过测试的种子中随机选择剩余数量的种子,其中,所述剩余数量为所述预定数量与所述种子池中已经参与过测试的种子的数量之差;以及
在所述种子池中已经参与过测试的种子的数量大于或等于所述预定数量时,根据所述各个种子的优先级选择优先级最高的预定数量的种子。
7.根据权利要求2或3所述的方法,其中,所述根据各个种子的优先级选择所述预定数量的种子包括:
针对所述种子池中已经参与过测试的种子,将各个种子的优先级设置为各个种子被选中的概率;
针对所述种子池中未参与过测试的种子,设置各个种子被选中的概率为预先设定的概率值;以及
根据种子池中所有种子被选中的概率选择预定数量的种子。
8.根据权利要求1所述的方法,其中,所述从种子池中选择预定数量种子包括:随机从所述种子池中选择预定数量的种子。
9.根据权利要求1所述的方法,其中,所述获取测试过程中所述目标程序运行的特征数据包括:通过程序插桩获取测试过程中所述目标程序运行的特征数据。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于支付宝(杭州)信息技术有限公司,未经支付宝(杭州)信息技术有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201911359307.X/1.html,转载请声明来源钻瓜专利网。