如何跨平台使用自動化測試?

互聯網公司有專門的網頁管理後台和移動端前端展示,當在後台做相應操作前端會改變界面或數據,針對這種跨平台測試如何使用自動化測試,和測試的方法。感謝解答。


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 event

Web相關的話,用python調用Selenium,然後跟我的這個工具集成


題主的這個場景算集成測試,自動化成本太大。

換個思路,分層測試:

前台:

測試用例1、後台添加數據,驗證添加數據正確

測試用例2、前台數據顯示與後台數據一致

後台:假設後台添加的數據需要做些處理,移動端才能顯示

測試用例3、單獨測試這個數據處理功能

如果測試用例1、2、3還不足以保證功能的質量,那麼只需要一個用例來驗證(驗收測試)

分層大概可以:

1、單元測試(覆蓋率高)

2、API、中間件、演算法之類(覆蓋率高)

3、UI層測試(覆蓋率高)

4、驗收測試(全業務的集成測試,用例數量少,可以人肉測試)


多機跑腳本,寫調度程序。

寫一個測試server用於處理邏輯、調用不同的自動化引擎,控制web端和移動端。


測試外包


推薦閱讀:

在「Google在手,答案都有的」情況下,軟體行業研發人員的技術和經驗價值體現在什麼地方?
新人如何入門和學習軟體測試?
如何評價巴西世界盃英格蘭VS烏拉圭的小組賽生死之戰?
敏捷開發過程中測試團隊的職責和產出是什麼?
覺得男朋友小氣要如何測試?

TAG:測試 | 軟體測試 | 自動化測試 | APP測試 | 跨平台應用 |