分享

關於 Android 下的自動化測試

 android之情殇 2013-01-30

關於 Android 下的自動化測試

(2011-12-30 15:27:18)
标签:

杂谈

關於 Android 下的自動化測試

更新: 2011-07-09字體: 【 點擊: 195

本文主要轉自宋立新的CSDN博客:

前言:

現在Android開發非常紅火,Java環境下敏捷開發是不二選擇。而敏捷開發都是測試驅動。所以,最近研究了一下Android下的各種自動化測試手段。本文重點在於面上的比較而非點上的細節。時間比較短,所以很可能理解很不充分。

測試手段1:CTS

用來確保某設備符合Android兼容性規範。

CTS原來只對OHA聯盟開放。最近Google把它Release出來了。似乎做過一些裁剪,比如針對Java虛擬機的測試,似乎被刪除了,但我們一般用不着這麼高深的。

針對每個版本,比如2.1,2.2,Goolge發佈了一個兼容性規範,而CTS測試就是用來確保某手機或者模擬器符合該兼容性規範。

CTS測試基於Androidinstrumentation測試,其又基於JUnit測試。說白了,CTS就是一堆單元測試用例。這也是Java語言的擅長部分。

在2.1模擬器上試驗了一下,有少數沒有通過。

目前CTS主要包括功能方面的測試,有少數的性能方面的測試。性能測試未來會越來越多。

總的來說,CTS跟WM的LTK測試還是弱了一些,畢竟還年輕。它只包括自動化測試,目的主要是保證API的兼容性。由於基於單元測試,CTS本身不能用於測試多應用交互的情況。

對我們的幫助:

1)應用程式的開發者可以開發出自己應用的單元測試,並將其加入CTS測試集。

2)設備製造商可以通過週期性運行CTS測試,確保沒有對Android傷筋動骨。

測試手段2:Monkey

猴子測試本身非常簡單,就是模擬用戶的按鍵輸入,觸摸屏輸入,手勢輸入等。看手機多長時間會出異常。

可以設置讓Monkey只測試某個應用,從而輔助應用程式的開發。

對我們的幫助:

1)應用程式的開發者可以測試自己應用的魯棒性。

2)設備製造商可以使用猴子對自己的測試施行壓力測試。看設備能堅持多久。

猴子測試即可以針對全局,也可以正對某個局部(某個Category, package等等)。

執行簡單,效果明顯。

測試手段3:ASE

ASE意思爲Android腳本環境,即我們可以通過腳本(比如Python)調用Android的功能,從而定製一些測試。比如打電話,發短信,瀏覽網頁,等。

個人覺得這對復現某些偶發故障非常有幫忙。

目前ASE還處於它的成長期,希望它不斷成熟,爲開發者提供更多便利。

我們可以擴充它的API(Java部分),並用python腳本調用這些 API, 從而實現豐富的測試功能。

用於API部分可以訪問到Android全部API, python又能靈活部署測試,所以ASE的擴展性非常好。

詳細介紹請訪問:嘗試 Android Scripting Environment 之一http://blog.csdn.net/zjujoe/archive/2010/06/09/5657868.aspx

                            嘗試 Android Scripting Environment 之二http://blog.csdn.net/zjujoe/archive/2010/06/09/5659253.aspx

                            嘗試 Android Scripting Environment 之三http://blog.csdn.net/zjujoe/archive/2010/06/18/5677787.aspx

                            嘗試 Android Scripting Environment 之四http://blog.csdn.net/zjujoe/archive/2010/06/22/5687206.aspx

測試手段4: Robotium

該工具用於黑盒的自動化測試。可以在有源碼或者只有APK的情況下對目標應用進行測試。

Robotimu提供了模仿用戶操作行爲的API,比如在某個控件上點擊,輸入Text等等。

遠方的blog上有許多Robotium介紹:Robotium Android自動化測試工具http://hi.baidu.com/maguowei/blog/item/9d438410def7850c213f2ea3.html

關於Robotium的環境搭建與步驟:Robotium應用與Android自動化測試的研究http://www./html/201101/1295345270ID9225.html

測試步驟介紹:簡單介紹如何使用robotium進行自動化測試

測試手段5:單元測試

Android本身帶有很多單元測試例子,我們可以按需要模仿它們,針對某個應用進行單元測試。

注意Android的Instrument機制功能非常強大,可以測試UI。

總結

一方面我們要充分利用Android提供的現成測試,密切關注其進展,另一方面,我們要學習好java/Python程式設計,必要時,自己開發自己的測試用例。

作爲模塊開發者,一定要寫自己的單元測試,一方面可以保證自己的代碼沒有缺陷,另一方面,也爲系統級測試提供素材。

當然,自動化測試關鍵還在於意識,創意比實現更重要。

對於CTS/Monkey,我們不需要開發,只要執行測試就可以了。

對於ASE, 我們可以擴充它的現有API(Java),用Python調用這些API實現豐富的測試功能。

Robotium模仿普通用戶行爲,可以試着把一些原來由測試工程師做的測試變成Robotium自動化實現。

―――――――――――――――――――――――――――――――――――――――――――――――――――――――――――

測試手段6:Monkeyrunner工具

monkeyrunner工具提供了一個API,使用此API寫出的程式可以在Android代碼之外控制Android設備和模擬器。通過 monkeyrunner,您可以寫出一個Python程式去安裝一個Android應用程式或測試包,運行它,向它發送模擬擊鍵,截取它的用戶界面圖 片,並將截圖存儲於工作站上。monkeyrunner工具的主要設計目的是用於測試功能/框架水平上的應用程式和設備,或用於運行單元測試套件,但您當 然也可以將其用於其它目的。

http://www.cnblogs.com/yyangblog/archive/2011/03/10/1980086.html

Monkeyrunner 使用說明http://article./view/37503/164523

測試手段7:QTP插件SeeTest

SeeTest是基於圖像識別的自動化測試工具,工具對中文支持不是很好。這個要花錢買的,試用期14天。官網上說手機一連上就可以在 seetest看到屏幕截圖,並且提取圖形元素,用於編寫腳本。但是奇怪我的手機一操作,就不能再繼續運行下去了,試過其他也不行,不知道有沒有用過此工 具的TX分享下經驗。

 

關於 Android 下的自動化測試

測試手段8:Autoandroid

Autoandroid基於android junit編寫的測試框架功能強大可以完成application test。

Android + Selenium測試工具 = Positron用於集成測試和功能測試,Positron 結合了Android-Ant(如下圖)和Eclipse。

 

關於 Android 下的自動化測試

Selenium工具介紹http://www.ibm.com/developerworks/cn/java/wa-selenium-ajax/

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多