?實戰(zhàn) – 增服務強管理,構建測試全流程工作平臺
文 / 華夏銀行信息科技部 繆翔宇 荀竑 王志軍
在金融行業(yè)數(shù)字化轉型的背景下,華夏銀行秉承“智慧金融、數(shù)字華夏”的戰(zhàn)略愿景,持續(xù)提升軟件研發(fā)質效。本文圍繞華夏銀行軟件測試領域一體化平臺的建設歷程,從“增服務”和“強管理”兩個角度探索企業(yè)級測試支持類系統(tǒng)的重構之路。
問題與挑戰(zhàn)
華夏銀行在大集中時代就已建設了用于測試支持的相關系統(tǒng)和工具,包括缺陷管理系統(tǒng)、用例管理系統(tǒng)以及輔助回歸測試的自動化測試工具等。近幾年,伴隨華夏銀行企業(yè)級集團化和敏捷研發(fā)體系的建設,既有的測試系統(tǒng)和工具已成為提升開發(fā)質效的短板,主要體現(xiàn)在以下幾個方面。
一方面,由于測試需求、用例以及缺陷分別位于不同的獨立系統(tǒng)內,無法實現(xiàn)有效的互聯(lián)互通,制約對整個測試流程的全局管控。
另一方面,自動化測試工具、代碼版本管理工具以及持續(xù)集成工具分散應用于開發(fā)測試的不同環(huán)節(jié),無法對其進行統(tǒng)一的調度與管理,需求分析、用例設計與評審、缺陷分析等關鍵測試活動也缺乏相應的工具支持。
此外,考慮到“測試左移”與“測試自動化”是提升軟件產品質量、縮短產品上市周期的主要途徑,如何落地“測試左移”、如何實現(xiàn)“最恰當”的測試自動化也是當前銀行測試領域面臨的共同挑戰(zhàn)。
探索與實踐
圍繞上述問題和挑戰(zhàn),華夏銀行自主研發(fā)了集服務能力和管理能力于一體的“測試服務管理平臺”。該平臺的主要功能包括需求管理、用例管理、缺陷管理、執(zhí)行管理、工具管理、評審管理、風險管理、資源管理(含測試數(shù)據(jù)、接口信息、測試知識庫、測試環(huán)境)等,尤其是針對華夏銀行的實際情況,對軟件測試中的需求、用例及缺陷的傳統(tǒng)管理方式進行了重構,對手工測試與自動化測試的驅動模式進行了改造,對測試過程支持工具進行了完善,最終走出了一條適合華夏銀行特色的企業(yè)級軟件測試管理與服務之路。
特色與亮點
1.軟件測試三要素管理
軟件測試的關鍵三要素就是測試需求、用例和缺陷。如圖1所示。
圖1 需求、用例及缺陷管理
首先是對測試需求的管理,該平臺提供測試需求分析工具,輔助測試人員對自動同步過來的項目需求進行分析,創(chuàng)建和維護測試需求,并基于需求變更自動映射標注對應的測試用例及相關缺陷。
其次是對測試用例與缺陷的管理。該平臺中的測試用例管理包括分析、設計、評審、準備數(shù)據(jù)以及執(zhí)行等過程,每個過程都提供了相應的工具及服務。分析過程通過思維導圖、需求分析矩陣等工具完成對測試需求的全面解析;設計過程充分利用歷史資產用例庫,實現(xiàn)資產復用,盡量避免重復造輪子;評審過程通過規(guī)則可配的評審工具完成輔助評審;數(shù)據(jù)準備過程通過智能測試數(shù)據(jù)池(可自動探查消耗性數(shù)據(jù)的剩余比例,實現(xiàn)數(shù)據(jù)的自動補充),實現(xiàn)測試數(shù)據(jù)的智能準備(規(guī)則化獲取數(shù)據(jù),永不失效);執(zhí)行過程可根據(jù)標簽匹配手工執(zhí)行還是自動執(zhí)行,執(zhí)行成功會自動生成測試報告,如果執(zhí)行失敗,自動執(zhí)行的測試用例會自動提交相應的缺陷進入缺陷管理模塊,并同步通知相關干系人,對于手工執(zhí)行的失敗用例,該平臺會輔助測試人員填充必要的缺陷信息,加快測試人員提交缺陷的效率。
2.測試及發(fā)版全流程聯(lián)動管理
傳統(tǒng)的持續(xù)集成生態(tài)包括發(fā)版、編譯構建、部署以及冒煙測試,華夏銀行通過測試服務管理平臺對傳統(tǒng)的持續(xù)集成生態(tài)進行了進一步的完善,將缺陷狀態(tài)的變化融入其中。該平臺中管理的缺陷與源碼管理系統(tǒng)實時聯(lián)動,開發(fā)人員修復完缺陷代碼發(fā)版后,源碼管理系統(tǒng)自動觸發(fā)持續(xù)集成完成編譯構建、制品部署,然后,平臺中的缺陷狀態(tài)會自動修改為待驗證,同時觸發(fā)平臺中的測試任務(手工或自動),完成對缺陷的回歸驗證。
3.測試全流程風險管理
借助該平臺,風險管理將貫穿測試項目的整個過程,支撐測試的左移,如圖2所示。
圖2 雙軌開發(fā)模式
測試項目伴隨開發(fā)項目同步啟動,經歷需求階段、設計段、實現(xiàn)階段、測試階段及上線發(fā)布階段,每個階段都會進行風險的識別、分析、應對和控制。該平臺支持人工與自動兩種風險識別模式,對于進度、質量、流程、審計規(guī)則、評審規(guī)則等可以自動識別的風險,該平臺將通過企業(yè)微信及郵件的形式及時提示相關干系人,對風險提前預警;而對測試人力資源、測試環(huán)境資源等由測試干系人主動發(fā)現(xiàn)的風險,對應的測試經理可以在該平臺內進行登記、跟蹤與升級處理,實現(xiàn)對風險全生命周期的掌控。
4.實現(xiàn)最“恰當?shù)摹弊詣踊?/span>
(1)動態(tài)分層測試的支撐
在軟件測試中,手工測試與自動化測試的占比該如何決策,一直是長期困擾測試業(yè)界的一個問題。結合該平臺的投產應用,我們可以真正實現(xiàn)測試的左移,在需求階段根據(jù)具體項目的實際情況制定后續(xù)各個階段中自動與手工測試的策略,也就是說,在該平臺中手工測試與自動化測試的占比不是一成不變的,是根據(jù)不同項目動態(tài)調整適應的,并且輔以相應的探索測試,如圖3。
圖3 動態(tài)分層測試模式
該平臺通過專家判斷和歷史信息參照等方式確定某個功能點是應該手工測試還是自動化測試,判斷的因子包括使用頻度、是否有金融交易(轉賬、取款、查詢)、歷史缺陷、用戶重要級別、用戶范圍、開發(fā)及測試人員的數(shù)量和技能水平、整個項目的時間限制、成本限制及質量限制等等。同時,每個項目的測試策略都會及時入庫,保持積累與更新,為后續(xù)項目提供參考借鑒。
(2) 在手工測試中注入“自動”基因
理論上,軟件測試主要分為單元、接口、WebUI、移動APP以及桌面應用等幾種形式,每種形式的測試都包括手動測試和自動化測試兩部分。在該平臺中,不僅實現(xiàn)了不同形式測試用例的“歸一化”設計,而且實現(xiàn)了測試用例“執(zhí)行”的同臺驅動。例如,對于B/S架構的應用,不論是手工測試還是自動化測試,測試用例都擁有一致的標準模板,執(zhí)行時,如果是手工測試,測試用例會自動驅動對應的瀏覽器,打開相應頁面,測試人員的后續(xù)操作會被同步記錄在對應的測試用例內,這樣就從技術上杜絕了測試用例與測試截圖不匹配的情況發(fā)生。
另外,銀行軟件項目的特點就是復雜度高,往往一個項目要同時涉及多個子系統(tǒng),如存款、貸款、銀行卡、結算、綜合前置等,因此,其測試報告要匯總統(tǒng)計多個子系統(tǒng)的測試用例、執(zhí)行結果以及缺陷等相關信息,手工編寫過程繁雜且費時。隨著該平臺的上線,測試報告可以依據(jù)標準模板自動生成,大大提高了測試報告編寫的速度與質量。
建設實效
隨著測試服務管理平臺的上線應用,華夏銀行軟件測試服務能力和管理水平都有了大幅提升。
1.強化測試控制手段。通過規(guī)則配置的評審工具對測試用例開展正反例、邊界值、等價類等強制校驗,避免了人工疏漏。
2.提升測試節(jié)點效率。經對比分析,測試執(zhí)行效率提升 20%,用例評審效率提高了 30%,缺陷處理效率提升 30%以上。
3.優(yōu)化報告生成模式。通過該平臺自動生成測試報告功能,將原來小時級手工編制測試報告的方式調整為分鐘級系統(tǒng)自動生成,且報告更客觀準確。
平臺投產半年來,已留存2萬余次測試用例評審記錄,積累了近40萬條測試用例和上萬條測試缺陷,結合測試各環(huán)節(jié)的埋點數(shù)據(jù),為測試過程多維度全方位的動態(tài)分析和風險度量提供了客觀依據(jù)和有效支撐。
未來展望
按照華夏銀行數(shù)字化、集團化轉型發(fā)展的要求,測試服務管理平臺也將從深度和廣度兩方面持續(xù)拓展,從線上化到信息化再到數(shù)字化,從支持具體軟件項目的測試到實現(xiàn)全集團測試資產的整合與管理,并且逐步引進業(yè)界先進的測試模型和分析工具,為智能化軟件測試服務和管理奠定堅實基礎。
版權聲明:本文內容由互聯(lián)網(wǎng)用戶自發(fā)貢獻,該文觀點僅代表作者本人。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。如發(fā)現(xiàn)本站有涉嫌抄襲侵權/違法違規(guī)的內容, 請發(fā)送郵件至 舉報,一經查實,本站將立刻刪除。