如何跨平台使用自動化測試?
互聯網公司有專門的網頁管理後台和移動端前端展示,當在後台做相應操作前端會改變界面或數據,針對這種跨平台測試如何使用自動化測試,和測試的方法。感謝解答。
1、高強度使用MVVM,這樣GUI部分的代碼會非常少,超過95%以上的代碼都可以使用unit test來覆蓋(Office組經驗值)
2、剩下的GUI部分,由於每一個平台上的app,為了在那個平台上做得最好,肯定用的語言和界面的布局什麼的都是有區別的,除了分開測試以外沒有辦法。如果你們並不追求質量,而是一套代碼到處移植的話,那隻需要在一個平台上跑測試,發布前租一些印度人來在每一個設備上隨便亂點就可以了3、網頁測試有很多方法,譬如說Visual Studio 2010開始就有Coded UI Test,可以對跑在IE裡面的網頁建模,做自動化測試,不需要鏈接任何實現網頁用的代碼。網頁也要使用MVVM,這樣所有的邏輯都實現在後台的API裡面,而後台的這個http API也只是你其他app的MVVM背後的ViewModel和Model的一個wrapper,因此不需要怎麼測試,只要看看每一個函數的序列化反序列化是不是做對了就可以了。
結論:MVVM拯救世界謝謝邀請,我來答一下,前面的回答,基本沒人回答到點子上。
這個問題可以分解成兩個子問題:
1. 如何控制網頁管理後台和移動前端
2. 如何驗證移動前端的表現是正確的
問題1看起來比較簡單,控制網頁管理後台的自動化工具很多,例如selenium,ranorex等開源或者商業軟體都可以。控制移動前端的也有appium這樣跨平台的工具,如果題主問的跨平台不止是web端和移動端,還指的是移動端的android和ios,那麼我想說,沒有天然的跨平台,一般要自己寫一層屏蔽android和ios在界面上的差異,從而做到業務邏輯測試庫的統一。
問題2就比較討厭了,如果僅僅是校驗移動端的數據表現還比較容易處理。如果在網頁管理後台的操作會改變移動前端的UI界面展示,那麼需要編寫和維護相對複雜的界面操作代碼,如果連移動端的工作流都會發生變化,那就需要更加仔細地處理了,這種情況下,自動化不是不能做,而是代價比較大,不是有經驗和資源的測試組織不建議輕易嘗試。
另外,覺得有道理請點贊讓更多人看到。
API和UI測試hybrid模式,我們公司正在使用。將HttpClient和appium深度封裝。
前些年給公司寫了一個針對UI自動化的工具:
Windows上是C#基於Windows Automation API和mouse_event,然後用python封裝Mac上直接python調用Accessibility API和Mac的mouse eventWeb相關的話,用python調用Selenium,然後跟我的這個工具集成
題主的這個場景算集成測試,自動化成本太大。
換個思路,分層測試:前台:測試用例1、後台添加數據,驗證添加數據正確
測試用例2、前台數據顯示與後台數據一致後台:假設後台添加的數據需要做些處理,移動端才能顯示
測試用例3、單獨測試這個數據處理功能如果測試用例1、2、3還不足以保證功能的質量,那麼只需要一個用例來驗證(驗收測試)
分層大概可以:1、單元測試(覆蓋率高)2、API、中間件、演算法之類(覆蓋率高)3、UI層測試(覆蓋率高)4、驗收測試(全業務的集成測試,用例數量少,可以人肉測試)多機跑腳本,寫調度程序。寫一個測試server用於處理邏輯、調用不同的自動化引擎,控制web端和移動端。
測試外包
推薦閱讀:
※在「Google在手,答案都有的」情況下,軟體行業研發人員的技術和經驗價值體現在什麼地方?
※新人如何入門和學習軟體測試?
※如何評價巴西世界盃英格蘭VS烏拉圭的小組賽生死之戰?
※敏捷開發過程中測試團隊的職責和產出是什麼?
※覺得男朋友小氣要如何測試?