区块链技术是推动许多企业进行数字化转型并支撑新生的“信任经济”的基础技术,它可在所有参与者之间建立信任,因为它能够安全地转移任何有价值的资产。
资产可以是任何东西——付款、档库、食物、土地和知识产权等。
只能通过区块链参与者之间的共识来更新区块链,并且当输入新数据时,不能删除它,对区块链的安全性和透明度的信任至关重要。信任是推动区块链采用的动力,失去这种信任,区块链的参与者将会转向替代解决方案。
为了使区块链成功,利益相关者必须自愿加入区块链生态系统。他们需要相信区块链将正确执行交易和智能合约,并准确反映整个价值链中资产的转移。
为了提高信任度,测试人员需要确保所有区块链组件都能正常工作,并且交付给区块链结构的所有相关应用程序都应以可信的方式进行交互。
测试人员应遵循基于最佳实践的测试方法套件,其中包括以下几种路径:转向左侧测试、API、功能和性能测试。
转向左侧测试
在价值转移过程的每个步骤中对软件质量的需求为转向左侧测试提出了强有力的理由。更多的区块链项目团队正在采用敏捷和DevOps实践进行开发和测试。
通过将测试转向左侧测试,团队可以尽早执行各种测试,并连续重复使用这些测试。在开发过程中尽早提供迭代的质量反馈,可以减少在生命周期后期发现的缺陷数量,从而严重影响业务。
API测试
根据应用程序的不同,API测试需要解决应用程序与区块链生态系统之间的交互作用。由于区块链可以发出事件,因此外部调用或来自外部系统的事件可以触发区块链活动。
以提交给API的交易为例,必须根据特定规则验证交易,以生成更新顺序,然后由区块链分发,API随后会收到有关区块链已更新的确认。
测试人员必须在每个流程步骤中验证应用程序与区块链生态系统之间的交互作用,以验证API请求和响应的格式和处理正确。
功能测试
随着区块链发展到新的应用领域,重要的区块链组件以及整体生态系统的功能测试至关重要。功能测试评估用例场景和相关的业务流程,例如智能合约的行为。
测试人员要考虑的区块链组件包括:
区块大小:区块大小可能会根据区块链的应用而有所不同。因此,区块中的有效载荷的大小也将变化。对于许多区块链,少于100字节的每个区块被指定为非有效负载。
关键是,测试人员需要评估不断变化的块大小讲解影响行为。当进入一个块的新数据量超过该区块链应用程序的最大区块大小时,会发生什么。区块将讲解处理?请记住,多个事务可能会分配给一个区块。
链大小:区块链的期望是它为链上交易的每个价值转移提供永久和完整的记录,因此从理论上讲,链的大小是无限的。
数据传输:由于区块链的点对点体系结构,因此必须验证加密和解密的数据传输过程是否可以正常工作。一个关键的测试方案是确保没有数据丢失。
添加一个区块:每当对交易进行身份验证时,测试人员都需要验证新块是否已增加到链上。请记住,链是不可改变的。重要的是,无论何时添加新块,都必须正确添加,因为它永远无法更改。
性能测试
无法提升可扩展性阻碍了区块链的性能,区块链目前无法处理取代金融服务组织专有支付处理系统所需的交易量。
因此,随着区块链的发展,参与者-用户体验将不仅关注交易处理速度,而且更加关注信任。应该基于客户端应用程序的最终用户和智能合约所需的响应,以及系统界面的角度测试区块链性能。
区块链中的性能测试包括识别性能瓶颈,定义用于调整系统的指标以及评估应用程序是否已准备好投入生产。
质量检查人员还应该对扩展的区块链提供的任何执行服务进行测试,以评估多个数据共识失败和跨节点更新的影响。测试人员应预见其性能测试中的差异,因为延迟会因区块链所在的P2P网络的大小和交易量而异。
数据类型和服务器位置可能会进一步影响方案。自动化性能测试是评估区块链生态系统整体可扩展性的关键。端到端场景需要结合区块链生态系统的所有方面,并且应包括具有多个端点的复合测试。
由于为区块链提供动力的共享分类账本需要在每个节点上反映相同的交易顺序。由于不同共识协议之间的延迟可能会有所不同,因此测试人员需要执行对等/节点测试,以确保发布为新区块的交易的一致性和性能。
他们还需要确保交易以正确的顺序进行发布,以确保维护网络和共享分类账本的完整性。
区块链是一项新兴技术,其提供的应用远远超出了安全支付的范围。随着其发展成为数字化变革的平台,区块链为当今全球组织中现有的中心化交易和记录保存机制提供了一种颠覆性的且节省成本的替代方案。
与任何新技术一样,区块链的成功与采用取决于其可扩展性。但是,有了区块链,对共识的信任对于每一个区块链交易的完整性和一致性都是至关重要的。
持续测试是建立信任的重要支柱,其中包括API的测试,以及功能和性能测试。
“链圈一日,人间一年。”区块链的速度和巨大的财富效应让焦虑的投资者和创业者疯狂涌入,而且区块链很有可能会成为未来10年互联应用的一个底层技术,会应用于各行各业的各种项目。
比如:商品溯源,传统溯源系统采用集中数据存储数据,其实这样的数据对数据库持有者来说,想怎么修改,就怎么修改,那它的数据可信度有多少?之前甚至出现过某银行储户的资金不翼而飞的情况。
既然区块链会易用到各种系统,QA同学当然有必要了解下区块链该怎么测了。小编结合实际整理了下区块链测试相关内容,一起来看看吧!
区块链测试的难点
区块链测试与传统的软件测试有很大的不同。
系统边界模糊。
传统的软件,不管是是独立的应用程序,还是客户端/服务器模式的应用程序,都有明显的系统边界,可以通过UI用户界面或者客户端去进行测试。
区块链底层,则是一个完全去中心化的分布式网络。这个网络有可能跨越多个子网、多个数据中心、多个运营商、甚至多个国家,其边界是模糊的。
对于区块链底层的测试,不仅仅是前端API与某个区块链节点之间的测试,还涉及大量区块链节点与节点之间的测试。
故障类型复杂。
一般软件故障包括3类:
1)宕机故障(Crash Failure);
2)宕机-恢复故障 (Crash-Recovery Failures);
3)拜占庭故障 (Byzantine Failures)。
所谓拜占庭故障,来自一个著名的“拜占庭将军问题”,指系统存在某些恶意节点,用一个形象的比喻就是“叛变的Byzantine将军”。
从不同观察者角度看这类节点,表现出不一致的症状,这在需要共识的系统中,往往会导致系统服务失效。
一般软件最多只需要解决前两种故障,而区块链系统,则需要同时处理所有的故障,确保系统的可靠运行。
免责声明: 文章源于会员发布,不作为任何投资建议
如有侵权请联系我们删除,本文链接:https://www.sws100.com/biquan/269145.html