星雲精準測試有力提升金融複雜系統的測試能效

隨着國內大數據、雲計算、人工智能等新技術的發展,銀行業的前中後臺正面臨着全面改造,金融科技是業務轉型發展的一個核心發力點。金融行業信息系統集中度高、規模龐大、多系統之間關聯性強、業務複雜、需求變化快,另外各種新舊系統錯綜交互,軟件質量控制難度異常複雜。通過技術手段精準地追溯每一個數據路線,有效實現信息系統的高可靠性和易維護性,是金融業界共同的目標。

一、傳統測試的侷限
  目前,在大部分金融機構中,主流的功能測試方法是黑盒測試輔之以一定量的自動化測試。由於自動化測試用例的維護問題較多,黑盒手工(功能)測試依然是主流。它有很多經典方法,如等價類、正交用例設計法以及近些年流行的探索性測試等。因黑盒測試方法總體依賴於業務經驗,以及一定的測試“靈感”和臨場發揮的“算力”,隨着金融軟件複雜性和迭代速度的不斷加快、軟件系統組合路徑膨脹等問題,人腦的推算力顯然遠遠跟不上了。即使很優秀的測試人員,也會因爲狀態問題而導致測試用例設計水準出現波動。後續測試覆蓋不充分性日益凸顯,剩餘至少30%以上的漏測點。而白盒測試工具,因爲技術沒有跟上敏捷迭代的開發場景,目前在金融企業幾乎很少在實際中應用。

二、精準測試概念的提出

  如何快速定位金融大型信息系統的測試死角,用“可量化”和“可視化”的分析與測試手段,有效地發現程序深層隱藏的缺陷、提高信息系統投產質量、降低投產風險、增強投產信心,金融業甚至軟件業均在尋求最佳解決方案。

  精準測試方法體系,是近年來業界頗爲關注的新測試技術體系。它立足於“系統級”測試,建立了業務功能與代碼之間的映射與追溯關係,在代碼優化、快速定位代碼缺陷、確保關鍵代碼的測試覆蓋、精準迴歸等方面表現突出。爲金融信息系統實施高效管理,提供了質量抓手。

三、 精準測試的關鍵技術

  1. 精準測試的核心技術

  精準測試最底層的核心技術:“一種基於用例與源碼雙向追溯的測試裝置及方法”,用一個量子糾纏的形象類比:如常見的金融轉賬、手機拍照、機器人控制等指令,每個操作都有與之對應的代碼,他們之間如同兩個糾纏在一起的粒子,具備強關聯性。一個發生變化,另一個必定發生相應變化。星雲精準測試將功能用例和對應的代碼之間實現了精準無誤的追溯路線可視化,徹底解決了“黑盒”的難題。在此核心技術基礎上,諸如:“迴歸測試用例的自動選取”、“覆蓋率可視化”、“智能缺陷定位”、“聚類分析”等精準測試的高級功能得以充分實現。

雙向追溯

圖 雙向追溯(正向)-測試用例追溯到代碼

  由於優秀的內核設計,星雲精準測試(www.teststars.cc) 可以輕鬆應用在數億行的超大型複雜應用上,在建立測試用例、代碼、模塊之間精準可視追溯機制的同時,瞬間可將海量數據實時採集並存儲起來,用於後續測試大數據的分析和運算上。整體過程對原有系統性能,不產生干擾。

  1. 高度智能化的靜默式落地方案

  星雲精準測試並不改變現有的測試流程和團隊組成,它巧妙地使黑盒測試無縫對接到精準測試體系,快速實現提升測試效能比的剛需。測試工程師打開測試用例的Excel表格、執行點擊用例,即可通過VBA技術,直接調用星雲精準測試的後臺接口,再附加一整套深入應用後臺執行線程的用戶標籤技術,就可以將用例和代碼關聯和分離出來(分離是指類似J2EE服務端後臺應用)。在對外提供多用戶併發訪問的情況下,可分離出每個用戶執行的用例所對應的代碼。測試者在整個過程中,幾乎不需要增加額外工作量。

  1. 精準可信的測試數據記錄過程

  傳統測試有點像挖礦藏,主要依賴測試用例執行數、時長、bug的數量等外在維度進行衡量,缺陷是未知數,結果不那麼具備公信力。精準測試是傳統測試走向可信測試的一個最好的技術手段。它的所有測試數據均是在測試執行過程中,由軟件自動分析並錄入的底層代碼運行原生數據。由於用例和執行代碼之間信息被完整跟蹤,並且細分到測試用例級別,因此整個測試數據都可以在代碼層面可視化出來,人工無法介入修改。它真實再現測試現場情況,結果可直接用於測試的過程管理和實效分析。從技術上確保所有數據精準無篡改。這一舉措,使測試的衡量點回歸到計算機程序的本質-“代碼”上來。

