CTS Verifier算是CTS的一部分,需要手動進行,主要用於測試那些自動測試系統無法測試的功能,比如相機、傳感器等。由於硬件配置或其他原因,不同手機上部分測試項目被隱藏,也就是說CTS Verifier中case的總數,取決於測試機支持哪些功能,
CTS Verifier總共包含以下15個功能:
· Camera
· Clock
· Device administration
· Features
· Hardware
· Job scheduler
· Location
· Managed Provisioning
· Networking
· Notifications
· Others
· Projection tests
· Security
· Sensors
· Streaming
測試之前的准備工作:
1. 從http://source.android.com/compatibility/downloads.html 中下載CTS Verifier的測試包並解壓,如圖1所示。
圖1 CTS Verifier測試包下載
2. 把測試機刷成需要測試的版本。
3. 安裝*/android-cts-verifier/CtsVerifier.apk。
4. 設置手機語言為English。
5. 打開藍牙,無需配對。
6. 打開並連接可用wifi。
7. 請再另外准備一台手機,以便測server和client相關的case。
8. 必須首先測試Data Backup Tests, 因為如果做完別的測試之后,Data Backup Test測試失敗,會清空測試log,所以必須最先做。
接下來就可以開始各個feature的測試了,以下是各個feature的測試辦法總結。
Camera FOV Calibration
進入測試后點擊屏幕拍照后點擊Done 按鈕(請保持點擊頻率不要過快,否則有可能引起應用報錯),繼續重復上述操作四次,第四次之后會自動返回cts-verifier主界面,同時顯示測試結果,綠色為pass,紅色為fail。
Camera Formats
先后預覽Camera0 與Camera1在NV21和YV12模式下,各個分辨率的相機預覽正確型后,選擇PASS或者Fail。
Camera Intents
該測試主要分為4 步:
1. 點擊Start Test 按鈕開始測試,按HOME 鍵回到桌面選擇並進入相機應用后拍攝一張照片,再次返回桌面,點擊cts-verifier,如果PASS 按鈕可點擊則PASS,否則請檢測操作是否正確並多次進行該操作,直到可以點擊PASS 按鈕。
2. 點擊Start Test 按鈕開始測試,按HOME 鍵回到桌面選擇並進入相機應用后拍攝一個視頻(不限時間),再次返回桌面,點擊cts-verifier,
如果PASS 按鈕可點擊則PASS,否則請檢測操作是否正確並多次進行該操作直到可以點擊PASS 按鈕。
3. 點擊Start Test 按鈕開始測試,自動跳轉到相機后點擊拍照,並點√進行保存,點擊PASS 按鈕。
4. 點擊Start Test 按鈕開始測試,自動跳轉到錄像機后拍攝一段視頻,並點√進行保存,點擊PASS 按鈕。
Camera Orientation
該測試主要測試相機預覽已經旋轉視圖的正確性,如圖(例如該測試的第二項,檢測預覽是否正確,預覽、拍照成像是否已經旋轉90°,如果都正確這點擊PASS),如圖2所示。
圖 2 Camera Orientation
Camera Video
該測試主要驗證前后攝像頭不同畫質下的拍攝。先選擇Camera0 攝像頭與LOW 畫質選項,點擊Test。開始拍攝,稍后錄像內容回放是如果檢查拍攝無誤,則更換HIGH 畫質繼續測試,以此類推。
Alarms and Timers Test
該測試主要驗證鬧鍾已經計時器的正常運行,如果7項測試全部pass則點擊PASS ,否則點擊Fail。
Show Alarms Test
點擊Show Alarms,正常進入鬧鍾列表后,按返回鍵回到測試界面,點擊Pass。
Set Alarms Test
點擊Set Alarm 按鈕,進入鬧鍾界面,成功添加一組鬧鍾后,按返回鍵回到測試界面,點擊Pass。
Start Alarms Test
點擊Set Alarm,等待一分多鍾以后,如果鬧鍾響,則點擊Pass。
Full Alarm Test
點擊Create Alarm 按鈕,自動進入鬧鍾列表后查看是否有一個時間為:01:23,名稱為“Create Alarm Test”的鬧鍾,如果有,返回點擊PASS(鬧鍾詳細信息如圖3所示)
圖 3 Full Alarm Test
Set Timer Test
點擊Set timer 按鈕就進入計時器界面后,手動設置一個倒計時,計時成功后返回cts-verifier,點擊Pass 按鈕。
Start Timer Test
點擊Start Timer 按鈕后,手機自動生成一個30s 的計時器,計時器正常響起后點擊PASS。
Start Timer with UI Test
點擊Start Timer 按鈕后,手機自動進入Timer,並生成一個30s 的計時器,計時器正常響起后點擊PASS。
Policy Serialization Test
進入測試后點擊“GENERATE POLICY”按鈕,再次點擊“APPLY POLCY”按鈕,點擊“ACTIVE”按鈕,點擊“OK”以激活cts-verifier 設備管理器,按返回鍵返回cts-verifier測試目錄,重啟手機,再次進入Policy Serialization Test ,如果測試項全亮則點擊Pass,如圖4所示。
圖4 Policy Serialization Test
Screen Lock Test
進入測試后(彈出提示框均為說明提示,點擊OK 即可),點擊Force Lock按鈕,手機熄屏並上鎖,按電源鍵喚醒屏幕,使用當前設置的解鎖方式解鎖,符合該操作流暢則PASS, 否則Fail。此處屏幕解鎖方式不能為None。
Hardware/Software Feature Summary
進入測試后沒有發現紅色Fail 項,即可點擊Pass,如圖5所示。
圖5 Hardware/Software Feature Summary
GPS Test
將手機置於空曠無阻擋的環境中,當所有的GPS的選項都通過時,屏幕會有pass的提示。注意有時網絡不穩定時可能會失敗,建議失敗時多測試幾次。
NFC Test
該功能是允許手機在接觸其他硬件設備(交通卡,門禁卡等)時交換數據, 很多手機不支持這個功能,請仔細確認。如果5項測試全部pass, 則點擊PASS,否則點擊Fail。目前手機不支持,所以沒有具體測試步驟,之后更新文檔。
NDEF Push Sender
NDEF Push Receiver
NDEF
HCE reader tests
HCE emulator tests
USB Accessory Test
一般需要使用如下adb驅動版本
SUBSYSTEM="usb",ATTRS{idVendor}=="18d1",ATTRS{idProduct}=="2d01",MODE="0666"
SUBSYSTEM="usb",ATTRS{idVendor}=="18d1",ATTRS{idProduct}=="e781",MODE="0666", 添加到/etc/udev/rules.d/51-android.rules文件中,添加步驟如下:
1. Ctrl+Alt+T 調出終端,輸入“cd /etc/udev/rules.d”;
2. 輸入“sudo gedit 51-android.rules”,之后輸入用戶密碼;在打開的51-android.rules文件中添加:
SUBSYSTEM="usb",ATTRS{idVendor}=="18d1",ATTRS{idProduct}=="2d01",MODE="0666"
SUBSYSTEM="usb",ATTRS{idVendor}=="18d1",ATTRS{idProduct}=="e781",MODE="0666"
3. Ctrl+S保存之后關閉即可;
但是特殊情況下,手機的Hardware ID會改變,此時手機連接PC,使用命令“lsusb”查看手機的ID,更改如下命令中的黃色部分:
SUBSYSTEM="usb",ATTRS{idVendor}=="18d1",ATTRS{idProduct}=="e781",MODE="0666"
安裝好adb驅動之后,進入*/android-cts-verifier,通過命令“./cts-usb-accessory”,執行腳本。正常情況下手機會彈出確認信息,點擊確認后,手機端會發送一些message,此時pass選項亮顯,則pass,否則fail,如圖6,圖7所示。
圖6 PC message 圖7 手機截圖
Charging Constraints
拔掉USB,然后“START TEST”亮顯,點擊“START TEST”,等待幾秒鍾,第一個case顯示綠色,然后插入USB,等待幾秒鍾,第二條case亮顯,點擊pass,否則點擊fail。
Connectivity Constraints
關閉WiFi和數據流量,“START TEST”亮顯,點擊“START TEST”,等待幾秒鍾,底下三條case全部顯示綠色,點擊pass,否則點擊fail。
Idle Mode Constraints
關閉屏幕,再次打亮屏幕,“START TEST”亮顯,點擊“START TEST”,等待幾秒鍾,底下兩條case全部顯示綠色,點擊pass,否則點擊fail。
Battery Saving Mode Test
點擊第一個“LAUNCH SETTINGS”,打開Location,返回到cts-verifier,點擊第二個“LAUNCH SETTINGS”,把location mode選為“Battery saving”,返回到cts-verifier,底下四條case都顯示綠色,點擊pas,否則點擊fail。
Device Only Mode Test
點擊第一個“LAUNCH SETTINGS”,打開Location,如果之前location就是打開狀態,那第一個“LAUNCH SETTINGS”則是灰顯的。直接點擊第二個“LAUNCH SETTINGS”,把location mode選為“Device only”,返回到cts-verifier,底下四條case都顯示綠色,點擊pas,否則點擊fail。
High Accuracy Mode Test
點擊第一個“LAUNCH SETTINGS”,打開Location,如果之前location就是打開狀態,那第一個“LAUNCH SETTINGS”則是灰顯的。直接點擊第二個“LAUNCH SETTINGS”,把location mode選為“High accuracy”,返回到cts-verifier,底下四條case都顯示綠色,點擊pas,否則點擊fail。
Location Mode Off Test
點擊 “LAUNCH SETTINGS”,關閉Location,返回到cts-verifier,底下四條case都顯示綠色,點擊pas,否則點擊fail。
Device Owner Provisioning
點擊“Device owner negative test”,點擊“START PROVISIONING”,彈出顯示“The device is already set up”的對話框后,點擊OK,點擊pass,否則點擊fail。
Bluetooth Test
該功能是測試手機藍牙的,需要另外一台安裝了CtsVerifier.apk的手機(暫且叫做Refer)與測試機一起,分別進行server和client,測試相關的case。如果5項測試全部pass, 則點擊PASS,否則點擊Fail。
Toggle Bluetooth
點擊“ENABLE BLUETOOTH”,彈出對話框,選擇“ALLOW”,藍牙被打開。點擊“DISABLE BLUETOOTH”,藍牙被關閉,PASS亮顯,點擊pass,否則fail。
Insecure Client
Refer手機打開Insecure Server,測試機點擊“SCAN FOR DEVICES”,搜索到refer之后,點擊refer,連接即可,點擊pass,如果沒有搜到,建議把client和server重新開關,多試幾次。
Insecure Server
測試機點擊進入 Insecure Server,Refer手機打開Insecure Client,點擊“SCAN FOR DEVICES”,搜索到測試機后,點擊refer,連接即可,則測試機點擊pass,如果沒有搜到,建議把client和 server重新開關,多試幾次。
Secure Client
與Insecure Client操作一樣,只是搜到之后要輸入配對密碼。
Secure Server
與Insecure Server操作一樣,只是搜到之后要輸入配對密碼。
Wi-Fi Direct Test
該功能是測試手機WiFi的,需要另外一台安裝了CtsVerifier.apk的手機(暫且叫做Refer)與測試機一起,分別進行server和client或者requester和responder,測試相關的case。如果6項測試全部pass, 則點擊PASS,否則點擊Fail。
GO Negotiation Responder Test
測試原理同藍牙相似。
GO Negotiation Requester Test
測試原理同藍牙相似。
Group Owner Test
測試原理同藍牙相似。
Group Client Test
測試原理同藍牙相似。
Service Discovery Responder Test
測試原理同藍牙相似。
Service Discovery Requerter Test
測試原理同藍牙相似。
CA Cert Notification Test
這個測試檢查,當安裝CA 證書時,是否有用戶通知,里面的按鈕依次點擊,全部有通知用戶的對話框彈出,即為pass,否則fail。
CA Cert Notification on Boot Test
點擊“CHECK CREDENTIALS”,查看安裝的證書,然后點擊“INSTALL CREDENTIAL”,返回到cts-verifier,點擊pass。
Notification Attention Management Test
測試之前需要按如下步驟設置:Settings–>Sound & notification –> Interruptions –> “Calls/messages from” –>”Starred contacts only”
1.點擊第一個“LAUNCH SETTINGS”,打開“Notification access”,如果之前Notification access處於打開狀態,則直接進行下一步操作。
2.調節音量鍵,在音量顯示界面,選擇“None”,返回到cts-verifier,點擊“I’M DONE”,等待十秒左右,底下一條case變綠。
3. 再次調節音量鍵,在音量顯示界面,選擇“All”,返回到cts-verifier,點擊“I’M DONE”,等待一分鍾左右,底下9條case變綠。
3. 第三次調節音量鍵,在音量顯示界面,選擇“Priority”,返回到cts-verifier,點擊“I’M DONE”,等待十秒鍾左右,底下2條case變綠,Pass亮顯,則pass,否則fail。
Notification Listener Test
點擊第一個“LAUNCH SETTINGS”,打開“Notification access”,返回cts-verifier,等待十秒左右,底下五條case全部變綠。點擊第二個“LAUNCH SETTINGS”, 關閉“Notification access”,返回cts-verifier,底下兩條case全部變綠,則pass,否則fail。
Data Backup Test
第一次進入本項測試時,會彈出一個對話框(英文測試說明),直接點擊OK。
點擊Generate Test Data 按鈕后會彈出一個對話框,點擊Settings 按鈕進入備份,設置勾選Back up my data 如圖(如果沒有該項選項,請聯系開放關閉宏),如圖8所示。
圖8 Data backup
勾選后按返回按鈕回到cts-verifier,再次點擊Generate Test Data 按鈕,在彈出框點擊OK 按鈕並截圖。
運行如下命令(可在XP 或Ubuntu 下運行):
adb shell bmgr enable true
adb shell bmgr transport
android/com.android.internal.backup.LocalTransport
adb shell bmgr run
adb uninstall com.android.cts.verifier
adb install APK path
再次打開cts-verifier 進入Data Back Test 查看各項數值與保存圖片中的數值是否一致,如果一致則點擊PASS,否則Fail!
此測試檢查Widget 框架的一些基本特征。為了進行測試,長按主屏幕任意位置,調出添加widgets的功能點擊並添加名為CTS-verifier 的小部件到主屏幕。按照該插件的說明進行測試:
1. 點擊cts-verifier 小部件中的Start Test 按鈕。
2. 驗證小部件的高度、寬度近似值。
3. 實時驗證小部件的高度、寬度近似值(長按小部件后,可拖放改變該小部件大小)。
4. 直接Pass
5. 直接Pass
Projection Cube Test
點擊進入,看到兩個立方體轉動,用手點擊,且有立方體爆炸,則pass,否則fail。
Projection Multitouch Test
點擊進入,一個手指點擊屏幕,出現圓點,另外一個手指也點擊屏幕,出現第二個圓點,並且圓點隨着兩根手指的移動而移動,則pass,否則fail。
Projection Offscreen Activity
按Lock鍵關閉屏幕,五秒鍾之后手機會震動,之后按Lock鍵打亮屏幕,不要提前打亮屏幕,否則case有可能fail掉。顯示“Success:xxxxx”,pass鍵亮顯,則pass,否則fail。
Projection Scrolling List Test
能正常滑動屏幕上的50個item,則pass,否則fail。
Projection Video Playback Test
進入之后屏幕有白色矩形在閃,並伴隨有嘀嘀聲,則pass,否則fail。
Projection Widget Test
點擊Up和Down鍵能亮顯button按鈕,並且手動點擊button按鈕,也能亮顯,則pass,否則fail。
Keyguard Password Verification
點擊“SET PASSWORD”設置一個包含數字與字母的密碼,長度要求至少9 位。
點擊“CHANGE PASSWORD” 修改密碼。
SUID File Scanner
點擊OK 會自動進行掃描,若符合測試要求掃描完成后會顯示run-as 的綠色提示,即可點擊左下角的pass 按鈕,通過該項測試。
Accelerometer Measurement Tests
該測試主要測試加速器功能,主要分為六個步驟。
1.水平放置到桌面上,屏幕朝上,點擊Next。
2.水平放置到桌面上,點擊Next 后,迅速翻轉手機使屏幕朝下,5s 左右后翻轉手機查看結果(一般會有一聲提示音)。
3.手機右側邊緣置於水平面,手機背部靠於垂直處,點擊NEXT。查看結果。
4.手機左側邊緣置於水平面,手機背部靠於垂直處,點擊NEXT。查看結果。
5.手機頂部邊緣置於水平面,手機背部靠於垂直處,點擊NEXT。查看結果。
6.手機底部邊緣置於水平面,手機背部靠於垂直處,點擊NEXT。查看結果。
CTS Sensor Batching Tests
測試步驟如下:
1. 開啟飛行模式。
2. 關閉“Adaptive Brightness”。
3. 關閉“Auto-rotate screen”。
4. 關閉“Stay awake”。
5. 關閉“Location”。
6. 把手機置於水平桌面,然后點擊“Next”,這時手機屏幕變黑,等待幾分鍾,等測試完畢,手機會發出嘀的一聲,屏幕變亮,測試完成。在手機最底部會顯示測試結果(Tests passed: xx, Tests skipped: xx, Tests failed:11),如果Tests skipped: 0, Tests failed:0, 則pass, 否則fail。
CTS Sensor Integration Tests
同上。
CTS Single Integration Test
同上。
Gyroscope Measurement Test
該測試主要測試陀螺儀功能,主要分為六個步驟。
1. 水平放置到桌面上,屏幕朝上,點擊Next。
2. 水平放置到桌面上,點擊Next 后,迅速翻轉手機使屏幕朝下,5s 左右后翻轉手機查看結果(一幫會有一聲提示音)。
3. 手機右側邊緣置於水平面,手機背部靠於垂直處,點擊NEXT,查看結果。
4. 手機左側邊緣置於水平面,手機背部靠於垂直處,點擊NEXT,查看結果。
5. 手機頂部邊緣置於水平面,手機背部靠於垂直處,點擊NEXT,查看結果。
6. 手機底部邊緣置於水平面,手機背部靠於垂直處,點擊NEXT,查看結果。
Magnetic Field Measurement Tests
該case在8個不同方向測試磁場功能,請測試時盡量遠離外界磁場。如果測試失敗,建議去戶外進行測試。
Sensor Batching Tests
測試步驟如下:
1. 開啟飛行模式。
2. 關閉“Adaptive Brightness”。
3. 關閉“Auto-rotate screen”。
4. 關閉“Stay awake”。
5. 關閉“Location”。
6. 點擊“Next”開始測試,在屏幕前方一直揮手,直到出現測試結果,再次點擊“Next”開始下一條測試,按提示,仍然是在屏幕前方一直揮手……,請仔細查看每次點擊Next之后彈出來的操作說明,之后的幾條case,應該是,拿着手機走動。
Significant Motion Tests
點擊“Next”,幾秒鍾之后,出現測試結果,如果背景為綠色,則pass,紅色則fail,黃色則not support。
Streaming Video Quality Verifier
由於google問題,測試該項時請適當連接VPN。
順序點擊播放視頻,若視頻能正常流暢播放,則可點擊左下角的pass 按鈕,
通過該項測試,若六段視頻均能通過測試則點擊左下角的pass 按鈕,通過該測試。
Cts Verifier 測試結果的處理
做完所有case之后點擊cts-verifier主界面右上角的保存按鈕,可到/sdcard/ctsVerifierReports中查看測試結果,測試結果文件名類似“ctsVerifierReport-2015.03.25-17.09.01-Rockchip-sofia3gr-sofia3gr-LRX22G.zip”。
可以參看android-cts-verifier-4.4_r3測試辦法總結:
http://wenku.baidu.com/link?url=MVuUeCknWWjhcxmKC827gVVV7oYgPcJ36eGdf9NJyn4Lb_F-rgXjk0YfydSyEjy1eXPIoWj2e_rQ50u8HPKqnAiK5hoqASeCRJAoC1jH_l3