概述
1.区块链底层测试的难点
区块链底层测试与传统的软件测试相比来说:
- 系统边界模糊:传统的软件,不管是是独立的应用程序,还是客户端/服务器模式的应用程序,都有明显的系统边界,可以通过UI用户界面或者客户端去进行测试;区块链底层,则是一个完全去中心化的分布式网络。这个网络有可能跨越多个子网、多个数据中心、多个运营商、甚至多个国家,其边界是模糊的。对于区块链底层的测试,不仅包括前端API与某个区块链节点之间的测试,还涉及大量区块链节点与节点之间的测试。
- 故障类型复杂:区块链故障类型包括宕机故障(Crash Failure)、宕机-恢复故障 (Crash-Recovery Failures)、拜占庭故障 (Byzantine Failures)。
- 区块链类型不同:不同类型在管理、用户身份、最大节点数等平台自身特征方面均有不同,测评需要考虑所有的模式,导致测试方案更加复杂。
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.技术要求
对于区块链底层的测试,则需要掌握的技术包括如下几点:
- 首先要掌握密码学的基本知识(例如对称加密、非对称加密、数字签名的原理);
- 理解数据结构中的链表概念,树的概念;
- 区块链的交易记账模型(如何实现转账的,如何避免双花的,如何实现所有权验证的);
- 若是基于以太坊代码做,那还得理解虚拟机运行原理;
参考文献:
区块链如何测试?
区块链如何测试?_zhusongziye的博客-CSDN博客_区块链测试
区块链怎么测试
区块链怎么测试 - 太八神 - 博客园
混度测试
混沌测试_skdzyl1的专栏-CSDN博客_混沌测试
最后
以上就是自觉果汁为你收集整理的区块链测试(三):区块链测试的工具和方法1.区块链底层测试的难点2.区块链的评测标准3.测试工具/方法4.技术要求的全部内容,希望文章能够帮你解决区块链测试(三):区块链测试的工具和方法1.区块链底层测试的难点2.区块链的评测标准3.测试工具/方法4.技术要求所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复