作為一名QA蝙泼,初探區(qū)塊鏈,眼前全是未知劝枣,更何談區(qū)塊鏈質(zhì)量保證汤踏,于是在google上找到了一篇關(guān)于區(qū)塊鏈測試最佳實踐的文章,它提供了一些測試區(qū)塊鏈的思維舔腾,把它作為區(qū)塊鏈測試入門的階梯茎活,幫助我進(jìn)入?yún)^(qū)塊鏈的大門,大家可以通過閱讀這篇文章琢唾,對區(qū)塊鏈測試有一些宏觀上的了解和思考,所以我把它翻譯成中文盾饮,提供給有興趣的小伙伴參考討論采桃。
原文鏈接:Best Practice In Blockchain Testing? ?作者:?Deb Cobb
區(qū)塊鏈是一個數(shù)字化,分散丘损,公開共享的公共分類賬普办,詳細(xì)說明了每個價值,旨在記錄交易和跟蹤業(yè)務(wù)網(wǎng)絡(luò)中的資產(chǎn)和轉(zhuǎn)移交易徘钥,區(qū)塊鏈依賴于由用戶機器組成的的點對點的計算機網(wǎng)絡(luò)衔蹲,其點對點架構(gòu)與它自身的不變性,透明性,去中介性相結(jié)合舆驶,使其成為銷售和任何基于價值資產(chǎn)轉(zhuǎn)移的理想平臺橱健。
在區(qū)塊鏈架構(gòu)中,節(jié)點扮演著參與者沙廉,他們共享一個通過點對點復(fù)制更新的賬本拘荡,當(dāng)交易發(fā)生時,每個節(jié)點都能夠從其他節(jié)點上接收交易記錄撬陵。由于節(jié)點既充當(dāng)發(fā)布者又充當(dāng)訂閱者珊皿,節(jié)點也可以發(fā)送交易信息。交易數(shù)據(jù)在傳輸時在網(wǎng)絡(luò)上同步巨税。
區(qū)塊鏈網(wǎng)絡(luò)即經(jīng)濟(jì)又高效蟋定,因為它消除了利益相關(guān)者之間的重復(fù)工作,減少了對中間人的需求草添。因為共識模型對信息進(jìn)行驗證驶兜,因此交易是安全的,可以被認(rèn)證的果元,并且是可以被驗證的促王。這些因素共同使區(qū)塊鏈成為一個記錄和存儲交易過程以及跟蹤供應(yīng)鏈中任何資產(chǎn)流動的理想平臺。
區(qū)塊鏈正在向數(shù)字信托轉(zhuǎn)變
區(qū)塊鏈?zhǔn)菫樵S多企業(yè)的數(shù)字化轉(zhuǎn)型提供動力而晒,它是一種支持新興的“信任經(jīng)濟(jì)”的基礎(chǔ)技術(shù)蝇狼,它在所有參與者之間產(chǎn)生信任,因為它可以安全的轉(zhuǎn)移任何有價值的資產(chǎn)倡怎。資產(chǎn)可以是任何東西 - 例如支付迅耘,記錄,食品监署,土地颤专,知識產(chǎn)權(quán)等。
區(qū)塊鏈只能通過區(qū)塊鏈的參與者之間的共識進(jìn)行更新钠乏,并且當(dāng)新的數(shù)據(jù)涌入時栖秕,鏈上的數(shù)據(jù)是不會出現(xiàn)中斷的。對區(qū)塊鏈的安全性和透明度的信任是至關(guān)重要的晓避,安全保證是驅(qū)動區(qū)塊鏈被采納的關(guān)鍵因素簇捍,喪失這些信任,區(qū)塊鏈的參與者們就會選擇其他的解決方案俏拱。
要使區(qū)塊鏈取得成功暑塑,利益相關(guān)者必須愿意加入?yún)^(qū)塊鏈生態(tài)系統(tǒng)中,他們需要相信區(qū)塊鏈能夠使用正確的智能合約去執(zhí)行交易锅必,并且能夠準(zhǔn)確的反映整個價值鏈的資產(chǎn)轉(zhuǎn)移事格。
測試區(qū)塊鏈
為了促進(jìn)信任,測試人員需要確保所有區(qū)塊鏈組件的正常工作,并且交付給區(qū)塊鏈結(jié)構(gòu)的任何相關(guān)應(yīng)用程序之間都以互信的方式進(jìn)行交互驹愚,測試人員應(yīng)該遵循測試的最佳實踐方法远搪,其中包括:Shift Left,API么鹤,功能測試和性能測試终娃。
Shift Left Testing
在價值轉(zhuǎn)移過程的每一個步驟對軟件質(zhì)量的要求為Shift Left 測試提供了強有力的論據(jù),更多區(qū)塊鏈項目團(tuán)隊正在將Agile和DevOps實踐應(yīng)用于他們的開發(fā)和測試工作蒸甜。通過Shift Left棠耕,團(tuán)隊可以盡早執(zhí)行各種測試,并不斷重復(fù)這些測試柠新。在開發(fā)過程中提供早期的迭代質(zhì)量反饋可以減少在生命周期后期發(fā)現(xiàn)非常嚴(yán)重缺陷的數(shù)量窍荧。
API Testing
根據(jù)應(yīng)用程序的不同,API測試需要解決應(yīng)用程序進(jìn)出區(qū)塊鏈生態(tài)系統(tǒng)的過程恨憎,由于區(qū)塊鏈可以觸發(fā)事件蕊退,外部系統(tǒng)的外部調(diào)用或外部事件可以觸發(fā)區(qū)塊鏈活動°究遥考慮提交給API的交易瓤荔,必須根據(jù)具體的規(guī)則驗證按照順序在區(qū)塊鏈上進(jìn)行更新。然后钥组,API會收到區(qū)塊鏈已經(jīng)更新的確認(rèn)反饋输硝。測試人員必須在每個流程步驟中驗證應(yīng)用系統(tǒng)進(jìn)出區(qū)塊鏈系統(tǒng)的交互,即API的請求和響應(yīng)都已經(jīng)被正確的格式化和處理程梦。
Functional Testing
隨著區(qū)塊鏈進(jìn)入新的應(yīng)用領(lǐng)域点把,重要的區(qū)塊鏈組件以及整體生態(tài)系統(tǒng)的功能測試至關(guān)重要,功能測試需要評估用例場景和相關(guān)的業(yè)務(wù)流程屿附,例如智能合約的行為郎逃。
測試人員需要考慮的區(qū)塊鏈組件包括:
Block-size:塊的大小可能會根據(jù)區(qū)塊鏈的應(yīng)用而變化,因此挺份,塊中的有效載荷也將在大小上有所變化褒翰。對于許多區(qū)塊鏈,每個塊不到100字節(jié)被認(rèn)識非有效載荷匀泊。在撰寫本文時影暴,比特幣每塊的固定大小限制在1MB。關(guān)鍵是探赫,測試人員需要評估更改塊大小如何影響行為。當(dāng)進(jìn)入塊的新數(shù)據(jù)量超過該區(qū)塊鏈應(yīng)用程序的最大塊大小時會發(fā)生什么撬呢,如何解決伦吠?請記住,多個交易可以被分配到一個區(qū)塊。
Chain-size:區(qū)塊鏈的期望是它能夠提供鏈上交易的每個價值轉(zhuǎn)移的永久并且完整的記錄毛仪,因此從理論上來講搁嗓,鏈的大小是無限的
Data-transmission:由于區(qū)塊鏈的對等體系結(jié)構(gòu),驗證加密和解密的數(shù)據(jù)傳輸過程是否完美無缺箱靴,這一點至關(guān)重要腺逛。關(guān)鍵測試場景是確保沒有數(shù)據(jù)丟失。
Adding-block:每當(dāng)驗證交易時衡怀,測試人員需要驗證新塊是否被附加上鏈棍矛。請記住,鏈?zhǔn)遣豢勺兊呐籽睢V匾氖枪晃瑹o論何時添加新塊,都要是正確的怖现,因為它永遠(yuǎn)無法更改茁帽。
Performance Testing
在文章發(fā)稿時,區(qū)塊鏈性能因無法擴展而受到阻礙 - 例如; 區(qū)塊鏈目前無法處理替換金融服務(wù)組織的專有支付處理系統(tǒng)所需的大量交易屈嗤。 因此潘拨,隨著區(qū)塊鏈的發(fā)展,參與者 - 用戶體驗將同樣關(guān)注信任與事務(wù)處理速度饶号。 性能測試應(yīng)該基于區(qū)塊鏈的客戶端應(yīng)用程序的最終用戶角度铁追,去測試智能合約和系統(tǒng)接口所需的響應(yīng)時間。
區(qū)塊鏈中的性能測試包括識別性能瓶頸讨韭,定義用于調(diào)整系統(tǒng)的度量標(biāo)準(zhǔn)脂信,以及評估應(yīng)用程序是否可以投產(chǎn)。
QA還應(yīng)該針對拓展區(qū)塊鏈提供的任何執(zhí)行服務(wù)進(jìn)行測試透硝,去評估多數(shù)據(jù)共識失敗和跨節(jié)點更新的影響狰闪。測試人員應(yīng)該預(yù)測性能測試中的偏差,因為延遲會根據(jù)區(qū)塊鏈所在的P2P網(wǎng)絡(luò)的帶寬和交易的數(shù)據(jù)量的變化而變化濒生。場景會進(jìn)一步受到數(shù)據(jù)類型和服務(wù)器位置的影響埋泵,自動化性能測試的關(guān)鍵是評估區(qū)塊鏈生態(tài)系統(tǒng)整體的可拓展性。端到端的場景需要結(jié)合區(qū)塊鏈生態(tài)系統(tǒng)的各個方面罪治,并且應(yīng)該包含多節(jié)點的復(fù)合測試丽声。
由于為區(qū)塊鏈提供動力的共享賬本,需要在每個節(jié)點上反映相同的交易序列觉义,不同的共識協(xié)議之間的延遲可能是不同的雁社,測試人員需要執(zhí)行對等節(jié)點測試去保證當(dāng)產(chǎn)生一個新塊時,它所發(fā)布交易的一致性和性能晒骇。同時交易需要遵循適當(dāng)?shù)捻樞蛎鼓欤源_保網(wǎng)絡(luò)和共享賬本的完整性是可維護(hù)的磺浙。
結(jié)論
區(qū)塊鏈?zhǔn)且环N新興技術(shù),它可以提供給應(yīng)用程序的安全性遠(yuǎn)遠(yuǎn)超過安全支付徒坡。隨著它逐漸發(fā)展成為一個數(shù)字化轉(zhuǎn)型平臺撕氧,區(qū)塊鏈為當(dāng)今全球組織中存在的集中式交易和記錄保存機制提供了一種破壞性和節(jié)約成本的替代方案。與任何新興技術(shù)一樣喇完,區(qū)塊鏈的成功和應(yīng)用取決于它的可拓展性伦泥。但是,對于區(qū)塊鏈锦溪,對共識的信任是每個區(qū)塊鏈交易完整性和一致性的基礎(chǔ)不脯。持續(xù)測試是建立信任的重要支柱,其包括API測試海洼。功能測試和性能測試跨新。