Android兼容性測試框架(CTS)手冊

瞭解老碼農我的隱私,請看這裏:http://www.koulianbing.com/?page_id=12 html


本文翻譯自Android官方的CTS手冊android-cts-manual-r4.pdf java

 

Android兼容性測試框架手冊 linux

 

圖1

 

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.

咱們正在準備專門用途測試和認證的網站和相應服務,好了以後會通知你們的。

 

3CTS的工做原理

CTS主要包含兩個組件:

運行在PC上的測試框架組件。主要用來管理測試用例(testcase)的執行。

運行在設備或模擬器上的測試用例。這些用例用JAVA寫成的APK文件。

 

3.1、工做流程

1、能夠從源碼編譯CTS,也能夠從網站下載編譯好的CTS

2、安裝配置CTS

3、把設備鏈接到PC上。

4、運行CTSCTS會把相應的測試用例(也就是一個APK文件)傳送到設備上並經過instrumentation運行,而後記錄運行結果,最後刪除測試用例。

全部的測試用例執行完畢後,能夠參照測試結果從新調整或優化系統。而後繼續運行CTS測試。

5、測試經過之後,你能夠把CTS生成的結果(就是result下面那個以測試時間命名的.zip文件)提交給cts@android.com

 

  1.  
    1. 測試用例的類型

CTS包含下面三種級別:

1、單元級。測試Android平臺上的代碼單元。好比,一個java.util.HashMap這樣的類。

2、功能級。多個API組合而成的一個更高級的功能。

3、程序級。經過運行一個簡單的APP來執行一個API集合和Android運行時服務。

將來版本還會包含下面的類型:

1、強度測試。測試系統在高CPU運算之下的穩定性。

2、效率測試。好比每秒渲染的幀數。

 

3.3、目前的測試覆蓋面

目前,爲了確保兼容,測試用例覆蓋了下面的這些範圍

1Signature

對每一個Android產品,都有一些XML文件來描述全部的公開APICTS包含了一個工具來檢測這些API簽名中包含的API是否都在系統中被支持。

2Platform

測試SDK文檔中描述的平臺API,好比corelibraries,Android Application Framework等。要求這些API能夠提供:

正確的類、屬性、方法簽名、方法行爲、錯誤參數處理方式

3DalvikVM

專門針對DalvikVm的測試。

4PlatformData Model

平臺經過ContentProvider提供給開發者使用的數據,好比:Contacts,Browser,Settings等。

5PlatformIntents

平臺提供的用於核心功能的Intent

6Platformpermission

平臺提供的一些重要APP權限

7PlatformResources

simplevalues,drawables,nine-patch,animations,layouts,styles andthemesloading 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、當設置正在進行測試時,毫不能執行其它任務。

15CTS運行時不要按任何鍵或觸摸屏幕。

 

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版本中,一共包含下面7testplan

1CTS

包含全部的測試用例,大約會在設備上執行121000個測試。

2Signature

包含對全部公開API的簽名認證。

3Android

包含對Android平臺API的測試。

4Java

包含對Java核心庫API的測試。

5VM

包含對DalvikVm的測試。

6RefApp

包含對相關應用程序的測試

7Performance

包含對系統性能的測試。

 

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

相關文章
相關標籤/搜索