2012-07-23 127 views
2

嗨自動化/ iOS的專家,iPhone應用程序的UI自動化測試設計

我們最近推出了新的iPhone應用程序的項目,並想自動化使用蘋果的UIAutomation儀器的一些基本的驗收測試。現在我們有一個非常基本的框架來完成這項任務。這個框架簡單地封裝了Java提供的底層JS函數(以提供一些調試功能)並驅動Junit的測試。測試在iPhone模擬器中運行。

所以背景是Instruments + Eclipse + Java + Junit + iPhone模擬器。

在編寫測試時,我發現測試受應用「狀態」的很大影響。例如, 該應用程序首次運行時會顯示某種「使用條款」頁面,但在iPhone模擬器重置前不會再次顯示。在用戶接受「使用條款」後,她將被帶到「主頁」頁面,在那裏她可以輸入一些搜索條件並點擊「搜索」並進入搜索結果頁面。然後她可以進入「查看詳情」頁面。

TOU - >首頁 - >搜索結果 - >查看詳細信息。

請記住,這只是我的真實應用程序的一個非常簡化的版本。

現在問題: 爲了自動測試視圖細節函數,我的測試是否應該經歷所有前面的步驟(假設應用程序總是重新啓動而沒有保存任何狀態)? 或者我的測試應該假設一些先決條件(比如「View Detail」測試假設我的應用程序位於「搜索結果」)?

請給出您的理由。對不起,如果我的英語很難理解,因爲它不是我的母語。

謝謝!

文斯

回答

0

「預條件」 /「已知的基線」 /「已知的狀態」是金色的自動化。對於UI測試來說更是如此,因爲他們有更多的變體,可能會導致與您的測試無關的問題導致測試失敗。

因此從自動化的角度來看 - 直接進入'查看詳細信息'測試。大多數自動化測試腳本將在這些類型的功能區域中。 TOU等是每次重置/安裝一次。所以兩個選項:

  1. 首先運行自動運行的腳本來清除TOU和出口,其次是與主頁處理所有其他的測試,搜索等,或...
  2. 清除TOU 手動 ,其次是所有其他測試。
  3. 獎勵選項:您還可以測試TOU 每次重置都不會出現多次,因爲它不應該。這可能是你每次都跑步的第一次和第二次測試。然後運行其餘的測試。

如果你的自動化始終依靠TOU出現,那麼第一次測試後,其他人會因爲分時電價將不會出現,直到下一次復位/測試周期失敗。您可以在所有自動化測試開始時放置一個「處理程序」,以有條件地管理TOU頁面。在這種情況下,我會選擇上面的選項#1。

+0

感謝您的答覆,無液體。我已經有腳本來清除TOU。在所有測試中添加'TOU處理程序'對我來說並不合適,因爲我認爲測試應該關注他們自己的功能。而對於選項#1,我擔心我的'查看詳細信息'測試最終可能會有太多依賴關係? – vince 2012-07-25 01:53:12

+0

同意,添加TOU處理程序將遠離測試的焦點。但是如果您擔心'查看詳細信息'將具有太多的依賴關係,那麼測試和其他人需要這樣的處理程序。那麼你不必擔心依賴關係。可以創建一個通用的'manage_dependencies'處理程序作爲應用於所有測試的集合。或控制你的執行順序,但仍然給你一個「依賴鏈」。 – aneroid 2012-07-25 20:38:10