zoukankan      html  css  js  c++  java
  • 手机大厂必备测试技能-CTS 兼容测试

    何为CTS?

    相信小伙伴们都有用过各种款式的Android手机,如小米、魅族、华为、oppo、vivo,虽然他们的页面长的都不太一样,比如小米的长这样:

    魅族的:

    oppo的:

    还有垂死挣扎的锤子...

    但是这些手机其实都是搭载的Android系统,只不过国内的手机厂商在原生Android的基础上进行修改/定制。其实原生的Android长这样:

    这么多手机厂商都要改造成自己的UI,甚至要对Android底层进行改动,难免不会改出什么问题。所以Google为了这些定制的系统能够符合统一的规范、兼容Android底层的API,就引入了CTS测试。

    以下是其官方介绍

    Compatibility Test suite系列兼容测试,Google定义了一个兼容性规范(Compatible Definition),而CTS就是为了确保某个测试符合该规范。从而基于Android的应用程序能在基于同一个api版本的设备上面运行。通过CTS测试的device可以获得android的商标,并且享受android market的权限。

    为什么需要CTS?

    由于Google的开放策略,越来越多的终端厂商以及互联网企业加入到手机终端商的领域,加剧了Android移动终端的碎片化,导致出现基于Android客户端的App产品因为兼容性差,不能在用户手机上正常安装、运行错误、强制退出等问题,严重影响用户的体验。

    通过CTS测试,可以保证

    • 让APP提供更好的用户体验,用户可以选择更多的适合自己设备的APP;
    • 让开发者设计更高质量的APP;
    • 通过CTS的设备可以运行Android market;

    CTS配置

    下载和配置CTS

    官网:http://source.android.com/compatibility/downloads.html

    注意:此网站需要FQ

    下载文件:(Android 4.4为例)

    • Android 4.4 Compatibility Definition Document (CDD)
    • Android 4.4 R3 Compatibility Test Suite (CTS) - ARM
    • Android 4.4 R3 Compatibility Test Suite (CTS) - x86
    • Android 4.4 R3 CTS Verifier - ARM
    • Android 4.4 R3 CTS Verifier - x86
    • Compatibility Test Suite (CTS)
    • User Manual
      CTS Media 1.1

    配置CTS:

    • 解压Compatibility Test Suite对应的压缩包
    • 将解压出来的android-cts文件夹,复制到SDK根目录中

    CTS目录结构说明

    CTS测试流程

    测试准备

    step1:测试环境:

    • linux系统(最好是64位的ubuntu)

    • 需正确配置JAVA JDK , android SDK

    step2:工具准备:

    • 将下载的CTS包解压到/data目录
    • 下载需要进行测试的软件版本(ROM)
    • 插入可用的SD卡,容量最好是大于1G
    • 插入可用的Sim卡,如果为双卡版本,需确保卡一的卡槽有可用的Sim卡.
    • 写入合法的IMEI号

    step3:手机配置:

    • 手机恢复出厂设置(Settings→Backup and reset→Factory data reset)
    • 确保SD中有足够的空间(大于1G),可将SD格式化清空。
    • 确保手机里没有Google账号或者其他账号存在
    • 确保日期和时间的正确(开了Wifi或者数据连接以后会自动更新时间,时区选默认的)
    • 设置屏幕为常亮(Settings→Display→Sleep→Never)
    • 设置无锁屏(Settings→Security→Set up screen lock→None)
      安装CtsDeviceAdmin.apk,(在android-cts/repository/testcases下,可用adb install CtsDeviceAdmin.apk),并进入Settings→Security→Device administrators开启里面的两个包

    测试执行

    进入到/android-cts/tools目录输入:

    ./ cts-tradefed
    

    进入测试环境

    再执行run cts --plan CTS进行整体测试

    run cts -c android.app.cts.SystemFeaturesTest
    

    测试过程持续时间超过10+小时

    测试结果会生成在android-cts/repository/results目录中的
    testResult.xml

    Log日志文件位于android-cts/repository/logs目录下

    CTS操作基本命令

    分类 命令 说明
    Host help 基本命令帮助说明
    Host help all 全部命令帮助说明
    Host exit 退出控制台
    Run run cts --plan test_plan_name 运行指定计划
    Run run cts --package/-p 运行指定包
    Run run cts --class/-c [--method/-m] 运行指定方法
    Run run cts --continue-session session_ID 继续运行指定回话ID
    Run run cts [options] --serial/-s device_ID 运行指定设备
    Run run cts [options] --shards number_of_shards 运行多个设备
    Run run cts --help/--help-all 运行帮助
    List l/list d/devices 列出连接的设备
    List l/list packages 列出所有测试包
    List l/list p/plans 列出所有测试计划
    List l/list r/results 列出已经保存的结果

    CTS测试结果分析

    测试报告的fail项分为两类:

    • 一类是可以waive的,可以waive的项是谷歌自身的原因,经谷歌同意可以不用处理的项。另一类是需要我们分析修复的。 关于可以waive的选项,可以waive的选项一般会有一个表格维护,这个表格会不定时更新,可主动向相关人员索取。

    • 如果不是google waive项,请查看log,在异常log的附近会有一些相关的信息,看能否找到原因。如果在之前的版本上测试PASS,可定位一下OK版本和fail版本之间的代码提交,进而缩小排除范围。有些时候想在测试包里面加一些LOG信息,可以自行编译工程代码的CTS,用来测试调试。若实在不能分析,可向平台商(如MTK/Qualcomm)寻求帮助。

  • 相关阅读:
    word中怎么插入各种水平分隔线?
    Shell脚本--磁盘空间有超过80%时发信息
    Linux、Ubuntu 系统安装 MYSQL-python 失败解决方案
    安卓 okhttp 拦截重复请求
    安卓 drawable xml 实现多边框背景
    安卓 实现IOS阻尼回弹效果
    安卓 TextToSpeech: speak failed: not bound to TTS engine
    安卓 验证码输入框InputCode(同时支持密码输入)
    安卓 viewpager2动态设置滚动速度
    安卓 节点进度条NodeProgressBar
  • 原文地址:https://www.cnblogs.com/yyoba/p/12170333.html
Copyright © 2011-2022 走看看