原创 : PlatON
说PlatON测试之前,我们需要先了解下关于区块链测试和传统互联网测试的区别,其主要体现在系统边界模糊,对于区块链的测试不仅仅是前端API与某个区块链节点之间的测试,还涉及大量区块链节点与节点之间的测试。
同时还要注意PlatON链本身包含公有链、私有链,不同类型在管理、用户身份、最大节点数等平台自身特征方面均有不同,测试需要考虑所有的模式,导致测试方案和场景也比常规的传统测试更加复杂。
现在我们可以来认识下PlatON,首先它不属于交易所类型的业务产品,而是于基于区块链的技术以及链技术产生的价值的生态基础服务,测试的重点也是不一样的。我们的测试会更加关注底层,比如共识算法、网络、存储、经济模型等。
|PlatON测试范围总览
从Case全景图可以看出,我们对PlatON的Case过程进行分类,主要是通过5个方面去验证系统保证安全可靠。
1. 初始化阶段
主要是通过在链初始化时,搭建私链或者链接主网时对经济模型中的合约账号、信息以及参数进行合理性的验证。
隐式初始化-不指定网络时链接PlatON主网络,这时候需要验证网络节点搭建成功之后链上信息和内置的信息保持一致。
显式初始化-搭建私链则是通过创世文件初始化的方式加入到特定的私有网络,成功加入链之后验证链上信息和配置的信息保持一致初始化参数。
共识参数-经济模型参数、治理参数、惩罚参数、奖励参数、增发参数。
初始化参数是通用的系统参数,参数分主网参数和自定义参数两类:
主网参数-通过在启动节点时增加命令参数来实现链接PlatON主网络,需要验证的就是链上共识参数、经济模型参数、治理参数等和主网参数保持一致。
自定义参数-在启动节点时,通过调整初始化创世文件里的初始化参数来实现自定义参数,然后通过链初始化启动节点,这时候链上的参数应该和创世文件中的参数保持一致。
但是这里需要注意的是自定义参数时,创世文件中数值阈值的调整需要合理,不同的参数组合最终会导致链启动成功与否以及链上运行的规则发生变化,我们的测试过程正是验证这些参数变动带来的各种边界值,以及参数是否给链的运行提供合理的标准。
2. 启动阶段
启动阶段测试我们分为两种模式进行验证,分别是单节点和集群,因为不同的节点数量链运行方式也会有所不同,我们从简单的结构出发,然后慢慢扩展数量,从而达到模拟真实环境。
| 单节点
- 启动节点
- 查看节点信息
- 查看版本信息
- 链上功能
| 集群
- 快速参数集群
- 主网集群
- 链上功能
作为区块链运转的载体,所有的事情几乎都要节点参与,网络通信、逻辑运算、交易、数据验证等,而区块链一般是由多个节点组成协同工作,因此节点属性及对节点的管理至关重要。在实际管理中,节点能由管理者操作加入或者退出区块链网络,而不影响业务的正常运行,以及扩容新增节点。
在节点相关验证,主要包含了链部署时不同节点数量的情况下节点的运行情况检查,创世文件启动时不同的参数组合对链影响,如共识节点数量、治理参数配置、同步方式等,我们会根据不同的组合去验证配置参数的合理性,同时节点本身具备了不同的启动参数,在整个链运行的过程中需要对启动参数的调整来验证这些启动命令的有效性以及对链的影响。
同时还需要分别在单节点和集群模式下进行链上功能的验证,确保在不同模式下PlatON经济模型业务表示是一致的。
本文转载自https://mp.weixin.qq.com/s/MUvPT-w_HlD_v1RTQuyfEw