Android兼容性测试框架(CTS)手册

了解老码农个人隐私,请看这里:http://www.koulianbing.com/?page_id=12

本文翻译自Android官方的CTS手册android-cts-manual-r4.pdf

Android兼容性测试框架手册

1、为什么需要兼容性测试(以下称CTS)?

1.1、让APP提供更好的用户体验。用户可以选择更多的适合自己设备的APP。让APP更稳定。

1.2、让开发者设计更高质量的APP。

1.3、通过CTS的设备可以运行Androidmarket。

另外,CTS是免费的,而且很简单。

2、怎么样才能让我的设备变成兼容的。

2.1、与AndroidCompatibility Definition文档(以下简称ACD)匹配

先看一下与你的系统版本相匹配的ACD,文档中描述了你需要具备的软件和硬件参数。

2.2、通过CTS测试

CTS是开源的测试框架,使用它来测试你的设备是否具备兼容性。

2.3、提交报告

你可以把测试结果发送给[email protected]。当你提交了一个CTS报告时,你还可以要求访问AndroidMarket.

我们正在准备专门用途测试和认证的网站和相应服务,好了之后会通知大家的。

3、CTS的工作原理

CTS主要包含两个组件:

运行在PC上的测试框架组件。主要用来管理测试用例(testcase)的执行。

运行在设备或模拟器上的测试用例。这些用例用JAVA写成的APK文件。

3.1、工作流程

1、可以从源码编译CTS,也可以从网站下载编译好的CTS

2、安装配置CTS。

3、把设备连接到PC上。

4、运行CTS。CTS会把相应的测试用例(也就是一个APK文件)传送到设备上并通过instrumentation运行,然后记录运行结果,最后删除测试用例。

所有的测试用例执行完毕后,可以参照测试结果重新调整或优化系统。然后继续运行CTS测试。

5、测试通过以后,你可以把CTS生成的结果(就是result下面那个以测试时间命名的.zip文件)提交给[email protected]。

    1. 测试用例的类型

CTS包含下面三种级别:

1、单元级。测试Android平台上的代码单元。比如,一个java.util.HashMap这样的类。

2、功能级。多个API组合而成的一个更高级的功能。

3、程序级。通过运行一个简单的APP来执行一个API集合和Android运行时服务。

未来版本还会包含下面的类型:

1、强度测试。测试系统在高CPU运算之下的稳定性。

2、效率测试。比如每秒渲染的帧数。

3.3、目前的测试覆盖面

目前,为了确保兼容,测试用例覆盖了下面的这些范围

1、Signature

对每个Android产品,都有一些XML文件来描述所有的公开API。CTS包含了一个工具来检测这些API签名中包含的API是否都在系统中被支持。

2、Platform

测试SDK文档中描述的平台API,比如corelibraries,Android Application Framework等。要求这些API可以提供:

正确的类、属性、方法签名、方法行为、错误参数处理方式

3、DalvikVM

专门针对DalvikVm的测试。

4、PlatformData Model

平台通过ContentProvider提供给开发者使用的数据,比如:Contacts,Browser,Settings等。

5、PlatformIntents

平台提供的用于核心功能的Intent。

6、Platformpermission

平台提供的一些重要APP权限

7、PlatformResources

simplevalues,drawables,nine-patch,animations,layouts,styles andthemes,loading alternate resources等

4、配置和使用CTS

4.1、配置CTS

1.6及以上版本才能运行CTS。

解压ZIP包,编辑android-cts/tools/startcts脚本,修改变量SDK_ROOT来与环境相匹配。

例如:

SDK_ROOT=/home/myuser/android-sdk-linux_x86-1.6_r1

即,指向SDK的根目录。

4.2、配置设备

下面的这些说明很重要,配置不当的话可能导致测试超时或测试失败:

1、下载SDK到机器上。

2、你要测试的设备应该运行的是一个userbuild。

