CTS 测试细节
一.說到細(xì)節(jié),首先介紹一下流程。然后再從流程的項(xiàng)目來講。
(現(xiàn)在假設(shè)Host端環(huán)境已經(jīng)架設(shè)好,準(zhǔn)備進(jìn)行測試,基本流程如下)
Created with Rapha?l 2.1.0https://source.android.com/compatibility/?hl=zh-cn開始https://source.android.com/compatibility/?hl=zh-cn1.確認(rèn)目標(biāo)Image2.下載并解壓縮目標(biāo)Image3.可以正常開機(jī)?4.基本功能正常?5.進(jìn)行手機(jī)環(huán)境準(zhǔn)備6.確保USB連接正常7.Host輸入命令,運(yùn)行CTS測試8.等待生成CTS報告9.報告結(jié)果符合預(yù)期?11.發(fā)出CTS報告http://www.google.com Endhttp://www.google.com 10.調(diào)試環(huán)境,進(jìn)行retryyesnoyesnoyesno二.下面根據(jù)流程,來分析細(xì)節(jié)
1. 確認(rèn)目標(biāo)Image
這個來源比較多。可以是:
- 上級安排
- 定期測試
- 有特定的change需要驗(yàn)證
- 等等
可以根據(jù)來源不同,來判斷優(yōu)先級。
2.下載,并解壓縮目標(biāo)Image
這個沒有太多好說的,主要注意以下兩條:
- 不同項(xiàng)目的Image,最好放在不同的文件夾下,避免混淆
- Image 一般比較大,最好準(zhǔn)備1T以上的硬盤
3.可以正常開機(jī)?
由于有些版本的Image,自身問題。
導(dǎo)致:開機(jī)卡logo;開機(jī)進(jìn)fastboot;卡機(jī)進(jìn)android無限重啟等現(xiàn)象。
如果無法正常開機(jī),就需要先debug,再換版測試。
4.基本功能正常?
在項(xiàng)目初期進(jìn)行測試的時候,容易出現(xiàn)基本功能,比如Bluetooth,WiFi,Camera等功能不可用的情況。
刷完機(jī)后,最好進(jìn)行基本功能驗(yàn)證后再測試。
如果有問題,就再換版測試。
5.進(jìn)行手機(jī)環(huán)境準(zhǔn)備
這個前面提過,官方寫的非常詳細(xì)。我粘貼一下:
Android設(shè)備設(shè)置
警告:這將清除設(shè)備中的所有用戶數(shù)據(jù)。
* 注意:在Android 4.2及更高版本上,默認(rèn)情況下隱藏開發(fā)人員選項(xiàng)。要使它們可用,請轉(zhuǎn)到設(shè)置>關(guān)于手機(jī),然后點(diǎn)擊構(gòu)建號碼 七次。返回上一個屏幕以查找開發(fā)人員選項(xiàng)。有關(guān)其他詳細(xì)信息,請參閱啟用設(shè)備上開發(fā)人員選項(xiàng)。*
注意:此模擬位置設(shè)置僅適用于Android 5.x和4.4.x.
注意: Android 4.2中需要驗(yàn)證應(yīng)用步驟。
注意:將運(yùn)行Android 4.2.2或更高版本的設(shè)備連接到計算機(jī)時,系統(tǒng)會顯示一個對話框,詢問是否接受允許通過此計算機(jī)進(jìn)行調(diào)試的RSA密鑰。選擇允許USB調(diào)試。
注意:對于CTS版本2.1 R2至4.2 R4,請設(shè)置您的設(shè)備(或仿真器)以運(yùn)行輔助功能測試:
adb install -r android-cts/repository/testcases/CtsDelegatingAccessibilityService.apk
在設(shè)備上,啟用:設(shè)置>輔助功能>輔助功能>委托輔助功能服務(wù)
注意:對于7.0之前的CTS版本,在聲明的設(shè)備上 android.software.device_admin,將您的設(shè)備設(shè)置為運(yùn)行設(shè)備管理測試:
adb install -r android-cts/repository/testcases/CtsDeviceAdmin.apk
在設(shè)置>安全>選擇設(shè)備管理員,啟用兩個 android.deviceadmin.cts.CtsDeviceAdminReceiver*設(shè)備管理員。確保 android.deviceadmin.cts.CtsDeviceAdminDeactivatedReceiver和任何其他預(yù)裝設(shè)備管理員保持禁用
注意:對于CTS 2.3 R12及更高版本,如果設(shè)備支持視頻編解碼器,則必須將CTS媒體文件復(fù)制到設(shè)備。
cd到媒體文件下載并解壓縮到的路徑。
更改文件權(quán)限: chmod u+x copy_media.sh
運(yùn)行copy_media.sh:
要將剪輯復(fù)制到720x480的分辨率,請運(yùn)行: ./copy_media.sh 720x480
如果您不確定最大分辨率,請嘗試./copy_media.sh all復(fù)制所有文件。
如果adb下有多個設(shè)備,請將-s(serial)選項(xiàng)添加到末尾。例如,要使用串行1234567將設(shè)備復(fù)制到720x480,請運(yùn)行:./copy_media.sh 720x480 -s 1234567
6.確保USB連接正常
這個確實(shí)很重要。
因?yàn)閁SB供電和數(shù)據(jù)線本身的原因,會導(dǎo)致設(shè)備offline,進(jìn)而導(dǎo)致測試失敗。
所以建議如下:
使用比較新的,正規(guī)的USB數(shù)據(jù)線;
使用電腦的后置USB口連接數(shù)據(jù)線;
使用USB-hub時,選擇自帶電源功率大的類型。
7.Host輸入命令,運(yùn)行CTS測試
參考如下:
鏈接: https://pan.baidu.com/s/1nv1JPot 密碼: 6hw5
8.等待生成CTS報告
根據(jù)以往經(jīng)驗(yàn),在Android 7.0上3臺測試機(jī)shared CTS測試需要2天,也就是2x3=6。4臺機(jī)器大概是1.5天。其他情況下,自己評估一下吧。
在Android 7.0以下的版本,3臺測試機(jī)shared CTS測試只需要1天。其他情況下,自己算一下吧。
9.報告結(jié)果符合預(yù)期?
首先介紹幾個概念:
-CTS理論上需要所有的測項(xiàng)全部Pass,才能獲得Google的approve,允許Android 手機(jī)出貨。
-實(shí)際上,由于CTS tool檢查機(jī)制,以及security path的更新,會導(dǎo)致一些信息不同步的問題。簡單的說,就是可能上了Google提供的新版security path,而CTS檢查的是舊的值。就會造成與預(yù)期不符的CTS Fail。這一類fail會得到Google waive。
-除了上面提到的情況,開發(fā)過程中的修改,也會與CTS要求不符,導(dǎo)致fail,這種fail就需要進(jìn)行測試,及時發(fā)現(xiàn),及時解決。
那么怎么樣是符合預(yù)期呢?
1.測完所有的測試項(xiàng)目。比如說CTS 7.1r9有443486項(xiàng),295個Moudle。這些需要全部執(zhí)行。
2.fail項(xiàng)只能包含如上提到的,經(jīng)過Google waive 的fail。
10.調(diào)試環(huán)境,進(jìn)行retry
實(shí)際執(zhí)行CTS測試的時候往往狀況比較多,比如說會出現(xiàn)如下情況:
- 測試機(jī)掉線(自動關(guān)機(jī),USB 連結(jié)超時,設(shè)備被上鎖等等)
- 測試執(zhí)行到一半停下來了
- 網(wǎng)絡(luò)中斷
- 等等
遇到這類情況,就需要認(rèn)為的進(jìn)行USB重連和調(diào)試網(wǎng)絡(luò)的操作。
給測試機(jī)做factory reset和重?zé)?syestem.img是比較常用的方法。
11.發(fā)出CTS報告
得到符合預(yù)期的CTS報告,就可以準(zhǔn)備打包送給Google了,這里補(bǔ)充兩點(diǎn):
- 發(fā)出之前確認(rèn)報告的完整性
- Google只接受 .zip 格式的報告
開發(fā)初期的CTS測試:
開發(fā)初期由于android系統(tǒng)和CTS框架的穩(wěn)定性問題,往往會碰到一些問題,比如說:
- 測試機(jī)在測試過程中關(guān)機(jī)
- USB斷線
- 測試機(jī)不足
- CTS 不能retry
- 項(xiàng)目初期Image更新速度快
鑒于有上面這些問題,所以在開發(fā)初期的時候,建議采取一些策略:
拿一版基本功能ready的Image進(jìn)行測試,直到跑出完整的report。順便也能直到這一版CTS tool的測項(xiàng)數(shù)量。并在今后的版本上對failed項(xiàng)目進(jìn)行retry,直到結(jié)果的failed項(xiàng)目少于100時,再去整測CTS。
CTS測試bug復(fù)驗(yàn):
CTS測試項(xiàng)目數(shù)量龐大,整測消耗的時間也比較長。
在舊版本的fail項(xiàng)目,修復(fù)后需要在新版上驗(yàn)證,再進(jìn)行送測。
在復(fù)驗(yàn)的時候,一般有兩種情況:
1.別人跑了一版CTS,結(jié)果有fail項(xiàng)。自己再測試一下,排除環(huán)境問題。
這時候需要拿到跑fail生成的report,復(fù)制到對應(yīng)CTS環(huán)境的results路徑下,并解壓。
然后,刷好對應(yīng)Image,進(jìn)行retry。
retry命令介紹如下:
-r, –retry [session ID] retry a previous session.
–retry-type used with retry, retry tests of a certain status. Possible values include “failed”, “not_executed”, and “custom”. Valid values: [FAILED, NOT_EXECUTED, CUSTOM]
2.舊版結(jié)果有fail項(xiàng)。新版需要確認(rèn)是否修復(fù)。
對于這種情況,因?yàn)榘姹咎柌灰粯铀詒etry命令不再適用了,當(dāng)然非得用retry命令也是可以的,但是需要改reprot里的build-fingerprint。
不過不建議這么做。因?yàn)橛懈奖愕姆椒?#xff0c;就是用add subplan 命令。
add subplan命令介紹如下:
Add:
a/add s/subplan: create a subplan from a previous session
Options:(–是兩個-,這里有顯示問題,也可以在tradefed下敲help add查看幫助)
–session : The session used to create a subplan.
–name/-n : The name of the new subplan.
–result-type : Which results to include in the subplan. One of passed, failed, not_executed. Repeatable.
按照上面的方法新建subplan,然后使用: run cts –subplan <剛才創(chuàng)建的subplan name> 即可。是不是非常方便呢。
總結(jié)
- 上一篇: 使用VScode调试与编写bash脚本
- 下一篇: 竞品分析思维导图