四、精準測試的應用實踐

  精準測試的用例與執行代碼的強追溯性,爲採集到的海量測試數據實現精準度量以及全面、多維度的測試分析,打下了堅實基礎。測試管理從相對單一的覆蓋率考量視角,擴展到多剖面的智能分析。由於篇幅限制,本文選擇兩個主要功能點做一介紹:

1、企業級覆蓋率方面的創新

  測試覆蓋率是測試界公認的測試結項可用量化指標。在敏捷迭代場景下,由於新版本快速發佈,代碼變更頻繁,本應在一個版本上分析的覆蓋數據,分佈到了數個代碼結構不一樣的程序版本上,因此傳統白盒覆蓋率的統計方法和參考意義基本上都失效了。星雲精準測試通過軟件示波器在系統測試階段取採集多種代碼覆蓋率(最高支持航天航空標準MC/DC的100%覆蓋率要求),提供實時覆蓋率增長趨勢圖及各類分析報表,管理者可清晰的觀察整個測試進度情況、效率等。

  覆蓋率智能合併。精準測試可以按照敏捷的模式,將多個版本的覆蓋率以最新程序代碼版本爲投影進行合併,在控制流上直接累加,無需在每個版本上跑全量用例。它在不同的版本上執行不同功能範圍的用例,然後合併一個測試周期的覆蓋率信息,看總體的覆蓋情況。覆蓋率合併算法將全自動分析每個版本序列上程序函數變更的情況,以最新版本往前合併,直到某個模塊的代碼發生變化,在此之間的覆蓋率均可合併。

  增量覆蓋率分析。版本發佈後,精準測試可以對增量代碼覆蓋專門有一個統計維度,這樣也是對於覆蓋率目標的一種工業應用新思路,不用去關注總體覆蓋,而在迭代中關注調整代碼的覆蓋,尤其是新增代碼的覆蓋情況。

  覆蓋率可視化。在星雲精準測試中,用戶在選擇分析的覆蓋率維度後,系統就會將被測試程序的相關結構展示出來,並且用顏色表達覆蓋情況:綠色代表覆蓋,深藍色代表未覆蓋。同時告知覆蓋率的分子和分母都是哪些,非常清晰的展示覆蓋率可視化結果。

  相關覆蓋率。可將某個功能用例所觸及的函數範圍中,所有代碼分支作爲覆蓋率的分母,真正運行到的分支作爲分子,這樣取得的相關覆蓋率非常具有實際指導意義。使用者在有權限的情況下,隨時可以看到:因此即使測試的是一個小功能範圍的用例集,其覆蓋結果也可以近似等價爲這個功能範圍相關代碼的覆蓋率情況,亦可以用於分析某個功能範圍的測試是否充分。

  2、迴歸測試用例的推薦和選取:

  對於測試效率的提升,一般會提到狹義的自動化測試,這也是行業內通常解決迴歸測試的辦法。它是一種應對全局迴歸的方法,在無法有效確定迴歸範圍的情況下,就通過技術手段全量回歸以確保系統的修改沒有引入新的問題。真正實施過全量自動化迴歸的團隊,會對此項工作的難度和成本深有體會。

  星雲精準測試迴歸用例自動選取是屬於一種機器智能計算下安全的局部迴歸。它根據歷史測試用例執行的路徑信息以及新版本的代碼變更信息,自動推薦和選取回歸測試用例集,並給出迴歸優先級和影響度。用戶在測試人力有限的條件下,可以根據算法給出的優先級安排測試執行,以最有效的方法發現代碼調整引入的缺陷。這種基於海量的程序運行路徑計算的數據,精確而完整,不會因團隊工作狀態問題,而出現大量遺漏的現象。

五、小結

  精準測試將大幅度提升測試數據的價值,也將產出大量對研發極有意義的分析數據。它必將推動軟件行業的數字化改革,爲傳統金融業務及金融創新(Fintech),提供更智能、有效的軟件高端質量保障思路與方法。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章