3、参考这个链接(http://developer.android.com/guide/developing/device.html)来设置一下你的设备。

4、运行CTS之前,确保你的设备已经烧入了一个userbuild

5、在运行CTS测试之前还需要通过Settings->SpeechSynthesis->Install voice data来下载TTS文件。如果没有安装AndroidMarket的话,需要手动安装。

6、建议你使用一个专门用来测试的Google账户来登录设备。

7、确保设备有一个SD卡,并且SD卡是空的。因为CTS可能修改/删除SD卡上的数据。

8、在设备上做一次恢复出厂设置(Settings->SDCard & phone Storage->Factory data reset)。注意:这会删除设备上的所有用户数据。

9、确保设备没有处在任何lockpattern之下(取消Settings->Security&location->RequirePattern这个选项)

10、确保“ScreenTimeout”被设置为“NeverTimeout”(Settings->Sound&Display->ScreenTimeout应该被设置为“NeverTimeout”)

11、确保“StayAwake”被选中(Settings->Applications->Development->Stayawake)

12、确保Settings->Application->Development->Allowmock locations被设置为true。

13、在运行CTS时,设备停留在桌面上。

14、当设置正在进行测试时,绝不能执行其它任务。

15、CTS运行时不要按任何键或触摸屏幕。

4.3、使用CTS

运行一个testplan需要:

1、至少有一个设备或模拟器连接到PC上。然后运行脚本android-cts/tools/startcts

2、你可以通过执行start–plan CTS来执行默认的testplan。这个test plan包含所有的测试用例。

使用ls-p可以查看repository

中包含的测试用例的列表。

使用ls–plan可以查看repository

包含的testplan列表。

3、还可以运行startctsstart –plan <plan_name>来执行一个指定的testplan。

4.4、选择CTSPlan

当前CTS版本中,一共包含下面7个testplan。

1、CTS

包含所有的测试用例,大约会在设备上执行121000个测试。

2、Signature

包含对所有公开API的签名认证。

3、Android

包含对Android平台API的测试。

4、Java

包含对Java核心库API的测试。

5、VM

包含对DalvikVm的测试。

6、RefApp

包含对相关应用程序的测试

7、Performance

包含对系统性能的测试。

5、解释一下测试结果

测试结果被放在$CTS_ROOT/repository/results/<starttime>.zip

。在这个ZIP文件中,testResult.xml文件包含了真正的测试结果,用浏览器打开这个文件可以看到下面这样的效果

其中,“deviceinformation”部分提供了设备和固件的细节(如make,model,firmwarebuild,platform等)和设备的硬件配置(屏幕参数、键盘、屏幕类型等)。

另外,“testsummary”部分提供了testplan的执行细节描述,包含CTSplan name和执行的开始、结束时间。还有测试结果的统计,包含测试通过、失败、超时、不能执行的个数。

下面的这个表格统计了一个包中的测试用例有多少测试通过。

这个表格的后面还跟着对执行结果更具体的描述。

这个报告列出了testpackage,test suite,testcase和执行的测试,还有测试执行的结果:通过、失败、超时、未执行。当测试失败时,可以在XML文件中找到stacktrace,为了让执行结果更简洁,这些stacktrace没有被包含进来。用文本编辑器查看XML文件,在里面搜索一下<Test>标签和<StackTrace>标签就可以了。

6、注意事项

CTS在测试时会重启设备,这是正常现象。

CTS一次只能在一个设备上执行。

运行CTS时可能会出现弹出强制关闭对话框,要求用户选择关闭或者等待。重新运行这个测试一般就会好的。

以下有几篇文章,讲得比较简洁,可以先看一下这几篇再阅读本文,那样理解起来会容易一些

http://chenhuawei1234567.blog.163.com/blog/static/194526712010629111638224/

http://blog.csdn.net/zjujoe/archive/2010/06/01/5640461.aspx

时间: 2024-10-07 05:32:03

Android兼容性测试框架(CTS)手册的相关文章

简析Android 兼容性测试框架CTS使用

一.什么是兼容性测试? 1)为用户提供最好的用户体验,让更多高质量的APP可以顺利的运行在此平台上 2)让程序员能为此平台写更多的高质量的应用程序 3)可以更好的利用Android应用市场 二.CTS覆盖领域 1)签名测试:针对每个Android正式版,都将附带一系列XML文档对所有的公共API签名进行描述.CTS将检查这些签名是否适用于该设备,并保存其结果. 2)平台API测试:测试SDK中平台核心库和Android应用程序框架的API是否正确 3)Dalvik虚拟机测试:集中测试Dalvik

