2010-08-13 161 views
3

我是新來的Android測試框架,想知道現有測試框架之間的區別:Monkey,CTS,Instrumentation Framework & Robotium?Android測試框架

+0

CTS - 兼容性測試套件? http://source.android.com/compatibility/cts-intro.html – mparaz 2012-05-10 06:37:59

回答

7

儀器是一種測試類別,與單元測試相反。

該框架爲儀器測試提供掛鉤,但您需要額外的第三方框架才能真正開始。

Robotium就是這樣一個框架。它允許你編寫通過用戶界面運行的「腳本」,說「點擊這個」,「輸入」等。寫得很好,它可以帶你通過你的用戶,從而提供一個很好的感覺,你的應用程序不是破碎。它還允許您測試多個活動和活動交互。根據我的經驗,單元測試對於Android來說非常困難,尤其是對於處理UI,數據庫,活動狀態等的「常規」代碼,除非您編寫可測試性代碼。

Android Monkey還使用檢測來貫穿您的用戶界面,但它不遵循腳本。它隨機完成這個任務,不管它做什麼,它都不應該使應用程序崩潰。根據統計數據,通過產生100000個事件,它試圖獲得儘可能高的覆蓋率。除了Robotium以外,猴子從不離開你的應用程序(這很危險)。這是一個完美的補充,雖然它幾乎是免費的(設置非常便宜,沒有維護)。

CTS只與操作系統和框架本身有關。

你可能也想知道關於模擬?

0

觀察測試金字塔下面:

  • 手動測試 - 自我解釋
  • 功能測試 - 測試的一項功能
  • 集成測試 - 檢查單位發揮很好
  • 單元測試 - 確保一個個別單位按預期工作(見SRP

它暗示每個級別應該有多少次測試。金字塔下方是您可以在每個級別使用的Android框架。

Testing Pyramid

在Android中,下面的框架通常用於每個部分:

功能

  • 猴亞軍 「種」 屬於根據本條,它基本上只是在應用程序周圍肆虐,看看是否有任何交互組合崩潰它

集成: 儀器屬於此類別。

  • 咖啡(由谷歌製造的,推薦使用Hamcrest匹配器)
  • Robotium

單位

  • JUnit4
  • 的Mockito,Powermock,其他嘲諷庫
  • 匹配f rameworks像Hamcrest,巨星,AssertJ
  • Robolectric(提供了對Android具體方法)