Android应用测试方法总结

来源:互联网 发布:java作业题 编辑:程序博客网 时间:2024/04/29 12:57

这是一份有关Android应用测试学习的总结文档,对Android应用测试进行了一个简单的梳理。相关测试方法的应用过程以及一些测试工具的设计实现等详见我的博客:http://blog.csdn.net/winstonwolfe






图片可能看不太清,提供文本格式内容如下:

Android应用测试

UI自动化测试

白盒自动化测试

Instrumentation测试框架

Android系统自带;
扩展自JUnit;
对多Activity的集成测试支持不足;

robtium开源库

丰富了Instrumentation的API;
集成测试支持较好;
通过反射调用系统隐藏功能,所以可测第三方应用;

黑盒自动化测试

Monkey工具

通常用来做随机性测试;
执行方式1:生成随机的事件队列;(可以通过adb shell,也可以在已经root过的手机上直接执行)
执行方式2:编写monkey脚本,然后解释执行(monkey脚本不能包含判断逻辑)
执行方式3:通过端口映射在PC上执行(命令格式和集合与monkey脚本的不一样)

Monkeyrunner工具

通常做较为明确的黑盒UI测试;
可以通过坐标、控件ID、控件上的文字来操作界面元素;
测试用例用Python编写;(monkeyrunner实际上就是一个基于Jython的Python解释器)
通过C/S模式,运行在PC上,逐行解释Python代码;
可以通过录制、回放的方式来编写测试代码;
可以通过编写插件来扩展;

非UI组件测试

测试Service组件

使用ServiceTestCase<T>类进行测试,基本的原理是:通过提供模拟对象的方式创建一个隔离环境来测试;
   除了使用jMoke外,Android也提供了一个模拟对象函数库:EasyMock

测试Content Provider

使用ProviderTestCase2<T>类进行测试,基本的原理是:模拟一些核心Android对象,如Context、ContentResolver等,并结合RenamingDelegatingContext来重定向数据库及文件的操作,以此在一个完全隔离的环境中测试内容供应组件;
   需要对依赖注入的相关知识有所了解

WebView应用测试

测试的立足点是:Android的WebView控件能够提供所加载的网页前台javascript代码与应用后台的Java代码的交互。
基于以上条件,便可以复用已有的Web测试框架,比如Qunit、Selenium;
    1)Qunit:用一个Android测试工程指引待测应用的WebView控件访问Qunit测试网页,再通过互操作的方式得到Qunit网页上的测试结果,以此来完成自动化测试工作;
    2)Selenium:可以使用针对Android的WebDriver服务器来测试,也可以使用Android的测试框架,通过将WebDriver包作为资源文件添加进来测试

兼容性测试

使用Android提供的一套兼容性测试用例集合(CTS)。

性能测试

CPU

复用Linux的方法,分析/proc/stat文件

 

使用Traceview分析操作日志

使用Debug类打开操作日志记录功能,打开后Android会详细记录应用花在每个线程及线程上的每个函数上的调用时间,记录完毕后使用SDK自带工具traceview查看。需要设备安装有SD卡,而且待测应用要有SD卡的访问权限。
因为需要修改源代码,所以测试结果较为精确。

使用DDMS

适用于在没有待测应用源码的情况下启用记录操作日志

使用am profile命令

同样可以用来指定在进程运行时打开操作日志记录功能

内存

复用Linux的分析方法或者使用Android提供的API:getProcessMemoryInfo等等。
使用MAT插件结合DDMS分析内存泄露

网络

使用Android提供的API:TrafficStats.getUidTxBytes等

其他问题

Android平台脚本编程

使用Android脚本层(SL4A),能够直接在Android设备上编写、执行多种脚本语言,实现与系统的互操作。

持续集成

Ant和Maven都可以

代码覆盖率

使用emma可以实现

与PC互操作

adb

分析函数调用树

dmtracedump工具

 


0 0
原创粉丝点击