天天看點

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

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

一、傳統測試的局限

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

二、精準測試概念的提出

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

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

三、 精準測試的關鍵技術

1. 精準測試的核心技術

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

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

  由于優秀的核心設計,星雲精準測試可以輕松應用在數億行的超大型複雜應用上,在建立測試用例、代碼、子產品之間精準可視追溯機制的同時,瞬間可将海量資料實時采集并存儲起來,用于後續測試大資料的分析和運算上。整體過程對原有系統性能,不産生幹擾。

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

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

3. 精準可信的測試資料記錄過程

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

四、精準測試的應用實踐

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

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

  測試覆寫率是測試界公認的測試結項可用量化名額。在靈活疊代場景下,由于新版本快速釋出,代碼變更頻繁,本應在一個版本上分析的覆寫資料,分布到了數個代碼結構不一樣的程式版本上,是以傳統白盒覆寫率的統計方法和參考意義基本上都失效了。星雲精準測試通過軟體示波器在系統測試階段取采集多種代碼覆寫率(最高支援航天航空标準MC/DC的100%覆寫率要求),提供實時覆寫率增長趨勢圖及各類分析報表,管理者可清晰的觀察整個測試進度情況、效率等。

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

  增量覆寫率分析。版本釋出後,精準測試可以對增量代碼覆寫專門有一個統計次元,這樣也是對于覆寫率目标的一種工業應用新思路,不用去關注總體覆寫,而在疊代中關注調整代碼的覆寫,尤其是新增代碼的覆寫情況。

  覆寫率可視化。在星雲精準測試中,使用者在選擇分析的覆寫率次元後,系統就會将被測試程式的相關結構展示出來,并且用顔色表達覆寫情況:綠色代表覆寫,深藍色代表未覆寫。同時告知覆寫率的分子和分母都是哪些,非常清晰的展示覆寫率可視化結果。

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

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

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

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

五、小結

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

繼續閱讀