Android相容性測試框架(CTS)手冊
本文翻譯自Android官方的CTS手冊android-cts-manual-r4.pdf
Android相容性測試框架手冊
1、為什麼需要相容性測試(以下稱CTS)?
1.1、讓APP提供更好的使用者體驗。使用者可以選擇更多的適合自己裝置的APP。讓APP更穩定。
1.2、讓開發者設計更高質量的APP。
1.3、通過CTS的裝置可以執行Androidmarket。
另外,CTS是免費的,而且很簡單。
2、怎麼樣才能讓我的裝置變成相容的。
2.1、與AndroidCompatibility Definition文件(以下簡稱ACD)匹配
先看一下與你的系統版本相匹配的ACD,文件中描述了你需要具備的軟體和硬體引數。
2.2、通過CTS測試
CTS是開源的測試框架,使用它來測試你的裝置是否具備相容性。
2.3、提交報告
你可以把測試結果傳送給[email protected]。當你提交了一個CTS報告時,你還可以要求訪問AndroidMarket.
我們正在準備專門用途測試和認證的網站和相應服務,好了之後會通知大家的。
3、CTS的工作原理
CTS主要包含兩個元件:
執行在PC上的測試框架元件。主要用來管理測試用例(testcase)的執行。
執行在裝置或模擬器上的測試用例。這些用例用JAVA寫成的APK檔案。
3.1、工作流程
1、可以從原始碼編譯CTS,也可以從網站下載編譯好的CTS
2、安裝配置CTS。
3、把裝置連線到
4、執行CTS。CTS會把相應的測試用例(也就是一個APK檔案)傳送到裝置上並通過instrumentation執行,然後記錄執行結果,最後刪除測試用例。
所有的測試用例執行完畢後,可以參照測試結果重新調整或優化系統。然後繼續執行CTS測試。
5、測試通過以後,你可以把CTS生成的結果(就是result下面那個以測試時間命名的.zip檔案)提交給[email protected]。
-
測試用例的型別
CTS包含下面三種級別:
1、單元級。測試Android平臺上的程式碼單元。比如,一個java.util.HashMap這樣的類。
2、功能級。多個API組合而成的一個更高階的功能。
3、程式級。通過執行一個簡單的
未來版本還會包含下面的型別:
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。
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
相關推薦
Android相容性測試框架(CTS)手冊
本文翻譯自Android官方的CTS手冊android-cts-manual-r4.pdfAndroid相容性測試框架手冊1、為什麼需要相容性測試(以下稱CTS)?1.1、讓APP提供更好的使用者體驗。使用者可以選擇更多的適合自己裝置的APP。讓APP更穩定。1.2、讓開發者
Android相容性測試CTS Verifier-環境搭建、測試執行、結果分析
CTS Verifier算是CTS的一部分,需要手動進行,主要用於測試那些自動測試系統無法測試的功能,比如相機、感測器等。由於硬體配置或其他原因,不同手機上部分測試專案被隱藏,也就是說CTS Verifier中case的總數,取決於測試機支援哪些功能, CTS
Android相容性測試CTS --環境搭建、測試執行、結果分析
為了確保Android應用能夠在所有相容Android的裝置上正確執行,並且保持相似的使用者體驗,在每個版本釋出之時,Android提供了一套相容性測試用例集合(Compatibility Test Suite, CTS)來認證執行Android系統的裝置是否完全相容
android單元測試框架Mockito使用
null 修改 分享 log hone 技術 pro 我們 ext 單元測試,早些年時常聽到這個概念,真的有去做的確實少,基本都是自己功能上的測試,開發完測試跑一邊沒啥問題就發布了。這幾天花了點心思看了下MockIto框架,記錄博文。 MockIto官網文檔在https:
Android相容性測試GTS-環境搭建、測試執行、結果分析
GTS的全稱是Google Mobile Services Test Suite,所謂的Google Mobile Services即谷歌移動服務,是谷歌開發並推動Android的動力,也是Android系統的靈魂所在。GMS目前提供有Search、Search by Voice、Gmai
Android UiAutomator測試框架
1. UiAutomator測試框架研究與實踐 1.1 UiAutomator 簡介: 它是一個Android自動化測試框架,是谷歌在Android4.1版本釋出時推出的一款用Java編寫的UI測試框架。它只能用於UI也就是黑盒方面的測試。所以UiAutomator只能執行在4.1以
Android自動化測試框架
Monkey Monkey1是Android SDK自帶的測試工具,是一個命令列工具,可以執行在模擬器裡或實際裝置中。可以執行在模擬器中或者實際裝置中,它向系統傳送偽隨機的使用者事件流(如按鍵輸入,觸控式螢幕輸入,手勢輸入等),實現對正在開發的應用程式進行壓力測
Android自動化測試框架Robotium
目前用於Android的測試框架已經有很多,比如:Monkey、Appium和Robotium等。Monkey這是大家比較熟悉的,Android自帶的系統工具。Monkey通過向系統傳送偽隨機的使用者事件流(如按鍵輸入、觸控式螢幕輸入、手勢輸入等),實現對正在開
Android自動化測試框架Espresso(二)——測試Toast彈出內容
Android中的Toast是我們經常會使用的,能夠方便的在介面上彈出一個提示語句,還可以控制顯示的時長,十分方便。使用Espresso測試Toast的彈出內容不是很好操作,主要由於Toast的佈局並不是屬於我們當前應用的,而是通過另一個Sevice控制的,這個原理可以看看
Android自動化測試框架開發(三)Instrumentation測試框架
本篇開始將介紹幾個重量級的測試框架,首先介紹的是Android最早推出的便於進行程式深入的,系統性的單元測試的框架–Instrumentation。 Instrumentation從android2.3甚至更早版本就存在了,很多Android自動化測試框架都是
Android UI 測試框架
Zinc30是一個強大的Android UI自動化測試框架,支援建立健壯、可維護的黑盒測試用例。RD或者QA能夠基於場景設計功能級和系統級測試。Zinc30符合Webdriver的 API規範,以更好地面向物件程式設計的方式來操作Android控制元件,同時全面支援Web
Android相容性測試工具Spoon
摘自: http://www.yeetrack.com/?p=877 簡介 android眾多的版本和機型給android app測試工作帶來不小的挑戰。Spoon通過將case分散式地執行、將執行結果更友好地展示出來,從而簡化android app的測試工作。 S
Android自動化測試框架新書:交流
大家覺得編寫一本描述MonkeyRunner原理分析的書籍如何?估計大概10萬字左右。內容大概分佈如下: Monkey實現原理: 去描述執行在目標安卓機器的monkey是如何執行並處理MonkeyR
Android相容性測試的一些坑
比如我們這款音樂產品來說,遇到的最多的就是聲音許可權衝突問題,之前的荔枝FM這款APP只要安裝在手機中,就會導致我們雲音樂的播放暫停,另外還有QQ音樂、酷狗音樂某些版本也會導致類似的問題,問題源於他們會在非播放歌曲時也會偷偷的申請聲音許可權,導致我們暫停。還有千牛軟體(一款淘寶買家軟體),每次收到訊息時,雲音
Android CTS(相容性測試)整個流程
為了保證開發的應用在所有相容Android的裝置上正常執行,並保證一致的使用者體驗,Google制定了CTS(Compatibility Test Suite)來確保裝置執行的Android系統全面相容Android規範,Google也提供了一份相容性標準文件(Compat
Android CTS 相容性測試的Fail的一些修改
1、直接設定問題 estUnknownSourcesOffByDefault fail junit.framework.AssertionFailedError: Deviceshould not ship with 'Unknown Sources' enab
android常用自動化測試框架
window 自動 瀏覽器 資料 對比 移動 ppi des 選擇 目錄: Monkey MonkeyRunner Instrumentation UiAutomator Espresso Selendroid Robotium Athrun Appi
python專項測試——Android App自動化測試框架
selenium sdk str ase val 測試環境 self ron app自動化 1 為什麽需要框架? 代碼混亂,難閱讀; 重復編碼,效率低;需求變化,難維護; 一 自動化實例 1 準備測試的app;準備測試環境;實現腳本; 2 測試app:只有登錄功能
Android自動化測試實戰(Java篇+主流工具+框架+指令碼)
第1章 課程簡介 我們為什麼要學自動化測試?如果你現在開啟一家招聘網站,輸入自動化測試,不難發現,自動化測試已經成為了軟體測試領域的大趨勢,測試人員能力的分水嶺,高薪福利的必爭地。但每個公司招聘要求中,技能點要求那麼多,我們如何進行系統的學習,成為一名合格的自動化測試工程師呢? 在這門課程將... 1-1 課
Android自動化測試修煉手冊(1)
自動化測試修煉手冊 寫在開頭:因為自己開始試著學習軟體測試相關知識,以此部落格記錄下自己學習過程中遇到的問題或是心得以便將來回顧或是總結。但是由於軟體測試內容太多全面,我就以測試手段分類中自動化測試這一內容開始我的學習之旅。 關於軟體自動化測試開發:除手工測