原创 PlatON
回顾上期我们讲解了PlatON的自动化测试相关介绍,这次我们来讲解智能合约在PlatON中都做了哪些测试工作,首先我们要了解什么是智能合约,本质上来说,智能合约是一段程序,它以计算机指令的方式实现了传统合约的自动化处理。简单地讲,智能合约就是双方在区块链资产上交易时,触发执行的一段代码,这段代码就是智能合约。那么从以下几个问题来说明下我们PlatON的智能合约测试。本篇为第一部分。
| 为什么要做智能合约测试
PlatON测试主要是分为两个部分内容:
- 第一部分是经济模型及链特性验证
- 第二部分就是智能合约验证和适配
PlatON链除了要保证其本身的经济模型业务逻辑运行正常外,还需支持能在链上各式各样智能合约运行,因此还需要考虑在链上可以兼容主流DAPP。
当然,这里我们重点关注的是PlatON对智能合约的方法、类型、版本的适配能力,在这个过程中我们也是通过编写对应测试合约进行验证。
和专门的智能合约测试不同的是,我们对测试合约本身业务逻辑要求是能满足验证PlatON链适配的逻辑即可。
| 智能合约测试有什么方式
PlatON测试团队在测试智能合约时采取了两种测试方式,针对不同的阶段和测试范围进行选择:常规的业界主流测试方式是采用:
Truffle工具
- 方便安装
- 快捷的编译、部署、调用方式
- 学习成本低
根据Truffle的特点,一般我们测试团队会在新的合约提测之后,先使用Truffle进行简单的合约进行调用以验证合约的逻辑正确性,这时候工具体现出它的便捷性。
另外如果本次提测的版本内容改动涉及到的合约内容简单且自动化的价值不高时,我们也会选择使用Truffle进行验证。
| 智能合约实现自动化
- 节省时间和人力,只要代码维护得好,就可以采用
- 维护成本投入大
- 前期开发周期长
目前PlatON测试团队的主要智能合约是通过自动化来实现的,主要是因为版本迭代时能通过自动化短时间内完成合约测试任务,最大限度地保证了版本迭代的质量,同时也可以在开发进行了影响范围大的功能改动时及时且全面的进行验证,从而能发现问题及时规避。
团队的人员只需要根据每个版本的特性和新增的功能补充新的test case就能不断地完善测试的覆盖程度,同时为了更好地使更多的人员能够使用,我们也积极地推动了自动化测试与持续集成的结合,很大程度上提供了测试和开发的效率和质量。
(未完待续)
发布者:PlatONWorld-M6,转载请注明出处:https://platonworld.org/zh/?p=8983