原创 : PlatON
说PlatON测试之前,我们需要先了解下关于区块链测试和传统测试互联网测试的区别,其主要体现在系统边界模糊,对于区块链的测试不仅仅是前端API与某个区块链节点之间的测试,还涉及大量区块链节点与节点之间的测试。
现在我们可以来认识下PlatON,首先它不属于交易所类型的业务产品,而是于基于区块链的技术以及链技术产生的价值的生态基础服务,测试的重点也是不一样的。我们的测试会更加关注底层,比如共识算法、网络、存储、经济模型等。本篇内容将讲述链上功能测试中的业务层测试。
业务层
- 经济模型验证
PlatON的经济模型就是在链上进行各种会产生经济活动的场景组合,所有参与到经济活动的主体在互动时,都将伴随着Token的变化,针对不同的经济活动我们可以运用测试理论中的测试手段,如边界值、等价类、因果法、场景构建等方法进行验证,主要是活动主体的Token的数量进行校验。
01 锁仓
- 锁仓创建
- 锁仓质押委托
- 锁仓回退
- 锁仓结算
- 处罚通知….
02 Staking
- createStaking (质押)
- editCandidate (修改候选人信息)
- increaseStaking (增持质押)
- withdrewStaking (撤销质押)
- delegate (委托)
- withdrewDelegate (撤销委托)
- withdrawDelegateReward (领取奖励)
- getVerifierList (查询当前结算周期的验证人列表)
- ElectNextVerifierList (选举下一个结算周期的验证人列表)激励 ……
03 激励
- 发放质押奖励
- 发放出块奖励
- 是否到达年末……
04 处罚
- 举报双签
- 举报双出
- 查询举报信息
- 处罚规则……
在这个过程中,我们也会对节点排名、状态、节点的收益进行验证,针对不同的经济活动场景进行有效的组合,其中包括了节点的状态以及链的结算周期和共识周期的变化,根据不同的组合我们可以通过自动化的方式检查活动主体的Token数量和状态变化情况是否满足设计要求,从而验证了经济模型的合理性和正确性。
- 治理模型验证
PlatON治理模型主要是验证PlatON进行链上治理时,链上节点参与投票的进行更新或者修复的一个过程,在这个过程中节点的选择行为会影响到链上发展方向和链的一个状态,如果节点对治理的内容有分歧则会出现不同的结果,治理升级的验证主要是验证治理前后链上数据的一致性和区块的连续性。
01 提交提案
- 提交升级提案
- 提交文本提案
- 提交参数提案
- 提交取消提案 ……
02 投票
- 有效提案投票
- 无效提案投票
- 放弃投票
- 投票统计……
03 版本声明
- 有效的提案声明
- 无效提案声明……
04 提案全流程
- 提交文本提案统计
- 提交升级提案
- 提交取消提案……
通过不同的结算周期、共识周期、投票节点状态的变化来验证治理机制的正确性。同时为了满足实际场景中的复杂运行环境,需要增加经济活动的场景来丰富可能出现的异常情况,从而验证整个治理模型的可靠性。
本文转载自https://mp.weixin.qq.com/s/A5tb5UfGmYV4zH-5XnMSLw