金融行業自動化測試解決方案

前言:尋找寫作靈感?中文期刊網用心挑選的金融行業自動化測試解決方案,希望能為您的閱讀和創作帶來靈感,歡迎大家閱讀并分享。

金融行業自動化測試解決方案

1引言

云計算、大數據以及移動支付等新一代互聯網技術的革新,推動金融行業衍生出更多業務模式,推出更多產品和服務。然而隨著產品線的拉長,周期的縮短,投產變更風險隨之增大,對研發測試質量也提出了更高的要求。自動化測試是一種讓計算機代替手工的測試方法,通過自動化技術手段模擬人工完成測試案例的執行工作,通過完成大量可重復性、相對穩定的測試案例執行工作,將大量的人力從枯燥的測試執行工作中釋放出來,節省測試工作周期。自動化測試技術可以高效檢測出系統缺陷,明顯降低銀行IT系統的測試成本,縮短系統周期,但也存在初期投入大,維護成本高等問題。如何結合手工測試并充分發揮自動化測試的作用?如何將自動化測試技術應用到金融行業的核心系統測試?本文進行理論和實踐的探索。

2解決方案概覽

根據我們在測試實踐中的經驗總結,自動化測試需要考慮測試項目管理、測試要素管理、測試執行的動態均衡調度等多個關鍵問題。圖1展示了自動化測試解決方案示意圖。

2.1測試項目管理

我們經常遇到多個系統的集中變更,因此經常需要同時開展多個測試項目,而多項目的并發進行容易造成測試資源管理的混亂,延長了系統周期,提高了測試成本。測試項目管理負責對多個并發進行的測試所使用到的流程、工具、方法和資源進行規劃和監控,按項目生命周期組成的整體統一管理流程,能夠有效減少由于測試項目數量增大造成的混亂狀況,幫助組織機構掌控測試的開展,了解測試進度、合理安排測試階段,使得測試項目有序進行。

2.2測試要素管理

不同的測試項目可能同時需要使用測試資源,因而需要跨項目的測試要素管理,實現合理分配資源、控制風險。測試要素管理用于管理測試工作各個環節的參與要素,包括測試需求、測試案例、測試數據、測試環境信息及測試版本管理等,能夠做到統一管理,保障測試流程高效運轉,測試執行全面監控。測試要素管理是支持自動化測試實施的核心。自動化測試需要對測試執行全過程的所有參與要素進行細粒度的控制,用來支持測試啟動,測試過程和結果記錄等眾多自動化步驟的實現。為了提高自動化測試能力,測試要素管理模塊需要對多種測試要素數據存儲和管理進行優化,從而能夠支持對大規模測試的功能和性能要求。

2.3測試執行動態調度

自動化測試的關鍵環節是測試執行的高效率實現。對于復雜的金融系統,數量龐大的測試案例對測試管理和測試執行效率帶來了雙重挑戰??梢圆捎脺y試案例的分級管理,按照是否并發運行分類,也可以根據測試需求的實際需要構建不同的測試場景,可以有效降低管理復雜度。同時,通過部署在執行機(移動設備)上的微,調度端可及時掌握該執行機(移動設備)的軟硬件資源配置情況、自動化任務執行情況等。測試執行機資源不再與單個測試項目綁定,實現執行機資源按需動態分配,測試執行機(移動設備)可以被多個項目使用,實現資源復用,最大限度提高測試執行效率。

3成功案例

浦發銀行云測試管理平臺是按照上述方案搭建的自動化測試工作平臺,通過提高自動化測試水平、對接測試資源池和集成行業測試工具,實現了并發測試任務與測試資源的自動匹配、調度和管理,支持接口類、字符終端類、GUI界面類、Web頁面類和移動應用類等多種類型的自動化測試,為用戶提供了按需響應的測試服務。

3.1系統組成

3.1.1測試項目與要素管理模塊

測試項目管理模塊支持測試項目統一流程管理,為管理層提供測試項目進度視圖。測試項目管理模塊包含五個核心功能包括:項目管理,計劃管理,度量分析,資源管理和監控等。測試項目管理模塊覆蓋功能、技術類測試等全部測試類型。測試要素管理模塊能夠全面管理各個測試項目全生命周期的各類測試資源,包括測試需求、測試案例、測試數據、測試缺陷和測試結果等測試要素,從而為質量測試全面監控提供細粒度的管理支持。圖2是測試要素管理模塊的示意圖。

3.1.2測試動態調度執行模塊

測試動態調度執行模塊包括分發主控服務器和自動化測試執行客戶端。自動化測試分發主控服務器負責接收測試計劃執行請求,按照測試計劃提供的配置,打包分發各個測試場景中的業務流,并接收自動化測試執行客戶端返回的執行結果信息。同時,提供一系列的API,供其它系統監控執行情況和獲取執行結果數據。分發主控服務器支持多任務并發下的測試申請,自動匹配執行機(移動設備)資源池中可用資源。分發調度主要遵循以下原則:“按優先級匹配原則(缺省為先到先服務);最小屬性集優先匹配原則,先滿足先執行”。動態調度支持執行機資源分配動態伸縮,主要包括“資源充足時貪婪分配算法和資源緊張時均衡收縮算法”。負載均衡調度機制支持測試案例執行的進度監控。對于緊急發生的測試需求,平臺支持人工干預,對測試任務進行必要調整。圖3是動態均衡調度機制示意圖。

3.1.3自動化控件管理模塊

