天天看點

淘系産業級移動應用智能測試最新方案MonkeyBot公開!測試效能提升3倍以上

作者|居反

淘系産業級移動應用智能測試最新方案MonkeyBot公開!測試效能提升3倍以上

産業級移動應用測試面臨作業系統碎片化人工測試負擔過重、功能複雜場景繁多、自動化測試探索效率低效的問題。淘系技術品質團隊與北京大學講席教授謝濤老師團隊合作,在業界提出了首個基于計算機視覺(和多模态強化學習)的自動化視覺測試架構Monkeybot,解決了周遊測試效率低下,自動測試工具難以跨平台使用的問題,為移動應用測試提供了通用高效的解決方案。并于21年9月底在QECon全球軟體品質效能大會上對行業公開了這一技術方案。随後,在10月份雲栖大會上謝濤教授對MonkeyBot落地效果進行了分享展示。

淘系産業級移動應用智能測試最新方案MonkeyBot公開!測試效能提升3倍以上

Monkeybot在阿裡巴巴集團包括淘寶、千牛等在内的十餘個大型産業移動應用上落地部署,服務于他們的日常測試和品質保障,特别是雙十一等重要場景的品質保障和測試工作中,并通過軟體綠色聯盟向全行業提供使用者體驗測試,智能探索測試,智能驗證等服務。已在Android、iOS、鴻蒙等作業系統落地實踐,推動測試效能提升3倍以上。

接下來一起看下我們是如何來實作的吧。

研究背景

手淘擁有十億級使用者,産品快速疊代和功能複雜多樣化給品質保障工作帶來巨大挑戰,面臨功能測試回歸成本高、易漏測等問題,迫切需要一個高效智能的自動化測試方案來保障軟體品質。

▐  解決複雜交叉場景易漏測問題

随着淘寶業務的擴大,目前手淘不僅具有購物下單的功能,還有很多其他的業務功能,比如有消息聊天、直播、逛逛、互動遊戲等。不同的業務都是劃分在不同的團隊負責,是以各業務的上線和回歸都是相對比較獨立的。但是,從使用者角度很難區分每個業務的邊界,使用者使用産品過程一定是一個多場景組合的情況,比如使用者買東西的時候想跟商家溝通一下尺寸号碼的問題,使用者大機率會從商品詳情頁找到客服,然後進到聊天頁面發消息;結果商家沒有及時回複,下次可能會從消息tab找到會話去聊天,然後逛着逛着商家回複了又可以從新消息彈框點進去聊,聊完了可能還要傳回繼續逛,逛着逛着又想起一些事情要跟商家交代,于是從快捷入口進到消息再找到會話聊天。一個簡單且常用的聊天功能,使用者可能會有很多路徑去完成,過程中也會涉及到很多消息之外的業務,對于測試同學很難全面覆寫組合場景驗證,也就容易出現交叉場景漏測導緻線上問題發生。

淘系産業級移動應用智能測試最新方案MonkeyBot公開!測試效能提升3倍以上

▐  解決快速疊代回歸成本高問題

手淘用戶端每次疊代釋出各個業務都需要進行回歸驗證,每個月手淘至少一次正式版本釋出,大概每周都有一次灰階釋出,對于每一次釋出都要進行至少兩輪回歸,每次回歸至少覆寫安卓和iOS兩個系統,保守計算每個月至少要做16次功能回歸,每次回歸都需要大量的人力成本。

為了降低回歸成本,UI自動化測試廣受大家喜愛,Selenium、appium、Airtest、RXT等工具陸續出現,通過維護自動化腳本來實作測試自動化,也取得了不錯效果。但是随着産品快速疊代,維護自動化測試腳本仍然需要很大的人力成本和時間成本。

為了更好地為測試提效,讓機器盡可能以接近使用者的視角來自動執行測試流程,盡可能多地覆寫不同業務場景,受周遊測試和Monkey測試的一些啟發,我們嘗試讓機器在給定app内自主探索,結合智能的探索政策,具備類人測試能力,實作全流程無人參與的自動化測試。

思路分析

為了讓機器具備類人測試能力,我們制定了以下幾個目标:首先,在執行層面我們希望一套測試工具支援多系統多平台驗證;其次,測試工具需要擺脫對測試腳本依賴,具有主動了解業務的能力;最後,在了解業務的基礎之上能智能做出決策執行操作,有效覆寫更多使用者操作路徑。

顯然,這些目标是很難實作的。但是,我們仍然要在這布滿荊棘的道路上摸索前行!

通過長時間的技術調研和嘗試,我們找到了如下圖所示的一套解決方案。第一,基于純視覺的UI分析,不再依賴系統資訊完成分析,更好的适配不同系統;第二,通過圖像特征、文本資訊和UI的結構等資訊來對UI狀态進行模組化擷取圖文多模态資訊,然後對于圖檔進行不同層次多粒度狀态抽象,更好地了解圖像業務含義;第三,引入強化學習探索政策,結合探索曆史和智能探索政策,實作更有效地路徑覆寫。

繼續閱讀