Android相容性測試CTS Verifier-環境搭建、測試執行、結果分析
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 Framework Test
此測試檢查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 按鈕,通過該測試。