Android开源测试框架学习

近期因工作需要,分析了一些Android的测试框架,在这也分享下整理完的资料. Android测试大致分三大块: 代码层测试 用户操作模拟,功能测试 安装部署及稳定性测试 代码层测试 对于一般java代码,采用传统的Junit测试,开发人员通常会编写重要接口和函数的白盒测试代码,不做过多讨论. 但因Android的特殊运行机制(Dalvik虚拟机),其中存在Application.Activity.Service等特殊组件,而这些组件都涉及到生命周期管理的问题. 为了对这些组件进行测试,Goog

Android Junit测试框架的配置

instrumentation指令集需要在manifest节点下 <instrumentation android:name="android.test.InstrumentationTestRunner" android:targetPackage="com.example.junittest" /> uses-library 需要在application节点下 <uses-library android:name="android.t

Android兼容性测试CTS Verifier-环境搭建、测试执行、结果分析

    CTS Verifier算是CTS的一部分,需要手动进行,主要用于测试那些自动测试系统无法测试的功能,比如相机.传感器等.由于硬件配置或其他原因,不同手机上部分测试项目被隐藏,也就是说CTS Verifier中case的总数,取决于测试机支持哪些功能,    CTS Verifier总共包含以下15个功能: · Camera · Clock · Device administration · Features · Hardware · Job scheduler · Location ·

【转】android 兼容性测试 CTS 测试过程(实践测试验证通过)

原文网址:http://blog.csdn.net/jianguo_liao19840726/article/details/7222814 写这个博客的时候是为了记忆,建议大家还是看官方的说明,官方说的很清楚,不想把官方大段大段的拷贝到这里,官方的的确说的很清楚: http://source.android.com/compatibility/overview.html  左边的相关的几个链接   中文说明:具体的也可以见http://source.android.com/compatibil

【转】Android兼容性测试CTS Verifier-环境搭建、测试执行、结果分析

原文网址:http://www.cnblogs.com/zh-ya-jing/p/4452675.html CTS Verifier算是CTS的一部分,需要手动进行,主要用于测试那些自动测试系统无法测试的功能,比如相机.传感器等.由于硬件配置或其他原因,不同手机上部分测试项目被隐藏,也就是说CTS Verifier中case的总数,取决于测试机支持哪些功能, CTS Verifier总共包含以下15个功能: · Camera · Clock · Device administration · F

【转】Android兼容性测试CTS --环境搭建、测试执行、结果分析

原文网址:http://www.cnblogs.com/zh-ya-jing/p/4396918.html 为了确保Android应用能够在所有兼容Android的设备上正确运行,并且保持相似的用户体验,在每个版本发布之时,Android提供了一套兼容性测试用例集合(Compatibility Test Suite, CTS)来认证运行Android系统的设备是否完全兼容Android规范,并附带有相关的兼容性标准文档(Compatibility Definition Document, CDD

Android兼容性测试_CTS-环境搭建、测试执行、结果分析

为了确保Android应用能够在所有兼容Android的设备上正确运行,并且保持相似的用户体验,在每个版本发布之时,Android提供了一套兼容性测试用例集合(Compatibility Test Suite, CTS)来认证运行Android系统的设备是否完全兼容Android规范,并附带有相关的兼容性标准文档(Compatibility Definition Document, CDD). 首先从http://source.android.com/compatibility/download

Android Junit测试框架

对应用进行单元测试: 使用Junit测试框架,是正规Android开发的必用技术.在Junit中可以得到组件,可以模拟发送事件和检测程序处理的正确性. 1.配置指令集和函数库: (1)配置指令集,指定要测试的应用程序 需要在AndroidManifest.xml的instrumentation中增加InstrumentationTestRunner,并指定要测试的包名. AndroidManifest.xml中会添加代码: <instrumentation android:targetPacka