蚂蚁金服终端实验室演进之路
0. 背景
作為國民級 App,支付寶客戶端需要為億級用戶提供多元化的服務,因此應用的穩定性與可靠性面臨巨大的挑戰,需要不斷地完善和優化。
今天,讓我們站在服務質量的全方位監控與優化的角度,從螞蟻終端實驗室的演進之路展開探討,從借助使用開源的自動化方案,到自研并逐步完善無線實驗集群技術體系,支付寶內部經歷了怎樣的業務場景演練,以及相應的技術架構如何借助移動開發平臺 mPaaS 對外輸出。
1. 發展歷程
總的來說, 螞蟻終端實驗室從誕生到現在,一共經歷過三個階段(工具化、服務化以及中臺化),其每個階段都有特點和意義:
- 工具化階段:
該階段主要以使用市面上主流開源軟件為主,如客戶端開源軟件 Appium, 其覆蓋的端為 Android 和 iOS;通過這種開源工具和 App 測試流程結合的方式,快速滿足業務方的提測需求,從而幫助業務方完成一般意義上的自動化測試工作(如基本的功能測試、兼容性測試等)。
- 服務化階段:
服務化階段存在一個重要的背景:支付寶著手前后端研發流程分離,并逐步沉淀出獨立的 App 端研發流程系統(研發協作流程與 App 構建流程)。在獨立的 App 研發流程和系統的基礎上,終端實驗室以一種服務化的形式支撐 App 的研發和協作, 處理滿足日常用戶自動化工作外,同時還擔當著持續集成、日常發布前自動驗包工作等; 另外在日常發布發布提供質量數據支持,如客戶端代碼覆蓋率統計等。
- 中臺化階段:
伴隨著終端實驗室的能力不斷提升優化以及測試規模的逐步擴大,服務上不僅需要滿足螞蟻金服體系 App(支付寶、口碑、網商銀行等)日常測試需求,而且還需要將能力擴散覆蓋到整個阿里巴巴集團的業務。
隨之而來的是實驗室需要面臨多樣化的業務方需求和定制化功能,如何在多元復雜的業務環境中,與業務方或者說上游系統完成能力共建?帶著這個問題,終端實驗室逐步沉淀并著手建設中臺化平臺:一方面讓通用服務不斷下沉,另一方面抽象出標準 SDK 的方式,讓業務方根據自身業務特點建設特定的能力。
此外,在建設平臺化的同時,終端實驗室貼合支付寶業務場景的發展,構建如網絡實驗室、掃碼實驗室等一系列真實實驗室的能力。
經歷了幾年的不斷發展,終端實驗室逐步完成了中臺化的轉變,其端上覆蓋了 Android、iOS 以及 IoT 設備,服務上覆蓋了通用能力、小程序準入、研發流程建設、真機租用以及用例管控等。
2. 技術生態
在了解完終端實驗室的歷程之后,我們能夠對其提供的服務有一個全面的認識。當我們去總結和分析這些服務時,可以把這些具體能力分為三大塊:平臺服務能力、客戶端SDK 以及 實驗室能力。
- 平臺服務能力
平臺服務能力的目標是聚焦“如何把螞蟻實驗室構建成一個更為開放的平臺”,因此我們需要考慮到如何讓更多的業務方和上游系統一起參與能力共建,從而將平臺的建設思路分為 2 大部分:設備實驗集群和開放SDK。
1. 設備集群
螞蟻實驗室不僅包含數以千計的公用終端設備,覆蓋市面絕大多數手機終端,幫助業務同學完成日常自動化測試工作,而且提供了用戶自建實驗室的方式:用戶只需要根據自身業務場景特性進行設備采購、實驗室部署,便具備在自有平臺上運行自有設備的能力。
從平臺的開放性與部署動態化角度看,目前設備集群能保證設備歸屬和業務場景做到充分隔離,保證各業務在平臺使用上能相互獨立。另外,面對阿里巴巴集團眾多研發中心,設備集群在部署上也支持多地部署、相互隔離。
2. 開放SDK
為了給上游系統和用戶提供更為開放的能力,幫助業務方根據自身需求完成能力建設。終端實驗室提供開放的 SDK 能力:上游系統只需在自己服務上接入 SDK,就能夠完成任務構建鏈路,從用例管理、設備選擇、任務執行,到執行結果回調,在此基礎上用戶就能夠根據自身業務特點將業務數據進行多維度組合,形成自己的能力輸出。
- 客戶端 SDK
終端實驗室經過幾個階段的發展,不僅提供 UI 自動化框架能力,而且在一些復雜場景做了深入研究和落地的工作。在這里我們以令大家頭痛的“App 兼容性驗證”作為切入點,結合目前常用的幾種機器學習方案,分析方案的優缺點,最終形成了終端實驗室的解決方案。
一方面伴隨著移動互聯網的快速發展,目前市面上手機的品牌和型號層出不窮,如何快速準確的驗證 App 的功能在不同類型手機上運行有效性與穩定性,的確是件困難的事情;另一方面,目前針對圖片的機器學習技術日益成熟,其圖識別的準確性也完全能夠滿足日常兼容性的要求。
通常來說兼容性測試會采用兩種方式:1.圖像相似度計算;2. 無監督的異常點聚類。 這兩種方式在使用方式和結果輸出都有其優缺點:
- 對于“圖像相似度計算”來說,其異常圖片的識別成功率非常高,但其前提條件比較苛刻:用戶需要對每一版 App 以及每一個業務點進行圖片搜集和上傳,而往往每條用例可能會包含少則幾張圖片多則十幾張圖片,對于幾百、甚至幾千條測試用例來說,就算是一版 App 的期望圖片搜集工作都是巨大的,何況目前移動互聯網普遍都是快速迭代發布,所以導致了這種預先處理圖片的方式是不太可行的,下圖是一般意義以圖搜圖的數據流:
- 另一種常用的方案是直接將同一業務場景下不同手機的一組截圖交給無監督的異常點聚類算法處理,這種方案的優點比較明顯:對于用戶和平臺來說,沒有增加的額外的工作量,操作簡單,但帶來的問題是,計算出來的結果并不完全可信,特別是在一些極端情況下(如某一類異常圖片總數較多的情況),少數正常的圖片反而會被識別成異常圖片,告知給業務方。
對比以上兩種技術方案,終端實驗室在兼容性異常圖片發現上采用了更加靈活的方案,通過手機端“異常目標檢測”和服務端“異常點聚類”相結合的方式完成目標。
首先,平臺搜集常見異常圖片,并訓練成模型,植入手機端。
其次,當用戶執行兼容性測試的時候,在手機端完成一部分“常見異常圖片”的發現工作。
再次,當任務執行完后,服務端將剩下一部分圖片交給““異常點聚類”處理,并進一步是被不同的圖片。
最后,在整個執行任務結束后,平臺就能有效識別異常圖片,另外當異常圖片未被有效識別的情況下,又可以在平臺上快速提交異常圖片,并交給算法邏輯繼續學習,形成新的模型,從而在下一次任務執行過程中,就能把這種新發現的異常捕獲住。
通過這種靈活的方案,一方面大大提升了異常圖片檢測結果的準確度,另一方面在整個異常圖片的發現上形成了閉環,大大提升的兼容性測試的效能。
- 實驗室能力
為了應對日益復雜的用戶使用環境和不穩定的運行環境,終端實驗室不斷去構建各種專項實驗室,盡可能在實驗室環境里就把問題發現并推動研發流程去解決。同時伴隨著 IoT 時代的到來,面對種類繁多的終端設備,如何能夠通過實驗技術的手段幫助研發同學提升效能,是一個新問題也是一個比較有挑戰的問題:終端實驗室通過托管 IoT 設備的方式,讓用戶快速方便尋找設備,并進行功能驗證。具體技術方案是在原有的 Android/iOS 真機租用方案的基礎上做了能力升級。
第一, 將終端實驗室上某一款手機和 IoT 設備做關聯,保證當瀏覽器通過 WS 遠程操作手機打開攝像頭就能夠看到對應的 IoT 設備;
第二,通過 WS 讀取 IoT 串口的 trace 信息,并將數據以 WS 的形式推送到用戶瀏覽器端;
第三,在宿主機上集成 IoT 設備操作的 SDK,保證宿主機能夠通過命令行或者 HTTP 方式操控 IoT 設備;
第四,宿主機集成語音轉文字 SDK,這樣當 IoT 設備發出聲音時,就能夠在頁面上以文字的方式告訴用例。
通過這種遠程 IoT 租用的方式,用戶就能夠快速做作一臺遠程設備,另外在給 IoT 設備發送指令的同時,可以看到設備的相應信息(視覺展示、聲音展示以及實時日志信息),從而達到快速驗證的目的。
- 機械臂掃碼測試:
- 智能機柜支持真機云測
3. 借助 mPaaS 對外輸出
以上介紹的螞蟻金服終端實驗室相應能力的構建與實踐,目前已經通過移動開發平臺 mPaaS 對外輸出一部分能力。
在 mPaaS 平臺上,我們將自動化測試框架,真機調度管理,場景化測試方案以及詳盡的測試報告方案整合外部客戶的現有業務場景和系統,從而覆蓋 App 開發期的各個階段,確保應用上線前獲取充分測試,發現 bug,減少線上問題,提高整體用戶體驗。
目前,終端實驗室不僅對內服務了包括螞蟻金服體系下的支付寶 App、網商銀行、口碑商家等,同時借助 mPaaS 與大量生態合作伙伴一同共建能力,包括常熟農商行、西安銀行、泰隆銀行等。由于篇幅限制,很多技術要點我們無法一一展開,歡迎大家通過技術文檔或點擊“閱讀原文”進一步了解 mPaaS :https://tech.antfin.com/docs/2/49549
| 活動推薦:MTSC 2019 測試開發大會
MTSC2019 第五屆中國移動互聯網測試開發會將于 6 月 28-29 日在北京國際會議中心舉行,50+ 來自 Google,BAT,TMD 等一線互聯網企業的測試大咖分享精彩議題,涵蓋移動自動化測試、服務端測試、質量保障 QA、高新測試技術(AI+、大數據測試、IoT 測試)等專題。
螞蟻金服多位技術專家將在大會上分享精彩議題,解密螞蟻金服內部移動測試 2.0+ 演進之路、代碼實時染色系統如何完成代碼覆蓋率檢測等,期待與你交流。
原文鏈接
本文為云棲社區原創內容,未經允許不得轉載。
總結
以上是生活随笔為你收集整理的蚂蚁金服终端实验室演进之路的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 从0到千万DAU,这5年闲鱼架构如何演进
- 下一篇: 阿里云PolarDB发布重大更新 支持O