【译】区块链测试最佳实践

作为一名QA,初探区块链,眼前全是未知,更何谈区块链质量保证,于是在google上找到了一篇关于区块链测试最佳实践的文章,它提供了一些测试区块链的思维,把它作为区块链测试入门的阶梯,帮助我进入区块链的大门,大家可以通过阅读这篇文章,对区块链测试有一些宏观上的了解和思考,所以我把它翻译成中文,提供给有兴趣的小伙伴参考讨论。

原文链接:Best Practice In Blockchain Testing   作者: Deb Cobb

区块链是一个数字化,分散,公开共享的公共分类账,详细说明了每个价值,旨在记录交易和跟踪业务网络中的资产和转移交易,区块链依赖于由用户机器组成的的点对点的计算机网络,其点对点架构与它自身的不变性,透明性,去中介性相结合,使其成为销售和任何基于价值资产转移的理想平台。

在区块链架构中,节点扮演着参与者,他们共享一个通过点对点复制更新的账本,当交易发生时,每个节点都能够从其他节点上接收交易记录。由于节点既充当发布者又充当订阅者,节点也可以发送交易信息。交易数据在传输时在网络上同步。

区块链网络即经济又高效,因为它消除了利益相关者之间的重复工作,减少了对中间人的需求。因为共识模型对信息进行验证,因此交易是安全的,可以被认证的,并且是可以被验证的。这些因素共同使区块链成为一个记录和存储交易过程以及跟踪供应链中任何资产流动的理想平台。

区块链正在向数字信托转变

区块链是为许多企业的数字化转型提供动力,它是一种支持新兴的“信任经济”的基础技术,它在所有参与者之间产生信任,因为它可以安全的转移任何有价值的资产。资产可以是任何东西 - 例如支付,记录,食品,土地,知识产权等。

区块链只能通过区块链的参与者之间的共识进行更新,并且当新的数据涌入时,链上的数据是不会出现中断的。对区块链的安全性和透明度的信任是至关重要的,安全保证是驱动区块链被采纳的关键因素,丧失这些信任,区块链的参与者们就会选择其他的解决方案。

要使区块链取得成功,利益相关者必须愿意加入区块链生态系统中,他们需要相信区块链能够使用正确的智能合约去执行交易,并且能够准确的反映整个价值链的资产转移。

测试区块链

为了促进信任,测试人员需要确保所有区块链组件的正常工作,并且交付给区块链结构的任何相关应用程序之间都以互信的方式进行交互,测试人员应该遵循测试的最佳实践方法,其中包括:Shift LeftAPI,功能测试和性能测试

Shift Left Testing

在价值转移过程的每一个步骤对软件质量的要求为Shift Left 测试提供了强有力的论据,更多区块链项目团队正在将AgileDevOps实践应用于他们的开发和测试工作。通过Shift Left,团队可以尽早执行各种测试,并不断重复这些测试。在开发过程中提供早期的迭代质量反馈可以减少在生命周期后期发现非常严重缺陷的数量。

API Testing

根据应用程序的不同,API测试需要解决应用程序进出区块链生态系统的过程,由于区块链可以触发事件,外部系统的外部调用或外部事件可以触发区块链活动。考虑提交给API的交易,必须根据具体的规则验证按照顺序在区块链上进行更新。然后,API会收到区块链已经更新的确认反馈。测试人员必须在每个流程步骤中验证应用系统进出区块链系统的交互,即API的请求和响应都已经被正确的格式化和处理。

Functional Testing

随着区块链进入新的应用领域,重要的区块链组件以及整体生态系统的功能测试至关重要,功能测试需要评估用例场景和相关的业务流程,例如智能合约的行为。

测试人员需要考虑的区块链组件包括:

Block-size:块的大小可能会根据区块链的应用而变化,因此,块中的有效载荷也将在大小上有所变化。对于许多区块链,每个块不到100字节被认识非有效载荷。在撰写本文时,比特币每块的固定大小限制在1MB。关键是,测试人员需要评估更改块大小如何影响行为。当进入块的新数据量超过该区块链应用程序的最大块大小时会发生什么,如何解决?请记住,多个交易可以被分配到一个区块。

Chain-size:区块链的期望是它能够提供链上交易的每个价值转移的永久并且完整的记录,因此从理论上来讲,链的大小是无限的

Data-transmission:由于区块链的对等体系结构,验证加密和解密的数据传输过程是否完美无缺,这一点至关重要。关键测试场景是确保没有数据丢失。

Adding-block:每当验证交易时,测试人员需要验证新块是否被附加上链。请记住,链是不可变的。重要的是,无论何时添加新块,都要是正确的,因为它永远无法更改。

Performance Testing

在文章发稿时,区块链性能因无法扩展而受到阻碍 - 例如; 区块链目前无法处理替换金融服务组织的专有支付处理系统所需的大量交易。 因此,随着区块链的发展,参与者 - 用户体验将同样关注信任与事务处理速度。 性能测试应该基于区块链的客户端应用程序的最终用户角度,去测试智能合约和系统接口所需的响应时间。

区块链中的性能测试包括识别性能瓶颈,定义用于调整系统的度量标准,以及评估应用程序是否可以投产。

QA还应该针对拓展区块链提供的任何执行服务进行测试,去评估多数据共识失败和跨节点更新的影响。测试人员应该预测性能测试中的偏差,因为延迟会根据区块链所在的P2P网络的带宽和交易的数据量的变化而变化。场景会进一步受到数据类型和服务器位置的影响,自动化性能测试的关键是评估区块链生态系统整体的可拓展性。端到端的场景需要结合区块链生态系统的各个方面,并且应该包含多节点的复合测试

由于为区块链提供动力的共享账本,需要在每个节点上反映相同的交易序列,不同的共识协议之间的延迟可能是不同的,测试人员需要执行对等节点测试去保证当产生一个新块时,它所发布交易的一致性和性能。同时交易需要遵循适当的顺序,以确保网络和共享账本的完整性是可维护的。

结论

区块链是一种新兴技术,它可以提供给应用程序的安全性远远超过安全支付。随着它逐渐发展成为一个数字化转型平台,区块链为当今全球组织中存在的集中式交易和记录保存机制提供了一种破坏性和节约成本的替代方案。与任何新兴技术一样,区块链的成功和应用取决于它的可拓展性。但是,对于区块链,对共识的信任是每个区块链交易完整性和一致性的基础。持续测试是建立信任的重要支柱,其包括API测试。功能测试和性能测试。

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 204,053评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,527评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,779评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,685评论 1 276
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,699评论 5 366
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,609评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,989评论 3 396
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,654评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,890评论 1 298
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,634评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,716评论 1 330
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,394评论 4 319
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,976评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,950评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,191评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 44,849评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,458评论 2 342

推荐阅读更多精彩内容