1、眾安銀敏捷研發體系建設Auto QE理念與實踐唐嘉 眾安銀席測試架構師2024.8.17唐嘉龍眾安國際 測試架構師現任眾安銀行首席測試架構師,負責眾安銀行整體測試架構體系建設,同時負責零售銀行促活拉新活動、智能營銷平臺、客戶與運營等業務的整體質量保障工作。曾就職于騰訊FIT金融科技業務線,負責微信支付的跨境收單支付、國際清結算及微信分付信貸管理等業務質量管理工作,同時也對EKYC中臺、風控證件鑒偽、AI量化投資模型等金融領域AI算法應用有獨到見解。曾發表多篇AI模型測試相關專利、并獲得騰訊微創新獎。Mar-20Jun-20Sep-20Dec-20Mar-21Jun-21Sep-21Dec-21
2、Mar-22Jun-22Sep-22Dec-22Mar-23Jun-23Sep-23Dec-23Mar-24About ZAStrengthening of digital finance product suiteJan 22SFC Type 1(Dealing in Securities)license obtainedMar 20Official launch ofMay 20HK Digital Life Insurance license obtainedOfficial launch ofSept 20Insurance Broker license acquired Mar 21
3、Corporate BankinglaunchedAug 22Mutual fund launchedMar 19HK Virtual Bank license obtained300Kusers2019202020212022100Kusers600KusersApr 22Banca partnership&May 21Banca partnership&One-stop digital finance platform2023Feb 22Stock launched780KusersInsuranceTransferLoanCardDepositStockMutual Fund背景-企業數
4、字化轉型敏捷之所以更快,根本原因在于持續迭代和驗證節省了大量不必要的浪費和返工背景-研發流程中常問題部署管理部署管理如何提升研發效能部署頻率高,失敗率高,提交代碼質量差業務敏捷業務敏捷需求過多,高優先級需求快速交付,快速驗證環境管理環境管理環境多復雜性上升,一致性難以保證,交付慢技術債務技術債務系統架構設計受限,潛在的代碼缺陷,違反代碼規范自動化測試自動化測試測試范圍擴大,測試時長有限,穩定性差,投入產出比低內建質量內建質量代碼評審,單元測試,持續集成如何有效實施,提高提測質量背景-眾安國際研效體系建設之旅2020202120222023正式上線搭建線上管理流程體系引入線上管理工具啟動線上度量
5、分析(質效)引入開源研發工具生態搭建自動化測試框架體系啟動自建持續集成流水線項目啟動單測、靜態掃描卡點自研平臺工程1.0落地啟動研發過程度量分析(質效)平臺工程1.0最佳實踐打造自驅式質量管理平臺工程2.0項目啟動線上管理研發過程管理度量可視化工具自動化最佳實踐智能質效診斷錄眾安眾安CICDCICD交付流線架構設計交付流線架構設計流線之Auto QE的理念Auto QE的落地實踐成效與展望持續集成的示意圖teams反饋機制emails小Z小A小平GitLabwebhookCI server集成腳本集成腳本Code MRCode MRCode MR代碼審查&單元測試,編譯源碼&環境部署,動化測試
6、&覆蓋率收集眾安銀CICD系統架構圖morayjirashipCMLgitlabDEVSITSIT02UATAuto QEdeveloperTesterbusinessSre直接調用層CMDBJenkinsMagicxgitlab工具整合層代碼提交單元測試集成測試系統壓測應用層系統測試組件測試代碼編譯鏡像管理VM構建代碼打包應用部署機器管理SSO登錄密鑰分發日志采集系統監控CICD聚合入口PERFsonarJacocofortifygranafa數據采集UnitTestgranafa數據可視化反饋系統單測門禁Auto QE自動化門禁質量門禁sonar門禁Fortify門禁TeamsEmail通
7、知觸達Moray雙流體系架構Dev Cut Release提測Feature分支合并Dev等待KT單測掃描卡點KT通過AutoQE門禁待排期處理中已完成開發冒煙已提測測試冒煙Beta測試出beta報告Gamma測試已出gamma報告Jira工作流工作流Moray工作流工作流Dev階段開發分支構建代碼評審依賴掃描單元測試靜態代碼掃描安全掃描DEV階段Feature分支合并DevDev分支構建Dev環境部署開發自測SIT階段SIT環境部署精準測試手工集成測試缺陷上報提交SIT測試報告UAT階段Tag release分支UAT環境部署Gamma驗收測試驗收缺陷上報提交Gamma報告封板階段鎖定封板鏡
8、像AutoQE階段AutoQE環境增量部署Dev分支AutoQE關聯自動化用例執行AutoQE門禁AutoQE門禁Tag Release進入UAT單測掃描卡點AutoQE門禁圖例:CI卡點AutoQE卡點值檢查錄眾安CICD交付流線架構設計流線之流線之Auto QEAuto QE的理念的理念Auto QE的落地實踐成效與展望持續集成流線全流程治理3、流水線環境配置管理配置和SQL變更,如何自動化部署2、流水線部署方案部署期間如何保證Auto QE自動化用例的穩定性1、流水線平臺工程方案設計代碼分支如何管控,Auto QE環境部署哪個分支4、流水線自動化執行優化流水線整體時間過長,Auto QE
9、自動化執行時間如何縮短5、流水線自動化用例管理隨著開發版本的更新,Auto QE自動化用例版本如何管理持續集成流線平臺程1.01.開發環境開發環境:使用 develop 或者hot-feature 分支部署2.AutoQE環境環境:使用develop 分支,CI 自動部署,并執行自動化測試用例3.SIT環境環境:使用release 分支部署,部署后打sit tag4.UAT環境環境:基于sit tag 部署,部署后打uat tag5.PRD、DR環境環境:基于 uat tag 部署,上線后打生產 tagDEVSITUATPREPRDDRsresrebusinesstesterdeveloper
10、testerAuto QEChaosFeatureMR webhookAuto Testfeature branchrelease(sit/uat)branchdevelop(dev)branchCut yyyymmdd Tag yyyymmdd_v1 AutoQE門禁單測掃描卡點AutoQE門禁持續集成流線平臺程2.0-簡版DEVSITUATPREPRDsresrebusinessdevelopertesterAuto QEFeaturefeature branchrelease(sit/uat)branchdevelop(dev)branchCut yyyymmdd TESTPERFtes
11、terQE deploy Tag yyyymmdd_v1 AutoQE門禁單測掃描卡點持續集成流線平臺程2.0-完整版DEVSITUATPREPRDsresrebusinesstesterAuto QE三周TESTPERFtesterQE deploy Tag yyyymmdd_v1 AutoQE門禁單測掃描卡點Tag yyyymmdd_v1 developHot-featuremaster單周&緊急MergeMergefeaturefeaturecheckoutcheckoutMergecheckoutcheckoutMergeRelease/yyyymmddRelease/yyyymmdd
12、單周&緊急三周resetMergeMergeMergeAutoQE門禁SIT/UATSIT/UATTESTTESTQE deploy Auto trigger手動Merge跨迭代featureAuto QE 部署案1.0:滾動時間窗地鐵:地鐵:準點發車1、緩存集中部署,減少發布單量級2、緩存區所有部署完畢后開始執行自動化,避免環境依賴干擾developerAuto QE部署案2.0:實時觸發,優雅發布developer跑車:跑車:上車即走1、實時觸發部署Auto QE2、K8s健康檢查、優雅終止來實現應用無感切換Auto QE部署案效果:幅縮減CI整體耗時優雅發布耗時優雅發布耗時=CI單測掃描
13、+autoqe自動化時間窗耗時時間窗耗時=CI單測掃描+autoqe自動化+流程等待耗時流線質量禁管理:逐步提升位線各業務線值班跟進 自動化錄jira缺陷單跟進 除生產問題外第一優先級處理 詳細記錄問題原因解決方案劃分四個階段的值自動化通過率:80%-90%-95%-100%A1全量覆蓋率:40%-45%-50%-60%A2全量覆蓋率:20%-25%-30%-40%流線環境穩定性治理1:everything as codedeveloper配置即代碼迭代版本迭代版本:文件夾命名區分環境部署環境部署:文件名后綴區分執行管理執行管理:已部署過后臺打標SQL即代碼迭代版本迭代版本:文件夾命名區分環境
14、部署環境部署:文件夾命名區分執行管理執行管理:已部署過后臺打標developer流線環境穩定性治理2:配置統化管理Apollo webportal serviceAdmin serviceConfig servicedevAdmin serviceConfig servicesitAdmin serviceConfig servicesit02Admin serviceConfig serviceuatAdmin serviceConfig serviceperfAdmin serviceConfig serviceAuto QEbank servicesbank servicesbank s
15、ervicesbank servicesbank servicesbank servicesbank servicesbank servicesbank servicesbank servicesbank servicesbank servicesl 統一入口管理,集中授權l 環境配置對比,平滑同步l 同步編排環境,配置復制流線環境穩定性治理3:配置規范性檢查Apollo配置中心Auto QEFeaturefeature branchrelease(sit/uat)branchdevelop(dev)branchCut yyyymmdd Auto deploy Tag yyyymmdd_v1
16、10:00FeedbackdeveloperJenkins jobDaily InspectionAuto QE 動化管理1:例動化成&版本管理接口協議描述接口日志接口描述UDOC接口默認參數數據擴展用例基礎接口用例測試數據集全場景覆蓋用例自動化生成與自動化生成與手工編寫結合手工編寫結合接口變更感知接口變更感知數據驅動數據驅動版本用例管理版本用例管理master基準用例庫基準用例庫Jira AJira A創建分支Jira B新特性用例編寫集成測試&Auto QE使用Jira B創建分支新特性用例編寫集成測試&Auto QE使用MR主干更新集成測試&Auto QE使用版本 B合入主干版本 A合入
17、主干標準化用例生成標準化用例生成Auto QE 動化管理2:例執耗時優化依賴包安裝優化插件優化異步造數資源鎖解決資源競爭案例解耦并行優化125 min84 min14050100150200分單系統自動化案例優化效果(單系統自動化案例優化效果(1400 cases)優化前插件優化啟用并行風控優化did優化依賴包安裝7 min4 min3 min錄眾安CICD交付流線架構設計流線之Auto QE的理念Auto QEAuto QE的落地最佳實踐的落地最佳實踐成效與展望最佳實踐1:單測&代碼靜態掃描禁最佳實踐2:moray作流提測卡點最佳實踐3:moray部署sit/uat前檢查禁最佳實踐4:流線動
18、化測試質量看板最佳實踐5:流線反饋消息點到點觸達部署成功通知部署成功通知部署失敗通知部署失敗通知自動化門禁通過自動化門禁通過自動化門禁未通過自動化門禁未通過最佳實踐6:流線聯動觸發錄單跟進1、聯調配置誤提交3、持續執行導致OOM2、消息堆積導致性能瓶頸最佳實踐7:全局CI數據聚合看板Auto QE測試自動化覆蓋率面板測試自動化覆蓋率面板單測靜態掃描跟蹤面板單測靜態掃描跟蹤面板應用持續構建面板應用持續構建面板應用構建詳情面板應用構建詳情面板錄眾安CICD交付流線架構設計流線之Auto QE的治理理念Auto QE的落地實踐成效與展望成效與展望眾安國際持續集成平臺程1.0實踐回顧銀行單測、靜態掃描
19、CI卡點開啟持續集成戰役Kickoff啟動立項1.243.1以Ship基座串聯各工具平臺流程3.214.75.305.154.246.19銀行活動域應用試點接入流水線銀行全域應用接入流水線銀行全量開啟A1/A2級別應用CICD質量門禁各流程體驗優化Teams通知閉環Moray部署卡點時間窗20min回收sit/uat手工部署權限Invest試點接入流水線7.10時間窗調整1min全面正式運行持續優化研發體驗持續集成執數據3,550Builds per month11,546Total Number of Autoqe test cases 5.0 minAverage build time p
20、er build140Total Number of Bank Core Application 3minAverage time for Autoqe Deploy2,700Deployments per month10minAverage time for Autoqe Case Execution業務正向提效1、需求吞吐量穩定上升2、生產問題數持續下降3、系統可用性4個91047026115355012015022005010015020025020202021202220232024研發整體提效數據圖研發整體提效數據圖生產故障需求月均吞吐量回顧-研發流程解決案部署管理部署管理提升研發效能優雅發布業務敏捷業務敏捷CICD全鏈路流水線環境管理環境管理X as code技術債務技術債務代碼靜態、安全掃描自動化測試自動化測試用例解耦并行內建質量內建質量CI單元測試質效度量體系建設質效度量體系建設