TA的每日心情 | 奋斗 2021-8-6 16:14 |
---|
签到天数: 1 天 连续签到: 1 天 [LV.1]测试小兵
|
一.说到细节,首先介绍一下流程。然后再从流程的项目来讲。
(现在假设Host端环境已经架设好,准备进行测试,基本流程如下)
开始
1.确认目标Image
2.下载并解压缩目标Image
3.可以正常开机?
4.基本功能正常?
5.进行手机环境准备
6.确保USB连接正常
7.Host输入命令,运行CTS测试
8.等待生成CTS报告
9.报告结果符合预期?
11.发出CTS报告
End
10.调试环境,进行retry
yes
no
yes
no
yes
no
二.下面根据流程,来分析细节
1. 确认目标Image
这个来源比较多。可以是:
- 上级安排
- 定期测试
- 有特定的change需要验证
- 等等
可以根据来源不同,来判断优先级。
2.下载,并解压缩目标Image
这个没有太多好说的,主要注意以下两条:
- 不同项目的Image,最好放在不同的文件夹下,避免混淆
- Image 一般比较大,最好准备1T以上的硬盘
3.可以正常开机?
由于有些版本的Image,自身问题。
导致:开机卡logo;开机进fastboot;卡机进android无限重启等现象。
如果无法正常开机,就需要先debug,再换版测试。
4.基本功能正常?
在项目初期进行测试的时候,容易出现基本功能,比如Bluetooth,WiFi,Camera等功能不可用的情况。
刷完机后,最好进行基本功能验证后再测试。
如果有问题,就再换版测试。
5.进行手机环境准备
这个前面提过,官方写的非常详细。我粘贴一下:
Android设备设置
工厂数据重置设备:设置>备份和重置>出厂设置复位
警告:这将清除设备中的所有用户数据。
将设备的语言设置为英语(美国):设置>语言和输入>语言
如果设备上有GPS或Wi-Fi /蜂窝网络功能,请打开位置设置:设置>位置>开
连接到支持IPv6的Wi-Fi网络,可以将被测设备(DUT)视为隔离客户端(请参阅上面的物理环境部分),
并具有Internet连接:设置> Wi-Fi
确保设备上没有设置锁定模式或密码:设置>安全性>屏幕锁定>无
在设备上启用USB调试:设置>开发人员选项> USB调试。
* 注意:在Android 4.2及更高版本上,默认情况下隐藏开发人员选项。要使它们可用,请转到设置>关于
手机,然后点击构建号码 七次。返回上一个屏幕以查找开发人员选项。有关其他详细信息,请参阅启用
设备上开发人员选项。*
确保时间设置为12小时格式:设置>日期和时间>使用24小时格式>关闭
选择:设置>开发人员选项>保持清醒>打开
选择:设置>开发人员选项>允许模拟位置>打开
注意:此模拟位置设置仅适用于Android 5.x和4.4.x.
选择:设置>开发人员选项>通过USB验证应用程序>关闭
注意: Android 4.2中需要验证应用步骤。
启动浏览器并关闭任何启动/设置屏幕。
连接用于使用USB电缆测试设备的台式机
注意:将运行Android 4.2.2或更高版本的设备连接到计算机时,系统会显示一个对话框,询问是否接受
允许通过此计算机进行调试的RSA密钥。选择允许USB调试。
在设备上安装和配置帮助应用程序。
注意:对于CTS版本2.1 R2至4.2 R4,请设置您的设备(或仿真器)以运行辅助功能测试:
adb install -r android-cts/repository/testcases/CtsDelegatingAccessibilityService.apk
在设备上,启用:设置>辅助功能>辅助功能>委托辅助功能服务
注意:对于7.0之前的CTS版本,在声明的设备上 android.software.device_admin,将您的设备设置为运
行设备管理测试:
adb install -r android-cts/repository/testcases/CtsDeviceAdmin.apk
在设置>安全>选择设备管理员,启用两个 android.deviceadmin.cts.CtsDeviceAdminReceiver*设备管理
员。确保 android.deviceadmin.cts.CtsDeviceAdminDeactivatedReceiver和任何其他预装设备管理员保持禁用
将CTS媒体文件复制到设备,如下所示
注意:对于CTS 2.3 R12及更高版本,如果设备支持视频编解码器,则必须将CTS媒体文件复制到设备。
cd到媒体文件下载并解压缩到的路径。
更改文件权限: chmod u+x copy_media.sh
运行copy_media.sh:
要将剪辑复制到720x480的分辨率,请运行: ./copy_media.sh 720x480
如果您不确定最大分辨率,请尝试./copy_media.sh all复制所有文件。
如果adb下有多个设备,请将-s(serial)选项添加到末尾。例如,要使用串行1234567将设备复制到720
x480,请运行:./copy_media.sh 720x480 -s 1234567
6.确保USB连接正常
这个确实很重要。
因为USB供电和数据线本身的原因,会导致设备offline,进而导致测试失败。
所以建议如下:
使用比较新的,正规的USB数据线;
使用电脑的后置USB口连接数据线;
使用USB-hub时,选择自带电源功率大的类型。
7.Host输入命令,运行CTS测试
参考如下:
链接: https://pan.baidu.com/s/1nv1JPot 密码: 6hw5
8.等待生成CTS报告
根据以往经验,在Android 7.0上3台测试机shared CTS测试需要2天,也就是2x3=6。4台机器大概是1.5天。
其他情况下,自己评估一下吧。
在Android 7.0以下的版本,3台测试机shared CTS测试只需要1天。其他情况下,自己算一下吧。
9.报告结果符合预期?
首先介绍几个概念:
-CTS理论上需要所有的测项全部Pass,才能获得Google的approve,允许Android 手机出货。
-实际上,由于CTS tool检查机制,以及security path的更新,会导致一些信息不同步的问题。简单的说,
就是可能上了Google提供的新版security path,而CTS检查的是旧的值。就会造成与预期不符的CTS Fail。
这一类fail会得到Google waive。
-除了上面提到的情况,开发过程中的修改,也会与CTS要求不符,导致fail,这种fail就需要进行测试,及
时发现,及时解决。
那么怎么样是符合预期呢?
1.测完所有的测试项目。比如说CTS 7.1r9有443486项,295个Moudle。这些需要全部执行。
2.fail项只能包含如上提到的,经过Google waive 的fail。
10.调试环境,进行retry
实际执行CTS测试的时候往往状况比较多,比如说会出现如下情况:
测试机掉线(自动关机,USB 连结超时,设备被上锁等等)
测试执行到一半停下来了
网络中断
等等
遇到这类情况,就需要认为的进行USB重连和调试网络的操作。
给测试机做factory reset和重烧 syestem.img是比较常用的方法。
11.发出CTS报告
得到符合预期的CTS报告,就可以准备打包送给Google了,这里补充两点:
发出之前确认报告的完整性
Google只接受 .zip 格式的报告
开发初期的CTS测试:
开发初期由于android系统和CTS框架的稳定性问题,往往会碰到一些问题,比如说:
测试机在测试过程中关机
USB断线
测试机不足
CTS 不能retry
项目初期Image更新速度快
鉴于有上面这些问题,所以在开发初期的时候,建议采取一些策略:
拿一版基本功能ready的Image进行测试,直到跑出完整的report。顺便也能直到这一版CTS tool的测项数
量。并在今后的版本上对failed项目进行retry,直到结果的failed项目少于100时,再去整测CTS。
CTS测试bug复验:
CTS测试项目数量庞大,整测消耗的时间也比较长。
在旧版本的fail项目,修复后需要在新版上验证,再进行送测。
在复验的时候,一般有两种情况:
1.别人跑了一版CTS,结果有fail项。自己再测试一下,排除环境问题。
这时候需要拿到跑fail生成的report,复制到对应CTS环境的results路径下,并解压。
然后,刷好对应Image,进行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.旧版结果有fail项。新版需要确认是否修复。
对于这种情况,因为版本号不一样所以retry命令不再适用了,当然非得用retry命令也是可以的,但是需要
改reprot里的build-fingerprint。
不过不建议这么做。因为有更方便的方法,就是用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 <刚才创建的subplan name> 即可。是不是非
常方便呢。
|
|