當(dāng)前,隨著證券行業(yè)數(shù)字化轉(zhuǎn)型的推進(jìn),作為金融科技研發(fā)團(tuán)隊(duì)為更好的賦能業(yè)務(wù)部門也在不斷轉(zhuǎn)型,一方面是研發(fā)資源從瀑布模式到敏捷迭代的轉(zhuǎn)型,高效推進(jìn)研發(fā)工作的快速交付,另一方面是系統(tǒng)架構(gòu)從傳統(tǒng)單體架構(gòu)向云原生架構(gòu)轉(zhuǎn)型,圍繞微服務(wù)、容器、DevOps和持續(xù)交付構(gòu)建整個研發(fā)體系的云原生能力。在轉(zhuǎn)型過程中,中泰證券科技研發(fā)部在Devops思想的指導(dǎo)下完成DevOps效能平臺的自主研發(fā)和成熟運(yùn)行,具備持續(xù)集成持續(xù)交付(CI/CD)能力,而持續(xù)測試(CT)在DevOps流水線中是不可或缺的一環(huán),如何高效保障產(chǎn)品質(zhì)量,建設(shè)有效的質(zhì)量保障體系是測試團(tuán)隊(duì)面臨的一個挑戰(zhàn)。
通過對質(zhì)量體系建設(shè)的深入探索和研究,從流程規(guī)范建立與質(zhì)量保障執(zhí)行方面做了落地實(shí)踐。流程規(guī)范上建立質(zhì)量門禁提升產(chǎn)品準(zhǔn)入準(zhǔn)出標(biāo)準(zhǔn),質(zhì)量保障執(zhí)行上根據(jù)測試金字塔模型分層開展自動化測試。UI層實(shí)現(xiàn)基于Appium的自動化測試;接口層基于DRF(Django REST framework)框架和對HttpRunner、Jmeter等開源工具的集成,實(shí)現(xiàn)接口的功能測試自動化與性能測試自動化;單元層集成靜態(tài)代碼掃描與安全測試。實(shí)踐結(jié)果表明,質(zhì)量保障體系的建設(shè)規(guī)范了研發(fā)過程,提升了交付效率,節(jié)省了研發(fā)成本,改善了交付質(zhì)量。
背景及意義
2021年10月在北京金融街論壇上證監(jiān)會科技監(jiān)管局組織相關(guān)單位編制的《證券期貨業(yè)科技發(fā)展“十四五”規(guī)劃》正式發(fā)布,內(nèi)容中重點(diǎn)強(qiáng)調(diào)了緊扣“推進(jìn)行業(yè)數(shù)字化轉(zhuǎn)型發(fā)展”與“數(shù)據(jù)讓監(jiān)管更加智慧”兩大主題。當(dāng)前無論是證券企業(yè)內(nèi)部的需要還是監(jiān)管的要求,證券行業(yè)的數(shù)字化轉(zhuǎn)型的要求已經(jīng)被提到了前所未有的高度。中泰證券也不例外,2015年中泰證券成立網(wǎng)金及金融科技研發(fā)團(tuán)隊(duì)圍繞齊富通APP進(jìn)行自主研發(fā),通過金融科技的能力為經(jīng)紀(jì)業(yè)務(wù)發(fā)展提供核心競爭力,到目前為止除了服務(wù)客戶的齊富通APP,還有面向客戶的融易匯PC、賦能員工展業(yè)的掌易通APP、綜金零售CRM、機(jī)構(gòu)CRM以及集中運(yùn)營平臺等。然而,隨著通道業(yè)務(wù)傭金不斷下滑以及互聯(lián)紅利的減退,傳統(tǒng)的經(jīng)紀(jì)業(yè)務(wù)遇到了瓶頸并開始向財(cái)富管理業(yè)務(wù)轉(zhuǎn)型,各家券商聚焦財(cái)富管理業(yè)務(wù)為客戶提供線上和線下相關(guān)的服務(wù)。 作為金融科技團(tuán)隊(duì)為助力財(cái)富管理數(shù)字化轉(zhuǎn)型并形成護(hù)城河構(gòu)建核心業(yè)務(wù)競爭力,同樣需要進(jìn)行金融科技團(tuán)隊(duì)內(nèi)部的轉(zhuǎn)型。首先是改變資源的組織形式,利用精益敏捷的思想去推動金融科技團(tuán)隊(duì)的轉(zhuǎn)型,通過敏捷小組的方式高效推進(jìn)各項(xiàng)業(yè)務(wù)研發(fā)工作的快速交付,使用北極星指標(biāo)和OKR工具去對齊目標(biāo)的達(dá)成。然后是調(diào)整系統(tǒng)的技術(shù)架構(gòu),從傳統(tǒng)的架構(gòu)逐步向云原生架構(gòu)的轉(zhuǎn)型升級,圍繞微服務(wù)、容器、DevOps和持續(xù)交付構(gòu)建整個研發(fā)體系的云原生能力。
云原生架構(gòu)
然而,當(dāng)研發(fā)資源的調(diào)整從瀑布模式到敏捷迭代,將傳統(tǒng)的單體架構(gòu)逐步升級和改造為云原生架構(gòu)的過程中,產(chǎn)品的質(zhì)量保障方面出現(xiàn)了一些挑戰(zhàn)和危機(jī):
(1)迭代周期加快,測試時間不足;
(2)線上故障增多,交付質(zhì)量下降;
(3)測試環(huán)境管理維護(hù)成本高,且無法滿足需要;
(4)測試人員壓力較大,測試團(tuán)隊(duì)不穩(wěn)定。
因此,面對云原生轉(zhuǎn)型過程中的挑戰(zhàn),構(gòu)建一套完善的質(zhì)量保障體系變得至關(guān)重要。
質(zhì)量保障從體系規(guī)劃到能力建設(shè)
質(zhì)量保障體系結(jié)合證券行業(yè)安全、合規(guī)等需求特性,打破大家對質(zhì)量保障是測試團(tuán)隊(duì)事情的錯誤認(rèn)知,建立起全員質(zhì)量文化意識,推動開發(fā)、測試、運(yùn)維等不同角色人員共同對質(zhì)量保障負(fù)責(zé)。通過規(guī)范測試流程、定義質(zhì)量標(biāo)準(zhǔn)、線下質(zhì)量與線上質(zhì)量相結(jié)合的方式,全方位來保障產(chǎn)品的質(zhì)量。
質(zhì)量保障體系規(guī)劃
01
流程規(guī)范
依托Devops指導(dǎo)思想,建立Devops全流程能力體系跟蹤產(chǎn)品的需求、開發(fā)、測試、發(fā)布全生命周期流程狀態(tài),實(shí)現(xiàn)持續(xù)集成與持續(xù)交付能力提升交付效率,具體如下圖所示。
Devops全流程能力規(guī)劃
基于Devops全流程建立開發(fā)提測門禁機(jī)制,產(chǎn)品發(fā)布上線前制定常規(guī)功能發(fā)布和緊急功能發(fā)布流程,如下圖,不同發(fā)布流程會經(jīng)過不同角色人員的審批確認(rèn),如產(chǎn)品經(jīng)理、技術(shù)合規(guī)風(fēng)控人員、安全人員、運(yùn)維執(zhí)行與復(fù)核人員、業(yè)務(wù)驗(yàn)收人員等,產(chǎn)品發(fā)布層層把關(guān),所有流程線上留痕。
功能發(fā)布
02
線下質(zhì)量
線下測試環(huán)境基于k8s實(shí)現(xiàn)容器化應(yīng)用程序的編排管理,支持一鍵部署。測試策略上依據(jù)測試金字塔模型分層開展功能測試或自動化測試工作來構(gòu)建測試濾網(wǎng)。
測試金字塔
測試金字塔中的界面層測試除了進(jìn)行常規(guī)的業(yè)務(wù)功能測試、兼容性測試外,重點(diǎn)推進(jìn)APP端的UI自動化測試,通過UI自動化平臺,快速實(shí)現(xiàn)自動化腳本的錄制管理、多機(jī)執(zhí)行任務(wù)調(diào)度、執(zhí)行過程監(jiān)控與測試報(bào)告生成分析等功能。接口層測試基于接口的設(shè)計(jì)-研發(fā)-管理-測試-發(fā)布-監(jiān)控-下線全生命周期管理的思想建立接口自動化平臺,支持接口對應(yīng)的項(xiàng)目管理、環(huán)境管理、用例與套件管理、報(bào)告管理等功能,且接口自動化已無縫銜接到CI/CD流水線中具備持續(xù)測試的能力。接口的性能測試在接口自動化測試平臺基礎(chǔ)上做了功能擴(kuò)展,集成開源的JMeter工具,支持集群式發(fā)壓,具備性能測試場景管理、定時任務(wù)設(shè)置、壓力機(jī)狀態(tài)管理、性能監(jiān)控及報(bào)告分析和管理等功能。單元測試主要由開發(fā)人員執(zhí)行,測試人員主要根據(jù)gitlab diff做版本之間的差異化測試。
03
線下質(zhì)量
建立線上質(zhì)量保障機(jī)制,通過線上質(zhì)量實(shí)時監(jiān)控、風(fēng)險(xiǎn)分析、盤前巡檢、線上問題定位、跟蹤、復(fù)盤等方式推進(jìn)測試右移。
線上服務(wù)質(zhì)量監(jiān)控
04
質(zhì)量度量
質(zhì)量保障需要研發(fā)、測試和運(yùn)維共同來保障,對于不同角色人員設(shè)定不同的質(zhì)量度量指標(biāo)。研發(fā)指標(biāo):提測BUG率;測試指標(biāo):生產(chǎn)BUG逃逸率;運(yùn)維指標(biāo):各類型故障數(shù)量、比例、時長。
質(zhì)量度量指標(biāo)
質(zhì)量保障體系中關(guān)鍵技術(shù)介紹
01
UI自動化平臺
UI自動化平臺架構(gòu)
UI層自動化測試平臺,面向金融行業(yè)高安全性、高性能和高可靠性的要求,支持私有云模式的落地實(shí)施。平臺整體架構(gòu)采用微服務(wù)集群框架,底層對Appium開源測試工具進(jìn)行封裝,服務(wù)端主要分為交互平臺、執(zhí)行引擎、接入平臺三部分,各個部分均可以橫向擴(kuò)展,整體架構(gòu)高效穩(wěn)定可靠;例如測試人員和開發(fā)人員使用人數(shù)多的話可以將交互平臺服務(wù)增加,若測試手機(jī)數(shù)量大的話可以增加部署接入平臺的tools服務(wù),若系統(tǒng)調(diào)度運(yùn)行慢的話可以增加執(zhí)行引擎服務(wù)器數(shù)量。
02
接口自動化平臺
接口自動化測試平臺整體架構(gòu)采用Python+DRF+HttpRunner+Vue實(shí)現(xiàn),測試平臺的主要實(shí)現(xiàn)架構(gòu)見下圖。
接口自動化平臺架構(gòu)
前端UI層:提供便捷可視化的平臺操作環(huán)境。Nginx代理轉(zhuǎn)發(fā)動態(tài)請求到uWSGI服務(wù)器,再通過wsgi協(xié)議與Django進(jìn)行通信。Django+uWSGI解決了Django原生啟動方式runserver無法支持高并發(fā)的問題。執(zhí)行層:為接口自動化提供多種調(diào)用方式,如jenkins、devops蜂鳥效能平臺、日?;貧w、業(yè)務(wù)監(jiān)控調(diào)用等。 測試用例與配置層:提供接口測試用例的定義、配置及用例的執(zhí)行功能,集成HR測試框架。公共函數(shù)層:實(shí)現(xiàn)了接口自動化測試平臺一整套的核心功能,如數(shù)據(jù)庫讀寫、平臺認(rèn)證授權(quán)、發(fā)送郵件和調(diào)用測試執(zhí)行器等。該層依靠Django REST framework及Django的ORM操作,通過編寫相應(yīng)的視圖類、路由匹配規(guī)則產(chǎn)生出API,實(shí)現(xiàn)了上述前后端的交互及后端各個組件之間的調(diào)用。數(shù)據(jù)管理層:使用Mysql數(shù)據(jù)庫主要負(fù)責(zé)自動化平臺的執(zhí)行日志、用例數(shù)據(jù)、測試報(bào)告、統(tǒng)計(jì)報(bào)表的存取。
03
性能自動化平臺
性能測試平臺架構(gòu)設(shè)計(jì)與接口自動化測試平臺共用,壓測工具:平臺集成廣泛應(yīng)用的JMeter壓測工具,非GUI模式執(zhí)行。Channels:提供實(shí)時查看壓測運(yùn)行日志的功能,實(shí)現(xiàn)websocket消息實(shí)時通訊。Celery:實(shí)現(xiàn)django異步任務(wù)處理功能。Redis:一方面是作為Celery異步任務(wù)處理的消息中間件,另一方面是作為channels的channel layer,實(shí)現(xiàn)消息的傳輸功能。文件存儲:主要保存性能測試腳本、測試參數(shù)文件和測試報(bào)告等。
04
關(guān)鍵功能截圖
質(zhì)量保障體系的建設(shè)在落地實(shí)踐中取得了較好的成果,具體關(guān)鍵截圖如下所示。
關(guān)鍵截圖一:提測及發(fā)布流程
提測及發(fā)布流程圖
該圖為一個完整研發(fā)提測與功能發(fā)布流程圖,各職能化角色都有參與到該流程中,開發(fā)人員提測、測試人員執(zhí)行測試、技術(shù)經(jīng)理確認(rèn)上線發(fā)布、產(chǎn)品經(jīng)理發(fā)布前驗(yàn)收、產(chǎn)品及技術(shù)負(fù)責(zé)人確認(rèn)上線、合規(guī)確認(rèn)發(fā)布流程、運(yùn)維人員A執(zhí)行發(fā)布、運(yùn)維人員B復(fù)核發(fā)布、業(yè)務(wù)部門生產(chǎn)驗(yàn)收。 關(guān)鍵截圖二:UI自動化測試多機(jī)執(zhí)行
UI自動化
該圖為UI自動化支持多臺手機(jī)并行執(zhí)行測試任務(wù),不同機(jī)器間的測試用例互不干擾,解決測試用例較多情況下測試執(zhí)行較慢的問題。 關(guān)鍵截圖三:接口自動化平臺
接口自動化平臺
該圖主要展示了接口自動化測試平臺的相關(guān)數(shù)據(jù),項(xiàng)目數(shù)、接口數(shù)、用例數(shù)、用例執(zhí)行成功率等數(shù)據(jù)一目了然。 關(guān)鍵截圖四:性能測試平臺
性能測試平臺
該圖為性能測試平臺首頁,展示最新測試場景、最新測試報(bào)告、壓力機(jī)信息、當(dāng)前運(yùn)行中的任務(wù)四塊內(nèi)容。 關(guān)鍵截圖五:各階段安全測試
安全測試
該圖從編碼、構(gòu)建到測試的各階段,通過靜態(tài)代碼掃描、軟件成分分析、動態(tài)應(yīng)用安全測試、交互式應(yīng)用安全測試方法建立安全測試工具鏈。 關(guān)鍵截圖六:線上質(zhì)量監(jiān)控看板
線上監(jiān)控
該圖為線上質(zhì)量看板,實(shí)時監(jiān)控產(chǎn)品的線上質(zhì)量狀態(tài),當(dāng)有問題發(fā)生可觸發(fā)實(shí)時告警。
總結(jié)
云原生體系下的質(zhì)量保障建設(shè)帶來的價值如下:
1. 規(guī)范研發(fā)過程,實(shí)現(xiàn)合規(guī)、安全、可控
根據(jù)證券期貨行業(yè)相關(guān)信息技術(shù)管理辦法,規(guī)范了提測質(zhì)量門禁和上線質(zhì)量門禁實(shí)現(xiàn)了各環(huán)節(jié)操作的安全可控及合規(guī)。
2. 提升交付效率,縮短交付時間質(zhì)量左移縮短開發(fā)人員完成功能代碼編寫到生產(chǎn)發(fā)布過程中的時間消耗,提升研發(fā)交付效率??s短了開發(fā)時間周期,通過靜態(tài)代碼掃描可以在10~20分鐘內(nèi)實(shí)現(xiàn)對一個應(yīng)用系統(tǒng)的代碼檢查,提升了開發(fā)人員CodeReview的效率。每個迭代的時間縮短0.5~1天??s短了測試時間周期,接口和UI全功能回歸測試從2~3天人工測試降低到自動化測試6~8小時。性能測試實(shí)現(xiàn)實(shí)時性能監(jiān)控,無需登錄每臺服務(wù)器查看性能,測試報(bào)告統(tǒng)一化、可視化,平均每個場景縮短30分鐘左右。 DevSecOps的實(shí)施將安全測試工具鏈集成到流水線,使安全嵌入無縫銜接到CI、CD,其中DAST,從3到5天人工進(jìn)行,到目前的自助式服務(wù)30分鐘,減少了等待3到5天;IAST通過插樁方式在做自動化及回歸的過程中無感的進(jìn)行安全測試,無額外的安全測試開銷。 3. 減少了人力資源投入,節(jié)省了研發(fā)成本 在測試能力提升方面,為保障核心業(yè)務(wù)的上線質(zhì)量,通過加強(qiáng)了自動化測試能力建設(shè),通過自動化測試大大減少了人力資源投入。2022年自動化測試?yán)塾?jì)節(jié)省17人年。2022年至今UI回歸次數(shù)安卓和iOS共回歸52次,每次執(zhí)行用例2500+,按照每人每天可執(zhí)行55條計(jì)算,共節(jié)省約9人年;接口自動化回歸454次,81989條用例,按每人每天40接口計(jì)算,共節(jié)省約8人年。 4. 提升交付質(zhì)量,減少線上故障安全左移,可以發(fā)現(xiàn)98%以上的安全漏洞,大大降低了線上的解決安全漏洞的成本及安全風(fēng)險(xiǎn)。保障核心業(yè)務(wù)的上線質(zhì)量,自動化測試用例覆蓋核心業(yè)務(wù)用例80%以上,核心業(yè)務(wù)主要為集中交易、兩融、期權(quán)、理財(cái)、條件單、銀證轉(zhuǎn)等核心業(yè)務(wù),自動化測試回歸后無線上問題反饋。
審核編輯:郭婷
-
自動化
+關(guān)注
關(guān)注
29文章
5758瀏覽量
82655 -
數(shù)字化
+關(guān)注
關(guān)注
8文章
9415瀏覽量
63249
原文標(biāo)題:重磅:云原生架構(gòu)下的質(zhì)量保障體系建設(shè)
文章出處:【微信號:軟件質(zhì)量報(bào)道,微信公眾號:軟件質(zhì)量報(bào)道】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
云原生環(huán)境里Nginx的故障排查思路

RFID 部隊(duì)倉儲信息化手段建設(shè):提升后勤保障效能的戰(zhàn)略舉措

云原生在汽車行業(yè)的優(yōu)勢
云原生AI服務(wù)怎么樣
云原生LLMOps平臺作用
如何選擇云原生機(jī)器學(xué)習(xí)平臺
構(gòu)建云原生機(jī)器學(xué)習(xí)平臺流程
什么是云原生MLOps平臺
k8s微服務(wù)架構(gòu)就是云原生嗎?兩者是什么關(guān)系
【質(zhì)量視角】可觀測性背景下的質(zhì)量保障思路

云原生和非云原生哪個好?六大區(qū)別詳細(xì)對比
基于Arm架構(gòu)的Azure虛擬機(jī)助力云原生應(yīng)用開發(fā)
京東云原生安全產(chǎn)品重磅發(fā)布

從積木式到裝配式云原生安全

基于DPU與SmartNic的云原生SDN解決方案

評論