CTS bug排除
来源:互联网 发布:php post接收 编辑:程序博客网 时间:2024/04/28 10:44
✿为什么要进行cts测试 Android兼容性测试(CTS)和连带的兼容性定义文档(CDD),是一个确保终端设备与特定版本Android兼容的自管理程序。CTS测试集包含大约24,000个在Android设备上运行的测试用例,这些用例分别针对电话、图形、相机、GPS、触摸屏、无线网等功能。Google针对每个主要Android版本公布了CDD文档,其中指出了对CTS中每类测试的具体要求。通过CTS测试是访问Android软件市场的必要条件之一。通过CTS测试之后便允许在设备上使用Android商标,它标志着该设备能够良好兼容软件市场中的数十万应用程序。
✿常见问题和解决方案 我在这里不写怎么执行CTS,-p 是什么意思 -t是什么意思,我总结的是在执行 cts_host > start --plan CTS 之后,想all pass 的那些有营养的东西。
❀ testcase timeout 测试某个testcase的时候一直出现 “........”,迟迟没有pass或者fail,等良久出现一个血淋淋的timeout,很让人伤心。有不少人笑嘻嘻的以为timeout 挺好,至少它不是fail。在我看来timeout 比 fail 还恐怖,因为它连进行测试到底是pass还是fail的权利都没有。想不被硬件设备厂商笑话,必须0 timeout ,然后再争取0 fail 。
timeout多数都是由于这个错误造成的:
Exception in thread "Thread-XX" com.android.ddmlib.ShellCommandUnresponsiveException
at com.android.ddmlib.AdbHelper.executeRemoteCommand(AdbHelper.java:408)
at com.android.ddmlib.Device.executeShellCommand(Device.java:276)
at com.android.cts.TestDevice$1.run(TestDevice.java:1718)
解决方案: 这个错误是由于CTS和SDK版本不匹配造成的。倘若用android2.2 SDK 和 android2.2 cts -r6 还是出现了这个问题,那么编译自己工程的sdk (在整体m后,再make sdk),配套官方的cts一起,就可以百分百解决这个问题了。
必须要注意的是,不要用自己的工程代码编译出来的cts(make cts),因为可能编译出来的不是最新的(通常是r1版本)。而google提供的才是最新的,而硬件设备厂商都会信赖最新版本的cts的测试结果。
❀Restarting device ...Restarting ADB... 板子执行几个测试项就停下,让人很郁闷
CTS_INFO >>> Max ADB operations reached. Restarting ADB...
CTS_INFO >>> Restarting device ...
Device(xxxxxxxxxxxxxxxxxxxxxx) disconnected
Test stopped.
Device(xxxxxxxxxxxxxxxxxxxxxx) connected
解决方案: 其实重启adb和板子是正常现象,如果不重启会影响他们的正常工作。但是这样频繁的重启,很影响工作效率。
我们可以控制测试中重启的频率:
修改android-cts/repository/host_config.xml中的 reboots value:
<!-- Number of tests executed between reboots. A value <= 0 disables reboots. -->
<IntValue name="maxTestCount" value="200" />
5000是我测试比较合理的数字,如果不跑全部的cts项23700个test的话,数量不多可以修改为-1,禁止重启。
如果数量过多,则还是重启的好,否则中途adb会卡死停止test。自动化测试,你不会一直盯着它的对吧?
❀java.io.IOException: sad result from adb: closed 倘若中途出现:
java.io.IOException: sad result from adb: closed
00:47 E/ddms: ADB rejected shell command (am instrument -w -e bundle true android.tests.devicesetup/android.tests.getinfo.DeviceInfoInstrument): closed
CTS_ERROR >>> Failed to execute shell command am instrument -w -e bundle true android.tests.devicesetup/android.tests.getinfo.DeviceInfoInstrument on device 0xxxxxxxxxxxx
java.io.IOException: sad result from adb: closed
解决方案: 别担心,重启一下板子就好了。
✿其他fail 因为各个项目差异,所以fail项不同,抛开硬件差异所决定的fail,还有系统工程师为了掩饰别的bug而新增的cts fail bug,我们还需要注意的是:
1.Net相关的testcase ,记得开wifi \ 3G,保持网络联通
2.SMS相关的testcase,记得插SIM卡
3.当I2C上某个设备的testcase没有过,试试禁掉I2C上其他的sensor服务,单一测试,也许会有意外收获
✿常见问题和解决方案 我在这里不写怎么执行CTS,-p 是什么意思 -t是什么意思,我总结的是在执行 cts_host > start --plan CTS 之后,想all pass 的那些有营养的东西。
❀ testcase timeout 测试某个testcase的时候一直出现 “........”,迟迟没有pass或者fail,等良久出现一个血淋淋的timeout,很让人伤心。有不少人笑嘻嘻的以为timeout 挺好,至少它不是fail。在我看来timeout 比 fail 还恐怖,因为它连进行测试到底是pass还是fail的权利都没有。想不被硬件设备厂商笑话,必须0 timeout ,然后再争取0 fail 。
timeout多数都是由于这个错误造成的:
Exception in thread "Thread-XX" com.android.ddmlib.ShellCommandUnresponsiveException
at com.android.ddmlib.AdbHelper.executeRemoteCommand(AdbHelper.java:408)
at com.android.ddmlib.Device.executeShellCommand(Device.java:276)
at com.android.cts.TestDevice$1.run(TestDevice.java:1718)
解决方案: 这个错误是由于CTS和SDK版本不匹配造成的。倘若用android2.2 SDK 和 android2.2 cts -r6 还是出现了这个问题,那么编译自己工程的sdk (在整体m后,再make sdk),配套官方的cts一起,就可以百分百解决这个问题了。
必须要注意的是,不要用自己的工程代码编译出来的cts(make cts),因为可能编译出来的不是最新的(通常是r1版本)。而google提供的才是最新的,而硬件设备厂商都会信赖最新版本的cts的测试结果。
❀Restarting device ...Restarting ADB... 板子执行几个测试项就停下,让人很郁闷
CTS_INFO >>> Max ADB operations reached. Restarting ADB...
CTS_INFO >>> Restarting device ...
Device(xxxxxxxxxxxxxxxxxxxxxx) disconnected
Test stopped.
Device(xxxxxxxxxxxxxxxxxxxxxx) connected
解决方案: 其实重启adb和板子是正常现象,如果不重启会影响他们的正常工作。但是这样频繁的重启,很影响工作效率。
我们可以控制测试中重启的频率:
修改android-cts/repository/host_config.xml中的 reboots value:
<!-- Number of tests executed between reboots. A value <= 0 disables reboots. -->
<IntValue name="maxTestCount" value="200" />
5000是我测试比较合理的数字,如果不跑全部的cts项23700个test的话,数量不多可以修改为-1,禁止重启。
如果数量过多,则还是重启的好,否则中途adb会卡死停止test。自动化测试,你不会一直盯着它的对吧?
❀java.io.IOException: sad result from adb: closed 倘若中途出现:
java.io.IOException: sad result from adb: closed
00:47 E/ddms: ADB rejected shell command (am instrument -w -e bundle true android.tests.devicesetup/android.tests.getinfo.DeviceInfoInstrument): closed
CTS_ERROR >>> Failed to execute shell command am instrument -w -e bundle true android.tests.devicesetup/android.tests.getinfo.DeviceInfoInstrument on device 0xxxxxxxxxxxx
java.io.IOException: sad result from adb: closed
解决方案: 别担心,重启一下板子就好了。
✿其他fail 因为各个项目差异,所以fail项不同,抛开硬件差异所决定的fail,还有系统工程师为了掩饰别的bug而新增的cts fail bug,我们还需要注意的是:
1.Net相关的testcase ,记得开wifi \ 3G,保持网络联通
2.SMS相关的testcase,记得插SIM卡
3.当I2C上某个设备的testcase没有过,试试禁掉I2C上其他的sensor服务,单一测试,也许会有意外收获
- CTS bug排除
- bug排除
- 使用脚本排除bug疑问
- CTS测试入门介绍与bug修改
- 精通 Grails排除 bug,构建可执行文档
- CTS
- cts
- CTS
- CTS
- Android CTS Verifier bug - Streaming Video Quality Verifier
- 全国计算机调试员大赛故障排除中的BUG
- 迄今遇到过最难排除的两个bug
- 学习笔记:改进的waitfree_queue,排除一些bug
- 排除bug的一般性原则。为实践中所总结
- 机器人,电机控制中排除bug的科学过程
- 一个帖子无法打开的bug的排除
- JAVA课程设计-20161223-功能的完善以及BUG排除
- 导航栏item渲染颜色改变bug排除
- ActiveX调用组件时,使用静默执行的方式,不弹出控制台窗口
- c# asp.net winform 隐藏文件夹 文件
- win7远程登录ubuntu11.10
- T-SQL问题解决集锦——数据加解密(2)
- _tprintf(_T("PDF转换成功\n")); 无法输出中文字符
- CTS bug排除
- Win32 多线程的创建方法和基本使用
- 【珍藏】C/C++热门精品资料地址集(110个)
- Android面试准备复习之Android知识点大扫描
- 常用软件整理
- 远程桌面连接,实现复制粘贴
- 个人博客转移至kekezhou.com
- VS2008 CUDA 配置
- java发送Email