【技术实现步骤摘要】
一种基于蜕变测试的区块链智能合约测试方法
[0001]本专利技术属于软件测试中蜕变测试
,涉及一种面向区块链智能合约安全缺陷的蜕变测试方法
技术介绍
[0002]以太坊智能合约(在区块链上运行的自治程序)通常控制金融和知识产权交易。由于它们发挥着至关重要的作用,因此智能合约需要完整、全面和有效的测试方法。在软件测试中,理想的测试判定(test oracle)能够对测试结果是否正确给出确定的判定。然而,这种理想的测试判定通常并不容易得到,或者获取的成本远远超出了软件本身的价值,这个问题被称为测试判定难题(test oracle problem)。目前,测试判定难题已经成为制约软件测试技术发展的瓶颈。蜕变测试(metamorphic testing)通过验证多个测试用例的测试结果是否满足蜕变关系来确定测试用例执行是否正确。虽然这种方法不能确定单个测试结果的正确性,即不能彻底解决测试判定难题,但是当蜕变关系不满足时,可以判定被测软件中一定存在着故障。本方法介绍了一种面向区块链智能合约安全缺陷的蜕变测试方法,它可以针对区块链智 ...
【技术保护点】
【技术特征摘要】
1.一种面向区块链智能合约安全缺陷的蜕变测试方法,其特征在于,包括如下步骤:步骤1,获取被测区块链智能合约中调用的参数及函数的编码,确定构建蜕变关系必要属性的函数关系;步骤2,根据调用的函数及其相应的参数确定区块链智能合约蜕变关系的构造中依赖的必要属性;步骤3,根据必要属性中输入与输出的关系确定蜕变关系(MR),包括输入的蜕变关系input relation以及输出的蜕变关系output relation;步骤4,使用随机测试方法和蜕变关系生成原始测试用例e和后续测试用例e
’
,将两组测试用例分别在智能合约中运行,通过判断输出的结果是否满足相应的蜕变关系验证智能合约的正确性。2.根据权利要求1所述的一种面向区块链智能合约安全缺陷的蜕变测试方法,其特征在于,所述步骤1的具体实现包括如下步骤:步骤1.1,查找智能合约中调用的函数,在智能合约涉及的各个参数中,TXDATA为调用函数的编码,根据调用函数得到影响输入和输出结果的参数;步骤1.2,智能合约的调用中涉及到的参数包括<SENDER ADDRESS,TO CONTRACT,VALUE,GAS USED,GAS LIMIT,GAS PRICE>,其中SENDER ADDRESS是调用合约时发起转账的用户合约地址,TO
‑
CONTRACT是接收用户的合约地址,VALUE是转账金额,GAS
‑
USED是合约消耗的汽油费...
【专利技术属性】
技术研发人员:陈锦富,王震鑫,蔡赛华,冯乔伟,施登洲,陈宇豪,许容天,王栋杰,
申请(专利权)人:江苏大学,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。