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工具
- Android应用测试方法总结
- Android应用测试方法总结
- Android应用测试总结
- Android 应用测试总结
- Android应用测试总结
- Android 应用测试总结
- Android 应用测试总结
- Android 应用测试总结
- Android设备测试应用总结
- Android测试方法总结汇总
- android测试实现方法总结
- 移动应用安全测试方法总结
- android 退出应用方法总结
- Android退出应用方法总结
- Android App测试分析方法(总结 && 重写)
- Android 应用层面屏蔽状态栏方法总结
- Android应用中去掉标题栏方法总结
- Android 获取前台应用的方法总结
- AFNetworking
- LinearLayout 和 RelativeLayout
- 小鑫爱数学
- Select & Epoll
- IO流的概念及使用方法二
- Android应用测试方法总结
- hdu1054 树形dp
- stm32 GPIO口初认识
- 设有两个栈S1和S2都采用顺序栈的方式存储,并且共享一个存储区
- django 模板使用css js
- java经典五十道题之1兔子问题
- Assemble
- zTree -- jQuery 树插件
- URAL 1572. Yekaterinozavodsk Great Well(数学啊)