区块链如何测试?

发表于:2018-1-23 13:48

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:高学文    来源:Qtest之道

  区块链技术最近热的发紫,大多数的文章都在普及区块链概念。区块链可能会成为未来10年互联应用的一个底层技术,会应用于各行各业的各种项目。比如:商品溯源,传统溯源系统采用集中数据存储数据,其实这样的数据对数据库持有者来说,想怎么修改,就怎么修改,那它的数据可信度有多少?之前甚至出现过某银行储户的资金不翼而飞的情况。既然区块链会易用到各种系统,QA同学当然有必要了解下区块链该怎么测了。小编结合实际整理了下区块链测试相关内容,一起来看看吧   
  背景

  区块链的特性回顾:
  ●去中介化/中心化的信任。
  ●稳定性、可靠性、持续性。因为它是一个分布式的网络架构,没有一个中心节点可以被打击或者攻击,所以在整体的技术布置方面有着更强的稳定性、可靠性和持续性。
  ●强安全、共识机制不需要第三方的进入,而是通过一个技术来达到,先前预定的一个技术来达到整个交易的完成。
  ●交易的公开透明和不可篡改性。
  简单概括:去中心化,不可篡改、所有节点公开全账本、账户信息持续可追踪、对等网络,没有上帝角色(系统管理员等)。  
  技术储备
  一、区块链测试的难点
  区块链测试与传统的软件测试有很大的不同,主要体现在以下几点:
   ●系统边界模糊。传统的软件,不管是是独立的应用程序,还是客户端/服务器模式的应用程序,都有明显的系统边界,可以通过UI用户界面或者客户端去进行测试。区块链底层,则是一个完全去中心化的分布式网络。这个网络有可能跨越多个子网、多个数据中心、多个运营商、甚至多个国家,其边界是模糊的。对于区块链底层的测试,不仅仅是前端API与某个区块链节点之间的测试,还涉及大量区块链节点与节点之间的测试。
  ●故障类型复杂。一般软件故障包括3类:
  a.宕机故障(Crash Failure);
  b.宕机-恢复故障 (Crash-Recovery Failures);
  c.拜占庭故障 (Byzantine Failures)。所谓拜占庭故障,来自一个著名的“拜占庭将军问题”,指系统存在某些恶意节点,用一个形象的比喻就是“叛变的Byzantine将军”。从不同观察者角度看这类节点,表现出不一致的症状,这在需要共识的系统中,往往会导致系统服务失效。
   一般软件最多只需要解决前两种故障,而区块链系统,则需要同时处理所  有的故障,确保系统的可靠运行。
  ●区块链类型不同。区块链本身包含公有链、私有链、联盟链等多种类型,不同类型在管理、用户身份、最大节点数等平台自身特征方面均有不同,测评需要考虑所有的模式,导致测试方案更加复杂。(如下表)

上文内容不用于商业目的,如涉及知识产权问题,请权利人联系博为峰小编(021-64471599-8017),我们将立即处理。

21/212>
《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号