瞭解老碼農我的隱私,請看這裏:http://www.koulianbing.com/?page_id=12 html
本文翻譯自Android官方的CTS手冊android-cts-manual-r4.pdf java
Android兼容性測試框架手冊 linux
1、爲何須要兼容性測試(如下稱CTS)? android
1.1、讓APP提供更好的用戶體驗。用戶能夠選擇更多的適合本身設備的APP。讓APP更穩定。 瀏覽器
1.2、讓開發者設計更高質量的APP。 框架
1.3、經過CTS的設備能夠運行Androidmarket。 編輯器
另外,CTS是免費的,並且很簡單。 ide
2、怎麼樣才能讓個人設備變成兼容的。 工具
2.1、與AndroidCompatibility Definition文檔(如下簡稱ACD)匹配 性能
先看一下與你的系統版本相匹配的ACD,文檔中描述了你須要具有的軟件和硬件參數。
2.2、經過CTS測試
CTS是開源的測試框架,使用它來測試你的設備是否具有兼容性。
2.3、提交報告
你能夠把測試結果發送給cts@android.com。當你提交了一個CTS報告時,你還能夠要求訪問AndroidMarket.
咱們正在準備專門用途測試和認證的網站和相應服務,好了以後會通知你們的。
3、CTS的工做原理
CTS主要包含兩個組件:
運行在PC上的測試框架組件。主要用來管理測試用例(testcase)的執行。
運行在設備或模擬器上的測試用例。這些用例用JAVA寫成的APK文件。
3.1、工做流程
1、能夠從源碼編譯CTS,也能夠從網站下載編譯好的CTS
2、安裝配置CTS。
3、把設備鏈接到PC上。
4、運行CTS。CTS會把相應的測試用例(也就是一個APK文件)傳送到設備上並經過instrumentation運行,而後記錄運行結果,最後刪除測試用例。
全部的測試用例執行完畢後,能夠參照測試結果從新調整或優化系統。而後繼續運行CTS測試。
5、測試經過之後,你能夠把CTS生成的結果(就是result下面那個以測試時間命名的.zip文件)提交給cts@android.com。
測試用例的類型
CTS包含下面三種級別:
1、單元級。測試Android平臺上的代碼單元。好比,一個java.util.HashMap這樣的類。
2、功能級。多個API組合而成的一個更高級的功能。
3、程序級。經過運行一個簡單的APP來執行一個API集合和Android運行時服務。
將來版本還會包含下面的類型:
1、強度測試。測試系統在高CPU運算之下的穩定性。
2、效率測試。好比每秒渲染的幀數。
3.3、目前的測試覆蓋面
目前,爲了確保兼容,測試用例覆蓋了下面的這些範圍
1、Signature
對每一個Android產品,都有一些XML文件來描述全部的公開API。CTS包含了一個工具來檢測這些API簽名中包含的API是否都在系統中被支持。
2、Platform
測試SDK文檔中描述的平臺API,好比corelibraries,Android Application Framework等。要求這些API能夠提供:
正確的類、屬性、方法簽名、方法行爲、錯誤參數處理方式
3、DalvikVM
專門針對DalvikVm的測試。
4、PlatformData Model
平臺經過ContentProvider提供給開發者使用的數據,好比:Contacts,Browser,Settings等。
5、PlatformIntents
平臺提供的用於核心功能的Intent。
6、Platformpermission
平臺提供的一些重要APP權限
7、PlatformResources
simplevalues,drawables,nine-patch,animations,layouts,styles andthemes,loading alternate resources等
4、配置和使用CTS
4.1、配置CTS
1.6及以上版本才能運行CTS。
解壓ZIP包,編輯android-cts/tools/startcts腳本,修改變量SDK_ROOT來與環境相匹配。
例如:
SDK_ROOT=/home/myuser/android-sdk-linux_x86-1.6_r1
即,指向SDK的根目錄。
4.2、配置設備
下面的這些說明很重要,配置不當的話可能致使測試超時或測試失敗:
1、下載SDK到機器上。
2、你要測試的設備應該運行的是一個userbuild。
3、參考這個連接(http://developer.android.com/guide/developing/device.html)來設置一下你的設備。
4、運行CTS以前,確保你的設備已經燒入了一個userbuild
5、在運行CTS測試以前還須要經過Settings->SpeechSynthesis->Install voice data來下載TTS文件。若是沒有安裝AndroidMarket的話,須要手動安裝。
6、建議你使用一個專門用來測試的Google帳戶來登陸設備。
7、確保設備有一個SD卡,而且SD卡是空的。由於CTS可能修改/刪除SD卡上的數據。
8、在設備上作一次恢復出廠設置(Settings->SDCard & phone Storage->Factory data reset)。注意:這會刪除設備上的全部用戶數據。
9、確保設備沒有處在任何lockpattern之下(取消Settings->Security&location->RequirePattern這個選項)
10、確保「ScreenTimeout」被設置爲「NeverTimeout」(Settings->Sound&Display->ScreenTimeout應該被設置爲「NeverTimeout」)
11、確保「StayAwake」被選中(Settings->Applications->Development->Stayawake)
12、確保Settings->Application->Development->Allowmock locations被設置爲true。
13、在運行CTS時,設備停留在桌面上。
14、當設置正在進行測試時,毫不能執行其它任務。
15、CTS運行時不要按任何鍵或觸摸屏幕。
4.3、使用CTS
運行一個testplan須要:
1、至少有一個設備或模擬器鏈接到PC上。而後運行腳本android-cts/tools/startcts
2、你能夠經過執行start–plan CTS來執行默認的testplan。這個test plan包含全部的測試用例。
使用ls-p能夠查看repository
中包含的測試用例的列表。
使用ls–plan能夠查看repository
包含的testplan列表。
3、還能夠運行startctsstart –plan <plan_name>來執行一個指定的testplan。
4.4、選擇CTSPlan
當前CTS版本中,一共包含下面7個testplan。
1、CTS
包含全部的測試用例,大約會在設備上執行121000個測試。
2、Signature
包含對全部公開API的簽名認證。
3、Android
包含對Android平臺API的測試。
4、Java
包含對Java核心庫API的測試。
5、VM
包含對DalvikVm的測試。
6、RefApp
包含對相關應用程序的測試
7、Performance
包含對系統性能的測試。
5、解釋一下測試結果
測試結果被放在$CTS_ROOT/repository/results/<starttime>.zip
。在這個ZIP文件中,testResult.xml文件包含了真正的測試結果,用瀏覽器打開這個文件能夠看到下面這樣的效果
其中,「deviceinformation」部分提供了設備和固件的細節(如make,model,firmwarebuild,platform等)和設備的硬件配置(屏幕參數、鍵盤、屏幕類型等)。
另外,「testsummary」部分提供了testplan的執行細節描述,包含CTSplan name和執行的開始、結束時間。還有測試結果的統計,包含測試經過、失敗、超時、不能執行的個數。
下面的這個表格統計了一個包中的測試用例有多少測試經過。
這個表格的後面還跟着對執行結果更具體的描述。
這個報告列出了testpackage,test suite,testcase和執行的測試,還有測試執行的結果:經過、失敗、超時、未執行。當測試失敗時,能夠在XML文件中找到stacktrace,爲了讓執行結果更簡潔,這些stacktrace沒有被包含進來。用文本編輯器查看XML文件,在裏面搜索一下<Test>標籤和<StackTrace>標籤就能夠了。
6、注意事項
CTS在測試時會重啓設備,這是正常現象。
CTS一次只能在一個設備上執行。
運行CTS時可能會出現彈出強制關閉對話框,要求用戶選擇關閉或者等待。從新運行這個測試通常就會好的。
如下有幾篇文章,講得比較簡潔,能夠先看一下這幾篇再閱讀本文,那樣理解起來會容易一些
http://chenhuawei1234567.blog.163.com/blog/static/194526712010629111638224/
http://blog.csdn.net/zjujoe/archive/2010/06/01/5640461.aspx