天天看點

真正的機器人測試

阿裡QA導讀:“業務先赢”、“極緻體驗”一直是品質人的主旋律。今天小編帶來已入選阿裡巴巴内部《阿裡集團21财年最值得讀的前沿技術領域熱文合集》,也是本年度唯一一篇品質領域入選“人工智能”闆塊的文章,跟大家一起分享交流,看看如何用「真正的」機器人測試來保障“業務先赢”和“極緻體驗”。

一.背景

    随着移動網際網路的蓬勃發展以及5G時代的到來,智能移動終端普及從智能手機拓展到 IoT,商業模式也逐漸實作線上線下打通,産品設計時,多 App /多終端之間的互動也越來越多,例如消費者與商家互動、使用者與主播互動等。随之而來的終端系統也拓展到了 Android、iOS、鴻蒙、Win Touch、RTOS 等等,多APP、多端矩陣也逐漸成為業務觸達使用者的常态。下圖是一位測試人員在不同平台上模拟消費與商家溝通的一個場景。   

真正的機器人測試

    UI自動化作為“業務先赢”的一種重要手段一直在不斷演進,從泛終端與多端UI自動化視角看,行業内主要有以下或類似的解決方案:

真正的機器人測試
真正的機器人測試

    從“極緻體驗”角度來看,加載時長評測占據半壁江山(還有普遍關注的記憶體/CPU性能、幀率/卡頓、Crash穩定性),行業内主要是以下或類似解決方案:

真正的機器人測試
真正的機器人測試

傳統的方式存在一些缺陷:

1)人工點選錄屏耗費人力;

2)基于埋點的方式能夠反映技術優化結果,但很難作為使用者真實場景體驗的精确資料;

3)基于系統驅動的方式對待測裝置有侵入,多個系統多套腳本,覆寫場景比較有限(如非Android/iOS的IoT裝置),難以跨平台支援;

綜上來看,在“業務先赢”、“極緻體驗”的道路上,依然存在需要解決的品質保障難題:1)從泛終端多端互動全流程的視角來看,目前功能自動化測試依然面臨每個端(iOS/Android/PC)各自維護一套腳本或是“僞”一套腳本,成本高;2)多APP矩陣間的互動場景以及同場景下的競品分析日益增多,亟需支援多裝置互動的自動化手段;3)網際網路市場厮殺日益激烈,産品形态多樣性放緩,擁有極緻使用者體驗的網際網路産品才能赢得更多的市場與消費者,期望尋求一種立足“使用者真實感受”、對被測系統無侵入、計量精确的解決方案。4)在快速疊代/變更、複雜功能需求、AB測試的網際網路産品背景下,完全依賴人工編寫/維護自動化腳本已無法滿足需求:系統變動自适應能力差;不能自行探索建構測試場景;傳統的單點驗證測試覆寫面小,很難在項目中快速應用和廣泛推廣。

二.我們的政策

    為了應對以上難題,我們跳出了正常思維,嘗試使用引入攝像頭、機械臂、算法代替人眼、人手、人腦開展泛終端時代多端互動的UI自動化與使用者體驗評測,同時,我們提出了UEE自動化測試的概念。    

真正的機器人測試
真正的機器人測試

1、什麼是UEE自動化測試:    通過IoT(如機械手、攝像頭)等外部裝置模拟真實使用者操作,實作以外部真實使用者視角對AUT(APP Under Test)進行的端到端黑盒自動化測試。以“真實”模拟為核心目的,具體包括兩部分:1)使用者互動體驗評測:通過IoT(如攝像頭、傳感器)等外部裝置采集并将真實使用者感受數字化,來擷取最接近真實使用者體感的性能及使用者體驗名額;軟體綠色聯盟在2020年3月份也釋出了《軟體綠色聯盟智能終端性能流暢評測标準V2.0》,并以機械臂+攝像頭的方式作為加載耗時的評測标準,我們在2019年初就開始使用這種模式。2)多裝置端到端功能自動化:通過機械手實作同時多裝置的跨終端的自動化操作執行;通過AI算法實作IoT裝置的排程控制、場景了解、測試步驟執行、測試路徑探索、體驗名額計算、異常處理等能力。    通過機器人對系統進行黑盒測試,類似的做法在國外Axiz機器人也有嘗試。 2、為什麼要UEE裝置端到端自動化測試E:滿足深度使用者體驗評測的訴求(Experience)    更高精度:随着深度使用者體驗提升的需求日益增加,端側的性能和體驗優化會精确到ms級别,是以需要找到進一步提升使用者體驗名額度量精度的方法。    多裝置間互動測量:随着多端互動的場景越來越多。不光是APP之間,裝置層面APP和PC乃至IoT之間互動的場景也不斷出現,需要度量多APP多裝置之間的互動性能及使用者體驗,需要度量多裝置多系統間(從A手機到B手機,手機到PC/IoT 等)的互動式體驗名額。    真實模拟:軟體模拟點選和真實使用者操作還是存在差異,要探索一種更模拟使用者真實操作的方式。E:對多裝置端到端功能自動化測試的支援(End1 to End2)    業務用戶端發版經常需要對Android/iOS/Pad甚至PC進行覆寫測試,同時APP之間的業務互動場景也逐漸增多,比如淘系的消費者-商家互通全流程,測試不僅僅隻是單手淘、天貓或者千牛APP覆寫,還要能覆寫和串聯起從消費者到商家的整個業務流程端到端自動化。此時,我們面臨着新的挑戰:多機互動自動化:無法快速支援多手機 App 間、手機與PC/IoT之間互動的操作;基于外部視角的對象識别:CV和AI算法的加持讓UI自動化測試在對象識别上有了新的突破,但依然無法擺脫軟體層API操作的局限,受所在作業系統限制,依舊存在部分特定場景下元素無法識别的問題(如系統内Push消息操作);一套跨終端裝置的通用腳本:還不是真正意義上的多裝置多平台一套腳本驅動,Android/iOS/PC/IoT受系統版本或環境影響,可能仍需要多套自動化腳本,維護成本高;一個腳本一次執行覆寫多個裝置和系統:由于不同作業系統有不同的自動化執行引擎,一個腳本一次執行無法同時對Android/iOS/PC/IoT 完成回歸。

三.RXT(Robot-XT)迎接挑戰,應運而生

    基于UEE自動化的理念,我們嘗試使用機器人的方式擷取使用者體驗名額以及開展UI自動化測試,設計并研發了RXT。它基于IoT架構,從“使用者真實感受”出發,零侵入被測系統擷取使用者體驗名額(加載耗時、跳閃白分析),同時支援圖/文驅動跨裝置互動的UEE自動化用例批量執行。如下是示範效果:

真正的機器人測試

下圖是RXT的能力介紹:

真正的機器人測試
真正的機器人測試

1、深度使用者體驗名額

    RXT立足“使用者真實感受”擷取使用者體驗名額,用機械臂手代替人手操作,用高速攝像頭代替人眼記錄操作過程,并具備體驗名額算法(不需要目标對象的加載耗時分析、白屏分析)的大腦結構,RXT也可支援裝置互動場景及競品對比場景。

2、多端自動化

    RXT在傳統的單機操作之上引入一層新的“主要大腦”,接管、排程跨裝置的時序操作,完美支援了多端多裝置、多App間互動場景的自動化能力;RXT使用原生Python程式化(基于unittest)組織用例,使用者可靈活控制/增加定制邏輯,并基于Python module理念抽離公共邏輯,降低用例維護成本,此外,用例可通過任務組織批量執行;RXT上層用例基于圖文方式1套腳本驅動,底層執行引擎支援機械臂引擎和UIAutomator/WDA自動化引擎,其中機械臂方案做到與平台、裝置無關,打通手機和PC(平闆)間自動化的壁壘,滿足各種場景的測試需要;“非預期”彈窗(突如其來的紅包Poplayer、首次安裝需要的各種權限、過渡動畫廣告等等)是自動化測試的災難性問題,RXT-ESP提供了相關的識别和處理機制;RXT提供真機用例調試能力,使用者無需準備任何本地環境即可運作、調試用例。    

