[发明专利]一种测试种子的确定方法及装置在审
申请号: | 202210666920.1 | 申请日: | 2022-06-13 |
公开(公告)号: | CN115017048A | 公开(公告)日: | 2022-09-06 |
发明(设计)人: | 郑子彬;李辉忠;杨硕;张开翔;范瑞彬;白兴强;李成博 | 申请(专利权)人: | 深圳前海微众银行股份有限公司;中山大学 |
主分类号: | G06F11/36 | 分类号: | G06F11/36 |
代理公司: | 北京同达信恒知识产权代理有限公司 11291 | 代理人: | 雷航 |
地址: | 518027 广东省深圳市*** | 国省代码: | 广东;44 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 测试 种子 确定 方法 装置 | ||
本发明涉及金融科技(Fintech)领域,公开一种测试种子的确定方法及装置,针对目标智能合约的第i轮测试种子,基于第i轮测试种子进行第i+1轮模糊测试;针对任一个测试种子,根据测试种子在第i+1轮模糊测试中的函数调用记录,若确定测试种子在第i+1轮模糊测试中覆盖函数调用流图中的新节点,则保留测试种子作为候选测试种子;针对任一个候选测试种子,根据候选测试种子对应的新节点在函数调用流图中的调用次数和被调用次数,确定候选测试种子的种子适应度;根据各候选测试种子分别对应的种子适应度,确定出用于进行第i+2轮模糊测试的第i+1轮测试种子。基于该方式可筛选出高质量的测试种子,从而提升模糊测试的效率。
技术领域
本申请实施例涉及金融科技(Fintech)领域,尤其涉及一种测试种子的确定方法及装置。
背景技术
随着计算机技术的发展,越来越多的技术(例如:大数据、云计算或区块链)应用在金融领域,传统金融业正在逐步向金融科技转变。例如,对于金融领域中存在着的海量数据,该些海量数据可通过区块链进行存储。在用区块链对数据进行存储时,将用到智能合约。智能合约本质上是存储在以太坊区块链一个特定地址上的一组代码和数据,因此为了保障数据存储的质量,智能合约在正式投入使用之前,需对其进行测试。目前对智能合约进行测试的方法有灰盒模糊测试,灰盒模糊测试采用了轻量级的程序分析技术,通过收集部分关键的代码信息来指导测试过程。其中,灰盒模糊测试首先针对被测程序生成随机的测试案例,并运行测试案例来判断其是否覆盖了一条新的未被覆盖的程序路径,然后通过某种筛选策略筛选出高质量的测试案例,对其进行交叉和变异的操作,从而生成新的测试案例,并进行下一轮的测试迭代。目前在筛选测试案例的过程中,测试种子选择的策略较为简单,主要是基于控制流图定义的距离选择方法保留所有覆盖到新分支的种子。显然该方案并没有考虑到被选择种子的不同适应度对于模糊测试产生的输入的影响,从而影响模糊测试种子池的质量,降低了模糊测试效率。
发明内容
本申请提供一种测试种子的确定方法及装置,用以筛选出高质量的测试种子,从而提升模糊测试的效率。
第一方面,本申请实施例提供一种测试种子的确定方法,该方法包括:针对目标智能合约的第i轮测试种子,基于所述第i轮测试种子进行第i+1轮模糊测试,并获取所述第i轮测试种子中的各测试种子在所述第i+1轮模糊测试中的函数调用记录;针对所述第i轮测试种子中的任一个测试种子,根据所述测试种子在所述第i+1轮模糊测试中的函数调用记录,若确定所述测试种子在所述第i+1轮模糊测试中覆盖函数调用流图中的新节点,则保留所述测试种子作为候选测试种子;其中,所述函数调用流图是以所述目标智能合约中的各函数作为节点,且对存在调用关系的两个函数进行节点连线作为调用边构建的,任一调用边标记有函数调用次数;针对所述第i轮测试种子中的任一个候选测试种子,根据所述候选测试种子对应的新节点在所述函数调用流图中的调用次数和被调用次数,确定所述候选测试种子的种子适应度;根据各候选测试种子分别对应的种子适应度,从所述第i轮测试种子中确定出用于进行第i+2轮模糊测试的第i+1轮测试种子,并返回执行针对目标智能合约的第i轮测试种子,基于所述第i轮测试种子进行第i+1轮模糊测试的步骤,直至满足所述模糊测试的预设时间。
上述方案中,在每一轮模糊测试过程中选择用于进行下一轮测试的测试种子时,通过分析当前模糊测试过程中每一个用于模糊测试的种子是否覆盖到函数调用流图中的新节点,如果覆盖到,则保留该测试种子,针对所保留的测试种子,通过分析该测试种子对应的新节点在函数调用流图中的调用与被调用的数据,对于该种基于函数调用与被调用的数据确定测试种子的种子适应度的方法,通过为更有能力覆盖到更多分支的测试种子赋予更高的权重,通过适应度维度差异化种子质量,优化测试的输入,使得模糊测试的进程加快,测试效率变高。
在一种可能实现的方法中,通过下述方式获取所述目标智能合约的第1轮测试种子,包括:编译所述目标智能合约,获取所述目标智能合约的应用程序二进制接口ABI文件;根据所述ABI文件中的不同参数的数据类型,得到所述目标智能合约的第1轮测试种子。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于深圳前海微众银行股份有限公司;中山大学,未经深圳前海微众银行股份有限公司;中山大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202210666920.1/2.html,转载请声明来源钻瓜专利网。
- 上一篇:一种便于清理滤网的音箱
- 下一篇:手自一体的清扫机构以及扫叶机