AI移動自動化測試框架設計(解讀)


聲明:原文出自“前端之巔”微信公眾號“愛奇藝基於AI的移動端自動化測試框架的設計”一文,作者:何梁偉,愛奇藝Android架構師。文章提供了一種基於AI算法的自動化測試框架AIon,該框架並未開源,目前搜索不到相關資料,但從作者的設計思路上很受啟發。


#### 理想種的移動UI自動化框架:
  • 易於開發和維護

  • 穩定性

  • 執行效率

  • 跨平台

  • 跨應用

  • 支持Hybrid(混合應用)

傳統的UI自動化框架(UIAutomator、Espresso、appium等),或多或少在這些方法做的不夠完美。


#### 那么理想中的框架應該是什么樣的?

模擬用戶的操作,用戶在操作的時候是不需要知道控件的屬性(ID、name)的,它應該是一種所見即所得的操作。

所以,像Sikuli 、AirTest這樣的基於圖片識別技術的測試框架就很好。

但是,它們也有一些不足:

  • 准確率不足

  • 沒有層次結構

  • 代碼穩定性差

  • 代碼可維護性差

如果,測試腳本可以變成這樣:

這個樣的腳本表達接近我們的自然語言。比如,點擊標簽上的會員按鈕,就變成 find('tab').find('會員'),代碼的維護性也會變得很好。


#### 要實現這樣的框架需要哪些技術:
  • 圖像切割

  • 圖像分類識別

  • OCR文字識別

  • 圖像相似度匹配

  • 像素點操作

圖像切割:可以把一整張圖片切割出不同的塊,比如一張App的截屏,可以切割成導航欄、視頻封面列表、搜索框等不同的塊。

圖像分類識別:對上面切割的塊進行分類,需要圖像分類的能力。

OCR文字識別:依賴圖像 OCR 的識別能力,知道對應的視圖里面有哪些文字。

圖像相似度匹配能力:這一點傳統的圖像處理庫就可以實現。比如Python的pillow庫。

像素點的操作:可以依賴傳統的框架,比如通過坐標完成操作,也可以使用機械臂來完成像素點的操作。


#### 深度學習帶來的機會

在深度學習以前,圖像分類領域的准確率一定在75%以下,引入深度學習使准確率提高到98%、99%。有文章說准確率達到95%說明已經超過人類了,這是一個相當高的水平。

識別率在逐年提高。

ORC的能力主要體現在:完整准確率和文字准確率。

完整的准確率是指,在一個截圖里面,會有一些標題和詞組,如果標題里面有一個字出現了錯誤,就認為這個標題的識別是錯誤的,通過這種方式,准確率能夠達到93%。

文字的准確率,是將一張截圖分割成多個塊,然后識別出每個塊上的文字。因為已經分割了塊,所以識別率可以達到98%。


### 終於介紹到AIon框架了。

有了上面這些技術做為基礎以后,就可以嘗試AIon框架實現了。

這中間還介紹了UI2Code 、pix2code兩個“類似”框架的。它們是將截圖生成用戶界面代碼,感興趣可以百度了解。

這里直接介紹Alon的工作方法。敲黑板!這里考試重點。

AIon 會把一個截圖切成幾塊:tab、導航、狀態欄等,然后用深度學習圖像分類,對每一塊進行分類識別,識別完了以后,就會把對應塊里的子元素提取出來,再用一些AI的技術,提取里面的內容,把它填充到子元素的屬性里面去,最后就會得到二級視圖樹的結構,最后,就可以去做對應的點擊操作了。


#### AIon的處理過程:

比如要實現一條測試用例,

首先截屏,對它進行場景判斷,場景判斷會應用到一些AI分類識別,識別出當前界面有沒有彈出對話,或者它是否是登陸頁的場景識別。場景識別完了以后,就會進行傳統的圖像切割,圖像切割完了以后,進行布局分類,布局分類也會應用到一些AI的技術,分類完了以后,進行子元素的提取,對這個子元素進行填充,填充會應用到一些AI的技術。

最后,當視圖樹構建完了之后,匹配之前寫的測試用例里面的條件進行匹配,匹配之后,執行測試用例,這就是整個AIon的核心流程。

由於考慮到之前的一些測試用例,還有一些傳統的測試框架寫的測試用例,本身還做了對傳統測試框架的融合。

AIon的處理過程中涉及到一些技術問題這里就省略了,通篇閱讀下來有點像論文。強烈建議閱讀原文,我這里只是簡化了對原文的解讀。

從中get到了一些基於AI實現自動化框架的思路。未來的自動化測試肯定會越來越使用更簡單,功能更強大。要么去實現AI自動化框架,要么被AI自動化框架淘汰!你選吧!

閱讀原文


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM