天天看點

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

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

理想種的移動UI自動化架構:

  • 易于開發和維護
  • 穩定性
  • 執行效率
  • 跨平台
  • 跨應用
  • 支援Hybrid(混合應用)

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

那麼理想中的架構應該是什麼樣的?

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

是以,像Sikuli 、AirTest這樣的基于圖檔識别技術的測試架構就很好。

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

  • 準确率不足
  • 沒有層次結構
  • 代碼穩定性差
  • 代碼可維護性差

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

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

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

要實作這樣的架構需要哪些技術:

  • 圖像切割
  • 圖像分類識别
  • OCR文字識别
  • 圖像相似度比對
  • 像素點操作

圖像切割:可以把一整張圖檔切割出不同的塊,比如一張App的截屏,可以切割成導航欄、視訊封面清單、搜尋框等不同的塊。

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

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

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

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

深度學習帶來的機會

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

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

識别率在逐年提高。

ORC的能力主要展現在:完整準确率和文字準确率。

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

文字的準确率,是将一張截圖分割成多個塊,然後識别出每個塊上的文字。因為已經分割了塊,是以識别率可以達到98%。

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

終于介紹到AIon架構了。

有了上面這些技術做為基礎以後,就可以嘗試AIon架構實作了。

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

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

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

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

AIon的處理過程:

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

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

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

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

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

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

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

閱讀原文

繼續閱讀