1.区块链底层测试的难点

区块链底层测试与传统的软件测试相比来说:

  1. 系统边界模糊:传统的软件,不管是是独立的应用程序,还是客户端/服务器模式的应用程序,都有明显的系统边界,可以通过UI用户界面或者客户端去进行测试;区块链底层,则是一个完全去中心化的分布式网络。这个网络有可能跨越多个子网、多个数据中心、多个运营商、甚至多个国家,其边界是模糊的。对于区块链底层的测试,不仅包括前端API与某个区块链节点之间的测试,还涉及大量区块链节点与节点之间的测试。
  2. 故障类型复杂:区块链故障类型包括宕机故障(Crash Failure)、宕机-恢复故障 (Crash-Recovery Failures)、拜占庭故障 (Byzantine Failures)。
  3. 区块链类型不同:不同类型在管理、用户身份、最大节点数等平台自身特征方面均有不同,测评需要考虑所有的模式,导致测试方案更加复杂。

 

2.区块链的评测标准

 

3.测试工具/方法

3.1.混沌测试概念

混沌测试是一种可试验的、基于系统的方法来处理大规模分布式系统中的混乱问题。通过不断试验,了解系统的实际能承受的韧性边界并建立信心,通过不同的试验方法和目的,观察分布式系统的行为和反应。一句话——以试验的方法尽早揭露系统弱点。

混沌试验类似于”探索性测试“,试验本身没有明确是输入和预期结果,通过对系统和服务的干预,来观察系统的”反应“。将混沌测试原则融入在试验过程中:在生产环境小规模模拟系统故障并定期自动化执行试验,通过试验结果与正常结果进行比对,观察系统”边界“。

3.2.混沌测试工具

ChaosBlade

ChaosBlade 是一款遵循混沌工程实验原理,提供丰富故障场景实现,帮助分布式系统提升容错性和可恢复性的混沌工程工具,可实现底层故障的注入,特点是操作简洁、无侵入、扩展性强。

https://blog.csdn.net/qq_34219959/article/details/97395196

3.3测试方法

模拟网络堵塞的情况测试

1. 使用工具模拟网络延迟高,网络丢包现象

2. 绿色工具clumsy可以模拟不稳定的网络环境

http://www.greenxf.com/soft/201494.html

模拟文件系统使用100%的主机情况

1. stress命令工具使用指南

https://blog.csdn.net/whatday/article/details/104477160/

模拟IO使用率高的主机情况

1.人工制造

https://blog.csdn.net/heavenmark/article/details/82805260

模拟cpu使用率高的主机环境

4.技术要求

对于区块链底层的测试,则需要掌握的技术包括如下几点:

  1. 首先要掌握密码学的基本知识(例如对称加密、非对称加密、数字签名的原理);
  2. 理解数据结构中的链表概念,树的概念;
  3. 区块链的交易记账模型(如何实现转账的,如何避免双花的,如何实现所有权验证的);
  4. 若是基于以太坊代码做,那还得理解虚拟机运行原理;

参考文献:

区块链如何测试?

区块链如何测试?_zhusongziye的博客-CSDN博客_区块链测试

区块链怎么测试

区块链怎么测试 - 太八神 - 博客园

混度测试

混沌测试_skdzyl1的专栏-CSDN博客_混沌测试

Logo

为所有Web3兴趣爱好者提供学习成长、分享交流、生态实践、资源工具等服务,作为Anome Land原住民可不断优先享受各种福利,共同打造全球最大的Web3 UGC游戏平台。

更多推荐