<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    qileilove

    blog已經轉移至github,大家請訪問 http://qaseven.github.io/

    Android自動化測試解決方案

    現在,已經有大量的Android自動化測試架構或工具可供我們使用,其中包括:Activity Instrumentation,MonkeyRunner,Robotium,以及Robolectric。另外LessPainful也提供服務來進行真實設備上的自動化測試。

      Android自身提供了對instrumentation測試的基本支持,其中之一就是位于android.test包內的ActivityInstrumentationTestCase2類,它擴展了JUnit的TestCase類來提供Android activities的功能測試。在應用測試中,每一個activity首先會被Instrumentation初始化,然后再加載到Android模擬器或設備的Dalvik虛擬機中來執行。

      Android SDK自帶一個測試工具MonkeyRunner,它提供的API和執行環境可以運行Python語言編寫的測試代碼。它提供API來連接設備,安裝/卸載應用,運行應用,截屏,比對圖片來判斷特定命令執行后的屏幕是否包含預期信息,以及運行對應用的測試。MonkeyRunner使用ActivityInstrumentationTestCase2,ProviderTestCase,ServiceTestCase,SingleLaunchActivityTestCase及其他類來定義測試用例,并使用InstrumentationTestRunner類來運行測試。

      Robotium是另一種通過InstrumentationTestRunner來完成Android交互式測試的架構,它橫跨多個activities,支持功能測試,系統測試和接收測試。Robotium支持Activities、Dialogs、Toasts、Menus、Context Menus甚至Honeycomb,并且它可以同Maven和Ant集成來完成持續集成測試。Robotium被稱之為針對Android應用的又一個“Selenium“。

      Robolectric另辟蹊徑,它并不依賴于Android提供的測試功能,它使用了shadow objects并且運行測試于普通的工作站/服務器JVM,不像模擬器或設備需要dexing(Android dex編譯器將類文件編譯成Android設備上的Dalvik VM使用的格式),打包,部署和運行的過程,大大減少了測試執行的時間。Pivotal實驗室聲稱使用Robolectric可以在28秒內運行1047個測試。

      LessPainful將Android測試又推進了一步,它提供了一個多設備平臺自動化測試的服務。用戶上傳應用(*.apk)和用Cucumber(一種業務相關的DSL)編寫的測試文件,選擇測試運行需要的設備配置,最后測試將自動執行并生成測試報告。它支持的設備包括Garmin Asus,幾款HTC,LG,Samsung Galaxy,Sony Xperia和Motorola Motodefy。

      為了了解更多LessPainful提供的服務細節,我們采訪了LessPainful公司的CEO Jonas Maturana Larsen。下面就是這次簡短的訪問:

      InfoQ:在不同版本的Android上運行應用程序,存在什么問題?為了保證程序能正常運行,開發者需要在Android的每一個版本上測試他的應用嗎?

      JML:舉個例子,SAXParser在Android 2.2之前有一個bug存在于對ContentHandler.startElement的回調中,它導致應用產生錯誤的行為。

      到目前為止,我們已經在很多方面發現了不同操作系統版本間的差異性。其中一些可能在2.1-update1上導致崩潰,但可以正常運行于2.1-update3和2.2.

      InfoQ:不同的設備對Android來說,有沒有真正的區別?你能否給我們舉個例子,比如Android2.2應用可以運行在HTC但不能運行于Samsung?(或其他各種Android版本和設備制造商的組合)

      JML:在LG手機,HorizontalScrollViews有時會導致子視圖上的背景圖片消失。這個問題存在于我們測試的所有的LG手機,不管Android版本是多少。

      如果你不自己處理這類問題,它將導致你的應用在不同設備上不盡相同。例如,Motorola將會用紅色邊框來高亮一個輸入域。在我曾經參與的一個項目中,我們用同樣的紅色邊框來表示輸入有誤。

      還有一些問題,與其說和制造商相關,不如說是和硬件相關:比如,一些手機使用了較小的RAM和高分辨率的攝像頭,當你處理手機上的圖像時就會將導致崩潰。

      InfoQ:這些測試是如何執行的?

      JML:測試就如同運行一個ActivityInstrumentationTestCase2,主要使用Robotium來運行。我們對應用所做的唯一修改就是去掉已有的簽名,再為它重新生成我們的簽名文件。

      在測試運行完成后,應用會被卸載,而手機也會被恢復到初始設置。

      InfoQ:與MonkeyRunner,Robotium和Robolectric相比,你們所提供的服務有什么優勢呢?

      JML:LessPainful是一種服務,而并不僅僅是一種架構。我們希望創建一種服務,不但使測試能夠進行,并且比起其他任何一種架構,它能夠節省我們大量測試時間,還能夠幫助我們發現更多的bug。

      另外,我們相信使用Cucumber,可以清晰地定義高層次測試描述,同時可以更好地被開發團隊以外的人員共享。

      以Git領域為例,我們更希望成為像是GitHub那樣,而不只是通常的git庫。

      InfoQ:你們有計劃未來要支持更多的設備嗎?

      JML:是的。我們計劃繼續增加對更多設備的支持。如果有這樣的要求提出,我們就會努力完成它。

      目前,我們也在著手于對iOS設備的支持,希望beta版能在今年秋季發布。

      InfoQ:什么是LessPainful企業版?

      JML:我們將提供一個工具集,它就類似于一個Mac Mini,但我們會非常靈活的滿足顧客的需求。LessPainful企業版目前還沒有正式推出,所以敬請期待。

    posted on 2011-10-24 13:46 順其自然EVO 閱讀(1010) 評論(0)  編輯  收藏 所屬分類: 測試學習專欄

    <2011年10月>
    2526272829301
    2345678
    9101112131415
    16171819202122
    23242526272829
    303112345

    導航

    統計

    常用鏈接

    留言簿(55)

    隨筆分類

    隨筆檔案

    文章分類

    文章檔案

    搜索

    最新評論

    閱讀排行榜

    評論排行榜

    主站蜘蛛池模板: 亚洲色婷婷综合开心网| 免费成人av电影| 亚洲国产精品精华液| 国产jizzjizz免费视频| 中文字幕无码一区二区免费| 亚洲成a人片在线观看播放| 日韩一级视频免费观看| 久久免费精品一区二区| 亚洲av永久无码天堂网| 亚洲区日韩区无码区| 最近2018中文字幕免费视频| 亚洲AV综合永久无码精品天堂| 久久精品国产亚洲5555| 免费视频专区一国产盗摄| 美女视频黄a视频全免费网站色 | 伊人久久亚洲综合| 免费福利视频导航| 国产黄在线观看免费观看不卡| 亚洲蜜芽在线精品一区| 亚洲国产一区视频| 国产va免费精品观看精品| 成在人线av无码免费高潮水| 欧洲 亚洲 国产图片综合| 亚洲国产精品无码久久一线| 国产高清免费在线| 国产精彩免费视频| 久久久免费观成人影院| 无码亚洲成a人在线观看| 亚洲综合色丁香麻豆| 亚洲尤码不卡AV麻豆| 国产精品冒白浆免费视频| 免费黄色网址网站| 午夜精品免费在线观看| 国产精品免费久久久久久久久 | 亚洲天天做日日做天天欢毛片 | 亚洲成_人网站图片| 亚洲av一综合av一区| 亚洲熟伦熟女新五十路熟妇| 日韩免费三级电影| 国产片AV片永久免费观看 | 成人免费看片又大又黄|