[发明专利]测试方法及装置有效
| 申请号: | 201910792165.X | 申请日: | 2019-08-26 |
| 公开(公告)号: | CN110764992B | 公开(公告)日: | 2023-06-16 |
| 发明(设计)人: | 冀甜甜;王忠儒;阮强 | 申请(专利权)人: | 北京丁牛科技有限公司 |
| 主分类号: | G06F11/36 | 分类号: | G06F11/36;G06F21/57 |
| 代理公司: | 北京林达刘知识产权代理事务所(普通合伙) 11277 | 代理人: | 刘新宇 |
| 地址: | 100000 北京市海淀区中关村*** | 国省代码: | 北京;11 |
| 权利要求书: | 查看更多 | 说明书: | 查看更多 |
| 摘要: | |||
| 搜索关键词: | 测试 方法 装置 | ||
本公开涉及一种测试方法及装置,所述方法包括:获取待测程序的数据流信息、控制流信息中基本块的权重及基本块的第一地址信息,并将数据流信息中的数据作为种子加入种子队列中;对待测程序进行动态插桩以获取待测程序中基本块的第二地址信息,在第二地址信息与第一地址信息相同的情况下,将第一地址信息对应的基本块的权重作为第二地址信息对应的基本块的权重;将种子队列中的种子作为输入运行动态插桩后的待测程序,并利用待测程序中基本块的权重引导种子的执行路径以对待测程序进行测试。本公开通过基本块的权重引导种子在待测程序中的执行路径,可以为测试选择正确的测试方向,提高测试的效率,节约测试时间和测试成本。
技术领域
本公开涉及计算机技术领域,尤其涉及一种测试方法及装置。
背景技术
目前,由于对安全问题的重视,通常在软件发布之前都会进行安全测试,通过漏洞挖掘,尽可能提前发现漏洞,并进行修复。漏洞挖掘通常采用模糊测试方式,模糊测试是一种通过向目标系统提供非预期的输入并监视异常结果来发现软件漏洞的方法,它以稳定、速度快且不需要程序分析而带来的低价且有效的优势被工业界广泛接受和使用,用于安全产品的检测。然而,模糊测试虽广受工业界欢迎,但因其具有盲目性导致难以深入测试软件,从而导致测试效率低下、测试时间长。
发明内容
有鉴于此,本公开提出了一种测试方法,所述方法包括:
获取待测程序的数据流信息、控制流信息中基本块的权重及基本块的第一地址信息,并将所述数据流信息中的数据作为种子加入种子队列中;
对所述待测程序进行动态插桩以获取待测程序中基本块的第二地址信息,在所述第二地址信息与所述第一地址信息相同的情况下,将所述第一地址信息对应的基本块的权重作为所述第二地址信息对应的基本块的权重;
将所述种子队列中的种子作为输入运行动态插桩后的所述待测程序,并利用所述待测程序中基本块的权重引导所述种子的执行路径以对所述待测程序进行测试。
在一种可能的实施方式中,所述获取待测程序的数据流信息、及控制流信息中基本块的权重及基本块的第一地址信息,包括:
利用基本块的父亲基本块的生成概率、基本块与父亲基本块之间的边的生成概率、基本块的父亲基本块的数目、基本块的兄弟基本块的父亲基本块的数目获取基本块的权重。
在一种可能的实施方式中,所述利用基本块的父亲基本块的生成概率、基本块与父亲基本块之间的边的生成概率、基本块的父亲基本块的数目、基本块的兄弟基本块的父亲基本块的数目获取基本块的权重,包括:
利用如下公式获取基本块的权重:
其中,
其中,w(b)表示基本块b的权重,pred(b)表示基本块b的父亲基本块的集合,len(pred(b))表示基本块b的父亲基本块的数目,len(pred(bro(b)))表示基本块b的兄弟基本块的父亲基本块的数目,prob(c)表示基本块b的父亲基本块的生成概率,prob(ecb)表示基本块c与基本块b之间的边的生成概率,∑c∈pred(b)prob(c)*prob(ecb))表示基本块b的生成概率。
在一种可能的实施方式中,所述利用所述待测程序中基本块的权重引导所述种子的执行路径以对所述待测程序进行测试,包括:
获取所述种子执行到的所述待测程序的当前基本块的子基本块的权重大小;
选择所述子基本块中权重最大的子基本块作为所述种子的执行路径中的下一个基本块。
在一种可能的实施方式中,所述方法还包括:
确定所述种子中的最优种子;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京丁牛科技有限公司,未经北京丁牛科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201910792165.X/2.html,转载请声明来源钻瓜专利网。
- 上一篇:代码测试方法及装置
- 下一篇:自动化测试方法及终端设备





