区块链测试方法总结

链圈一日,人间一年。”区块链的速度和巨大的财富效应让焦虑的投资者和创业者疯狂涌入,而且区块链很有可能会成为未来10年互联应用的一个底层技术,会应用于各行各业的各种项目。

比如:商品溯源,传统溯源系统采用集中数据存储数据,其实这样的数据对数据库持有者来说,想怎么修改,就怎么修改,那它的数据可信度有多少?之前甚至出现过某银行储户的资金不翼而飞的情况。

既然区块链会易用到各种系统,QA同学当然有必要了解下区块链该怎么测了。小编结合实际整理了下区块链测试相关内容,一起来看看吧!

区块链测试的难点

区块链测试与传统的软件测试有很大的不同。

系统边界模糊。

传统的软件,不管是是独立的应用程序,还是客户端/服务器模式的应用程序,都有明显的系统边界,可以通过UI用户界面或者客户端去进行测试。

区块链底层,则是一个完全去中心化的分布式网络。这个网络有可能跨越多个子网、多个数据中心、多个运营商、甚至多个国家,其边界是模糊的。

对于区块链底层的测试,不仅仅是前端API与某个区块链节点之间的测试,还涉及大量区块链节点与节点之间的测试。

故障类型复杂。

一般软件故障包括3类:

1)宕机故障(Crash Failure);

2)宕机-恢复故障 (Crash-Recovery Failures);

3)拜占庭故障 (Byzantine Failures)。

所谓拜占庭故障,来自一个著名的“拜占庭将军问题”,指系统存在某些恶意节点,用一个形象的比喻就是“叛变的Byzantine将军”。

从不同观察者角度看这类节点,表现出不一致的症状,这在需要共识的系统中,往往会导致系统服务失效。

一般软件最多只需要解决前两种故障,而区块链系统,则需要同时处理所有的故障,确保系统的可靠运行。

区块链类型不同。

区块链本身包含公有链、私有链、联盟链等多种类型,不同类型在管理、用户身份、最大节点数等平台自身特征方面均有不同,测试需要考虑所有的模式,导致测试方案更加复杂。(如下表)

区块链测试方法

根据目的的不同,区块链测试方法可分为:登记测试、鉴定测试、应用测试、对比测试、验收测试等。不同的服务,测试的内容和手段都有不同。

根据区块链测试内容,大体上可分为功能测试、性能测试、安全性测试、可靠性测试四大类。后三大类均属非功能性测试范畴。

文章来源:云测学院

  • 发表于:
  • 原文链接http://kuaibao.qq.com/s/20180426A11SEL00?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 yunjia_community@tencent.com 删除。

扫码关注云+社区

领取腾讯云代金券