一直以來,APP的UI自動化測試所受到的詬病就是它的ROI很低(ROI:投資回報率,是指通過投資而應返回的價值)。但是,作為一個最接近用戶的自動化測試方法,拋棄它又很是可惜。而且從各個公司對于招收自動化測試人員的要求來看,這方面的需求也是很大的,難道這些公司不知道UI自動化測試的種種問題嗎?顯然不是。那我們該怎么做呢?
我記得之前看過一個對話是這么說的:
甲:怎么做好管理呢?
乙:用正確的人,做正確的事兒,正確的做事兒。
首先,我同意上面的說法,雖然有些概括。再套用下上面的邏輯,怎么做好UI自動化測試呢?
用合適的工具,做適合的測試,正確的做測試。但是有一點要強調下,選擇好了測試工具,那就要形成基于這個測試工具的軟件框架,來規范和方便大家寫用例和添加模塊等工作。
1. 用合適的工具
關于UI自動化測試工具這個大家都應該了解:Appium、Robotium,UiAutomator等等等等,各式各樣的UI自動化測試工具一薅一大把。會用一個或幾個工具幾乎已經成為了各個公司招收測試人員的基本條件。我承認這個確實很重要,因為要是不熟悉連自動化用例都寫不了,但這些工具目前已經很成熟,在網上就可以很快的學習如何使用并寫出人生里的第一個hello world,所以我認為它的門檻并沒有那么高。而且目前各個工具的功能越來越強大,幾乎也可以滿足大部分的操作要求,所以在選型上也降低了大家的成本。所以,只要它是符合部門或公司現在和未來一段時間的業務發展的工具就是OK的。
2. 正確的做測試
這個不多說了,其實就是根據測試點正確的設計測試用例。強調一點,既然已經選好了測試工具,那也同時要形成基于這個測試工具的軟件框架,達到方便和規范大家寫測試用例和模塊等的目的。
3. 做適合的測試
先舉個例子:有些團隊把UI自動化測試應用在了大部分的功能測試上,然后相關的用例開發人員的悲慘生活就開始了...
UI改版了,好多之前寫好的用例都用不了了
寫case根本找不到元素去操作啊,用坐標的話case又不靈活
這塊主要驗證的內容就是用戶體驗上的東西,自動化根本實現不了啊
之前的case寫的太復雜,通過率好低,但是每次還要分析
...
以上的種種問題,做過自動化測試的你是不是也遇到過呢?怎么去解決呢?我認為,找好應用UI自動化測試的場景很關鍵。合適的場景應該對測試重點有以下要求:
1. 頁面驗證要求不高,幾乎沒有用戶體驗的要求,只重流程
2. 頁面元素操作簡單,不會有復雜的多層操作
3. 某個或某幾個行為的重復
4. 同一個測試方案可以被各個業務使用,復用度高
5. 頁面變動預期不強
這么說有點抽象,舉幾個我們的例子吧。
推送自動化測試(符合上面測試重點中的1,2,4項)
這個測試的主要目的是驗證目前app可以接受推送,打開推送并跳轉到正確的頁面。從描述來看,它主要是對于推送流程的驗證(1),收到推送后只要驗證通知欄推送收到,點擊后是否跳轉到了正確的頁面,操作也很簡單(2)。而且,對于各個業務,收到推送和打開的測試方案都是一樣的(4),這么看的話,是完全適合于自動化的,事實也確實如此。
冒煙測試 (符合上面測試重點中的1,2,5項)
冒煙測試主要是對基本且重要的業務流程的驗證,而且UI不會經常變動,如登錄等。所以在驗證上對于用戶體驗要求不高,操作上也相對單一。萬不可在寫用例時將功能無限的拓展下去,否則會發生上面提到的問題。
性能測試(符合上面測試重點中的3項)
如對于某一個列表頁進行持續的添加,刪除并查看列表的顯示是否正常。這種長時間,大數據量的操作及驗證非常適合自動化。