基于原子控件的自動化案例設計模式通過對用戶操作行為的分析,將被測系統中的用戶控件進行原子化操作分類,例如文本輸入、點擊(按鈕、鏈接)、選擇(單選、多選)、滑動等,以實現對被測系統中原子化操作的定向驅動。同時支持基于原子控件的二次封裝,以更好的適應項目的具體需要。例如網銀系統自動化測試案例準備時,既可以直接使用原子控件WebClick,也可以使用二次封裝后的UIAPEBLogin控件。用戶使用構建好的自動化原子控件庫即可完成案例的組裝,此模式可有效支持同應用類型不同業務系統的自動化驅動,更好的復用自動化封裝的控件庫資產,最大化的降低自動化封裝工程師的代碼封裝工作,并且專注于具體業務系統中的非標準、安全類、外設類等控件的自動化封裝處理工作上。

3.1.4測試數據管理模塊

針對金融行業IT系統的海量數據和數據安全性特征,平臺支持對多項目跨系統的共享測試數據進行統一管理,最大限度復用測試數據,縮短測試數據的準備周期。為提高測試數據的使用效率,從測試案例執行前的靜態配置擴展到執行時進行動態配置,提高測試數據執行時的使用效率。將共享數據(如柜員、憑證等)的分配放在執行時,通過案例編寫時的配置,測試案例在執行時再去查詢共享數據并加鎖使用,使用完成后再解鎖。這樣保障了共享測試數據的使用效率,同時也節省了數據準備成本。

3.2自動化測試方案特點

(1)適用范圍廣泛。適用于接口類、字符終端類、GUI界面類、Web頁面類和移動應用類等多種系統的自動化測試。(2)自動化程度高。支持無人值守,具有執行過程自動記錄,錄像回放等功能,并支持對失效點的定位顯示,加快缺陷定位和修復進程。(3)性能出色。支持上萬數量級的并發測試案例執行,得益于其并發測試執行的動態均衡調度機制。高效的并發測試執行調度,能夠最大限度發揮資源利用率。(4)低成本。通過對金融行業的常用功能建立自動化測試原子控件,支持對原子控件的二次封裝,實現用戶自定義的自動化測試,減少對測試人員的編程能力要求,進一步降低了測試成本。(5)擴展性好。易于和第三方測試工具集成。平臺提供開放的API接口,方便第三方工具集成,例如,可快速集成JIRA,SELENIUM等,從而有效整合測試資源。

3.3效果分析

以核心產品化系統投產驗證測試為例,單個變更需要回歸執行的測試案例數約為6000個。變更的周期平均為2周,包括審批變更計劃,編譯部署,測試,修復,復測以及上線多個階段,其中可用于測試的時間窗為在3個工作日內。按一個工作日8小時計算,手工測試人員在3天可以完成500個回歸測試案例的執行,完成6000個案例的測試執行需要配置12人完成。采用自動化測試方案后,可以24小時無人值守連續運行,完成單個測試案例的統計平均執行時間為0.5分鐘,一次執行平均執行時間約為2小時。在測試規模較小時,手工測試和自動化測試在時間消耗上差別不大。假定測試人員工作效率恒定,隨著測試規模增大,在測試時間窗內所需要的測試人員數量急劇增加,此時的應對策略是潮汐式的增加測試人員或者對測試范圍進行剪裁。如果采用自動化測試,則可以通過添加執行機方式實現并發測試能力擴展,自動獲得對超大測試案例集的測試能力。

3.4與手工測試的對比

我們知道,自動化測試的準備工作包括測試案例(腳本)的編寫,測試數據的準備等環節,首次測試時成本較高,在自動化案例維護成本可控的情況下,其收益與迭代執行次數成正比,自動化測試帶來的收益計算公式為:迭代執行次數*(手工執行成本-案例維護成本)-首次自動化測試準備成本。自動化測試和手工測試的成本曲線對比參見圖4。雖然自動化測試在效益和效率上可帶來一定程度的提升,但自動化測試并不能取代手工測試,除了首次自動化的準備工作外,我們仍需要人工進行測試結果的分析確認,測試過程中異常排查以及業務變更引發的自動化案例維護等工作。表1中從不同緯度對兩者進行了對比。在開展應用系統自動化測試時,可結合上表和自動化測試收益計算公式進行判斷。根據我們的經驗,具有以下特點的系統適合做自動化測試:(1)系統生命周期長,變更頻率較高;(2)系統重要性與出錯代價高,往往直接面向外部客戶的系統;(3)系統功能點多,回歸測試執行工作量大;(4)軟件前端界面、接口相對穩定。對于大部分的金融應用系統來說,使用自動化測試確實能夠對金融IT系統的變更進行全面的回歸測試,保障開門交易等重點交易不受變更的影響,從而有力保障金融業務系統的穩定可靠運行。

4小結

目前金融行業中在倡導DevOps理念,提倡加強開發、測試、運維團隊之間的協作,以適應越來越快的軟件頻率,這就必然要求提高軟件開發、測試、投產全過程中各環節的自動化水平。我們認為自動化測試是手工測試的有益補充,在實際工作中也常常需要把自動化測試和手工測試結合起來才能達到最佳的收益,從而更快更好地滿足金融行業對IT系統高可靠性的需要。

參考文獻

[1]陳洪震.淺析我國金融電子化的發展現狀及其風險防范[J].科技經濟導刊,2016.

[2]闞青.對軟件測試過程中的質量管理及風險應對分析[J].電子技術與軟件工程,2019.

[3]齊海燕,黃少敏.自動化回歸測試在軟件產品項目中的應用[J].工業控制計算機,2018.

作者:張明禮 單位:上海浦東發展銀行

亚洲精品一二三区-久久