• <option id="cacee"><noscript id="cacee"></noscript></option>
  • <table id="cacee"><noscript id="cacee"></noscript></table>
  • <td id="cacee"></td>
  • <option id="cacee"></option>
  • <table id="cacee"></table>
  • <option id="cacee"><option id="cacee"></option></option>
  • <table id="cacee"><source id="cacee"></source></table><td id="cacee"><rt id="cacee"></rt></td>
    <option id="cacee"><option id="cacee"></option></option>
     找回密碼
     立即注冊

    掃一掃,登錄網站

    首頁 自媒體 查看內容
    • 3955
    • 0
    • 分享到

    如何做區塊鏈項目測試?

    2018-7-3 13:31

    來源: HiBlock-Net


    區塊鏈技術最近熱的發紫,大多數的文章都在普及區塊鏈概念。區塊鏈可能會成為未來10年互聯應用的一個底層技術,會應用于各行各業的各種項目。比如:商品溯源,傳統溯源系統采用集中數據存儲數據,其實這樣的數據對持有者來說,想怎么修改,就怎么修改,那它的數據可信度有多少?之前甚至出現過某銀行儲戶的資金不翼而飛的情況。既然區塊鏈會易用到各種系統,QA同學當然有必要了解下區塊鏈該怎么測了。本文結合實際整理了下區塊鏈測試相關內容,一起來看看吧。


    1

    背景



    區塊鏈的特性回顧:


    ● 去中介化/中心化的信任。

    ● 穩定性、可靠性、持續性。因為它是一個分布式的網絡架構,沒有一個中心節點可以被打擊或者攻擊,所以在整體的技術布置方面有著更強的穩定性、可靠性和持續性。

    ● 強安全、共識機制不需要第三方的進入,而是通過一個技術來達到,先前預定的一個技術來達到整個交易的完成。

    ● 交易的公開透明和不可篡改性。

    簡單概括:去中心化,不可篡改、所有節點公開全賬本、賬戶信息持續可追蹤、對等網絡,沒有上帝角色(系統管理員等)。


    2

    技術儲備


    2.1 區塊鏈測試的難點



    區塊鏈測試與傳統的軟件測試有很大的不同,主要體現在以下幾點:


    ●系統邊界模糊

    傳統的軟件,不管是是獨立的應用程序,還是客戶端/服務器模式的應用程序,都有明顯的系統邊界,可以通過UI用戶界面或者客戶端去進行測試。區塊鏈底層,則是一個完全去中心化的分布式網絡。這個網絡有可能跨越多個子網、多個數據中心、多個運營商、甚至多個國家,其邊界是模糊的。對于區塊鏈底層的測試,不僅僅是前端API與某個區塊鏈節點之間的測試,還涉及大量區塊鏈節點與節點之間的測試。


    ●故障類型復雜

    一般軟件故障包括3類:
     a.宕機故障(Crash Failure);
     b.宕機-恢復故障 (Crash-Recovery Failures);
     c.拜占庭故障 (Byzantine Failures)。

    所謂拜占庭故障,來自一個著名的“拜占庭將軍問題”,指系統存在某些惡意節點,用一個形象的比喻就是“叛變的Byzantine將軍”。從不同觀察者角度看這類節點,表現出不一致的癥狀,這在需要共識的系統中,往往會導致系統服務失效。


    一般軟件最多只需要解決前兩種故障,而區塊鏈系統,則需要同時處理所  有的故障,確保系統的可靠運行。


    ●區塊鏈類型不同

    區塊鏈本身包含公有鏈、私有鏈、聯盟鏈等多種類型,不同類型在管理、用戶身份、最大節點數等平臺自身特征方面均有不同,測評需要考慮所有的模式,導致測試方案更加復雜。(如下表)



    2.2 測試點的考量


    根據目前行業發布的白皮書,區塊鏈的評測標準包括:



    技術要求


    區塊鏈相關的落地系統,也可能包括我們熟悉的傳統架構軟件的測試內容。比如之前某些廠商的帶寬共享、共享云,也會有獨立的APP支持在線查詢管理等;對于區塊鏈底層的測試,則需要掌握的技術包括如下幾點:


    1.首先要掌握密碼學的基本知識(例如對稱加密、非對稱加密、數字簽名的原理);

    2.理解數據結構中的鏈表概念,樹的概念;

    3.區塊鏈的交易記賬模型(如何實現轉賬的,如何避免雙花的,如何實現所有權驗證的);

    4.若是基于以太坊代碼做,那還得理解虛擬機運行原理;


    區塊鏈項目重點測試如下內容:


    1.轉賬,向單/多簽名地址轉賬,向腳本轉賬;

    2.如果對幣的機制有修改,雙花攻擊測試;

    3.智能合約功能及安全測試;

    4.打包及交易確認效率。


    其實,任何軟件的測試,都是可以基于“輸入-輸出-行為”模型(又叫IBO模型)來做測試分析和設計。


    3

    業務場景及性能測試


    3.1 業務場景


    我們以金融業務為例,通常分為實施業務、和非實時業務,兩種業務的特點在于:


    1.實時業務:秒級支付、私有鏈、無單點故障和高擴展性;

    2.非實時業務:去中心化、聯盟鏈、防篡改、數據零丟失;


    具體如下圖:



    3.2 關于性能測試的一些思考


    對于性能評測部分,主要關注一下4個指標:



    對于不同的性能指標,幾點思考:


    ●延遲:P2P系統中都是虛擬鏈接,實際路由可能每次都不一樣。

    ●共識率:系統中設定一些節點,故意篡改釋放假數據,看是否成功。

    ●吞吐率:檢查礦工的效率,即整個系統每秒的有效交易數。

    ●目前性能評測中,常見的是脫離網絡規模和區塊大小談每秒交易數(TPS)


    a.實際中,網絡規模越大,需要達成共識的節點越多,達成共識的進度,越慢,吞吐量(TPS)就越低;

    b.區塊越大,可擴展性越大,吞吐量可能發生抖動,大概率是變低。



    4

    結束語


    目前對于區塊鏈的測試內容上,短期還會出現針對不同行業的差異性,但最終會走向融合和統一。測試手段上,也將隨著時間逐步由人工測試,轉向自動化測試,有周邊的功能深入到底層。

    內容來源:Qtest之道

    作者:高學文


    版權申明:本內容來自于互聯網,屬第三方匯集推薦平臺。本文的版權歸原作者所有,文章言論不代表鏈門戶的觀點,鏈門戶不承擔任何法律責任。如有侵權請聯系QQ:3341927519進行反饋。
    相關新聞
    發表評論

    請先 注冊/登錄 后參與評論

      回頂部
    • <option id="cacee"><noscript id="cacee"></noscript></option>
    • <table id="cacee"><noscript id="cacee"></noscript></table>
    • <td id="cacee"></td>
    • <option id="cacee"></option>
    • <table id="cacee"></table>
    • <option id="cacee"><option id="cacee"></option></option>
    • <table id="cacee"><source id="cacee"></source></table><td id="cacee"><rt id="cacee"></rt></td>
      <option id="cacee"><option id="cacee"></option></option>
      妖精视频