3、對象識别

    多場景傳感器融合下的對象識别,使用ROI截取、圖像增強/去噪優化被測對象圖檔,坐标變換關聯手機元素位置與機械臂操控位置,基于OCR擷取目标圖像文本資訊,改進SURF/SIFT特征比對算法提升圖像識别準确率。

4、異常處理

    RXT具備非預期彈窗的檢測與處理能力,例如可以檢測首頁Poplayer紅包彈窗、權限彈窗等,并且使用NLP對互動按鈕(如"我知道了",”允許“,”不再提醒“)進行語義了解、分類,然後加以處理。

5、用例生成

    RXT能從分散雜亂的使用者埋點資料中,通過清洗、聚合、去重建構手淘消息使用者行為通路路徑及Top N熱點路徑,進而轉變成具備業務語義的用例,後者正在進行中。

四.項目實戰

1、手淘消息場景使用者體驗更新項目

    項目目标簡介:手淘消息是世界上最大的商業溝通場景,該項目目标是大力提升手淘消息的加載體驗、并進行跳、閃、白治理

    政策&效果:下面是該項目優化前後,使用RXT觀察到的使用者使用前後版本打開消息業務的效果對比:

真正的機器人測試
真正的機器人測試

2、手淘消息多通道更新項目

   項目目标簡介:該項目涉及到底層鍊路新/老切換,與上層用戶端業務進行對接,為降低品質風險,上線期間相容了新/老鍊路方案,對應的測試回歸場景涉及到手淘消費者(Android/iOS)、千牛商家(Android/iOS/PC)雙端的新老鍊路互動,按笛卡爾乘積增長,共有48種,每種場景都基本對應同一套測試用例。

    政策&效果:上層業務上存在大量重複Case回歸,我們的政策是将簡單、重複的用例交給RXT,人工投入更多的時間在複雜場景的用例設計和回歸上。

真正的機器人測試

3、大促态消費者-商家下單核心鍊路驗收

    項目目标簡介:大促态下,消費者送出訂單是核心鍊路。不僅需要保障手淘消費者(Android/iOS)送出訂單成功,并且需要保障千牛商家側(Android/iOS/PC)能夠實時收到消費者送出的訂單資訊。

    政策&效果:如下是實戰效果(手淘-千牛移動端):

真正的機器人測試

五.總結及未來展望

    本文主要介紹了UEE自動化測試理念,并在此基礎上設計并研發了RXT以及相關的一些項目實踐結果。我們還将在“業務先赢”、“極緻體驗”的道路上繼續前行。未來我們将繼續優化RXT産品,繼續提升産品穩定性、智能化能力。同時也希望我們的能力可以更多對行業開放,讓智能化測試服務行業,實作真正的測試智能。歡迎大家提供合作機會!! 

六.歡迎共同交流

真正的機器人測試
真正的機器人測試

七.附:

什麼場景下建議開展UEE端到端使用者體驗測試?

建議UEE自動化作為UI自動化的輔助和補充。以下場景建議使用UEE自動化測試:1、單裝置APP使用者體驗名額評測:單手機APP對精度有更高要求,更真實模拟使用者體感的場景。2、多裝置APP間的使用者體驗互動或對比評測:比如手淘消息和微信消息的使用者體驗名額對比、不同APP啟動時長對比等等。3、多裝置互動的端到端功能自動化測試:比如社交類場景的賣家B和買家C的消息互通測試、手淘買家和千牛PC賣家之間業務依賴的B到C全流程測試等。