[发明专利]智能合约测试方法、装置在审
申请号: | 202010269488.3 | 申请日: | 2020-04-08 |
公开(公告)号: | CN111581077A | 公开(公告)日: | 2020-08-25 |
发明(设计)人: | 刘超;周勇钧;农高明;陈金龙;鲁四喜 | 申请(专利权)人: | 腾讯科技(深圳)有限公司 |
主分类号: | G06F11/36 | 分类号: | G06F11/36 |
代理公司: | 深圳市隆天联鼎知识产权代理有限公司 44232 | 代理人: | 叶虹 |
地址: | 518057 广东省深圳*** | 国省代码: | 广东;44 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 智能 合约 测试 方法 装置 | ||
1.一种智能合约测试方法,其特征在于,包括:
从区块链网络中获取待测试的第一智能合约,所述第一智能合约中包含有合约升级功能;
基于需要更新的合约内容执行所述合约升级功能,以对所述第一智能合约进行升级,得到第二智能合约;
基于所述第一智能合约所包含的内容和所述第二智能合约所包含的内容,确定所述合约升级功能的测试结果。
2.根据权利要求1所述的智能合约测试方法,其特征在于,所述基于需要更新的合约内容执行所述合约升级功能,以对所述第一智能合约进行升级,包括:
将所述第一智能合约分离为逻辑合约与数据合约;
若基于所述需要更新的合约内容确定需要对所述逻辑合约进行升级,则根据所述需要更新的合约内容升级所述逻辑合约;
若基于所述需要更新的合约内容确定需要对所述数据合约进行升级,则根据所述需要更新的合约内容升级所述数据合约。
3.根据权利要求2所述的智能合约测试方法,其特征在于,若基于所述需要更新的合约内容确定需要对所述逻辑合约进行升级,则基于所述第一智能合约所包含的内容和所述第二智能合约所包含的内容,确定所述合约升级功能的测试结果,包括:
调用对所述逻辑合约升级后得到的逻辑合约中的目标接口,所述目标接口是所述逻辑合约升级后新增的接口,且用于调用升级后的逻辑合约;
若对所述目标接口调用成功,且所述数据合约中的数据在所述逻辑合约升级前后保持一致,则确定所述合约升级功能针对所述逻辑合约测试成功。
4.根据权利要求2所述的智能合约测试方法,其特征在于,若基于所述需要更新的合约内容确定需要对所述数据合约进行升级,则基于所述第一智能合约所包含的内容和所述第二智能合约所包含的内容,确定所述合约升级功能的测试结果,包括:
若从所述数据合约升级后得到的数据合约中,访问到新增的数据,且从所述数据合约升级后得到的数据合约中,访问到所述数据合约升级前包含的数据,则确定所述合约升级功能针对所述数据合约测试成功,所述新增的数据来自所述需要更新的合约内容。
5.根据权利要求2所述的智能合约测试方法,其特征在于,所述基于需要更新的合约内容执行所述合约升级功能,以对所述第一智能合约进行升级,得到第二智能合约包括:
基于需要更新的合约内容生成所述第二智能合约;
获取调用所述第一智能合约的代理合约;
获取所述第二智能合约的地址;
将所述代理合约中调用的所述第一智能合约的地址,变更为所述第二智能合约的地址。
6.根据权利要求1所述的智能合约测试方法,其特征在于,所述第一智能合约中还包含有需求功能,
所述方法还包括:根据所述需求功能生成需求测试用例;
若所述需求测试用例调用非静态函数,则获取所述需求测试用例执行前的区块链状态,以及所述需求测试用例执行后的区块链状态;
若所述执行前的区块链状态与所述执行后的区块链状态不同,则确定所述需求功能测试成功。
7.根据权利要求1所述的智能合约测试方法,其特征在于,所述第一智能合约中还包含有合约暂停功能,
所述方法还包括:执行所述合约暂停功能;
若所述合约暂停功能执行后,所述第一智能合约中除解除暂停功能以外的其他功能都不能执行,则所述合约暂停功能测试成功。
8.根据权利要求1所述的智能合约测试方法,其特征在于,所述第一智能合约中还包含以下功能中的至少一种:权限控制功能、事件记录功能、回退功能和接口功能。
9.根据权利要求1-8中任一项所述的智能合约测试方法,其特征在于,所述方法还包括:若所述第一智能合约中包含的所有功能都通过测试,则确定对所述智能合约测试成功。
10.一种智能合约测试装置,其特征在于,包括:
获取模块,用于从区块链网络中获取待测试的第一智能合约,所述第一智能合约中包含有合约升级功能;
升级模块,用于基于需要更新的合约内容执行所述合约升级功能,以对所述第一智能合约进行升级,得到第二智能合约;
测试模块,用于基于所述第一智能合约所包含的内容和所述第二智能合约所包含的内容,确定所述合约升级功能的测试结果。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于腾讯科技(深圳)有限公司,未经腾讯科技(深圳)有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202010269488.3/1.html,转载请声明来源钻瓜专利网。