關於移動應用自動化測試的那些事


 

互聯網產品的迭代速度遠高於傳統軟件,尤其是移動APP不但更新頻繁,還需要在不同硬件、系統版本的環境下進行大量兼容測試,這就給傳統測試方法和測試工具帶來了巨大挑戰。爲滿足產品敏捷開發、快速迭代的app測試需求,自動化測試逐漸流行起來。自動化測試是把以人爲驅動的測試行爲轉化爲機器執行的一種過程。

 

自動化測試的優點很多,簡單羅列幾條:避免重複工作、提高測試效率、保證每次測試地一致性和可重複性、更好的利用資源、節省人力資源、增加軟件信任度、縮短軟件開發測試周期讓產品更快投放市場、提高軟件測試的準確度和精確度,添加軟件信任度。

 

並不是任何應用產品都適合做自動化測試,選擇自動化測試之前必須確認你的項目符合以下要求:軟件需求變動不頻繁、產品更新維護週期長、比較頻繁的迴歸測試、自動化測試腳本可重複使用,否則光是準備大量的測試腳本就足以讓測試人員崩潰。

 

自動化測試的主要類型

 

1、基於代碼的自動化測試,在方法上可以分爲白盒測試和灰盒測試

 

白盒測試的特點:

白盒測試深入被測代碼的邏輯細節

白盒測試關注代碼覆蓋率和運行路徑

白盒測試通過測試樁(Stub,Mock)實現代碼隔離

白盒測試通過測試驅動(Test Fixture)執行測試用例

 

灰盒測試的特點:

灰盒測試關注接口與參數,不關注代碼實現

灰盒測試適用白盒測試用例設計方法

 

2、基於界面的自動化測試

利用代碼或工具模擬鼠標和鍵盤的操作

界面級自動化測試的核心是對象識別和操作

工具比較多,如:Selenium/QTP等

 

3、協議級自動化測試

代碼級自動化測試更多的用於服務端

界面級自動化測試更多的用於客戶端

協議自動化測試用於測試客戶端和服務端的通信,彌補代碼級和界面級的不足

協議級自動化測試更適合於可靠性、安全性、性能等測試

 

移動app自動化測試工具的選擇

 

APP:

 

1、Android:

 

UIAutomator 谷歌官方提供,只能做原生APP的自動化測試,語言java

Monkey 理論上不算UI自動測試框架,更大作用測試app的穩定性

MonkeyRunner 可錄製,但是腳本根據座標軸定位,兼容性差

Robotium 使用的人較多,文檔也比較齊全,也支持webview,不支持跨進程, 語言java

Appium 支持Hybrid app,也支持跨進程,可以用衆多語言編寫腳本java,ruby,python,c#……目前不支持安卓toast的獲取

Calabash 語言Java ,底層Robotium 同樣不支持跨進程

 

2、IOS

 

UIAutomation 蘋果自家的

Appium 同時支持android, 提供的api也基本一致,代碼複用率高

Calabash 同時支持android, 提供的api也基本一致,代碼複用率高

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章