书刊介绍
《Android应用测试与调试实战》内容简介
本书是Android应用测试与调试领域最为系统、深入且极具实践指导意义的著作,由拥有近10年从业经验的资深软件开发工程师和调试技术专家撰写,旨在为广大程序员开发高质量的Android应用提供全方位指导。它从Android应用自动化测试工程师和开发工程师的需求出发,从测试和调试两个维度,针对采用Java、HTML 5、C++&NDK三种Android应用开发方式所需要的测试和调试技术、方法进行了细致而深入的讲解,为Android应用的自动化测试和调试提供原理性的解决方案。
全书一共16章,分为两大部分:第一部分为自动化测试篇(第1~11章),详细讲解了进行Android自动化测试需要掌握的各种技术、工具和方法,包括Android自动化测试基础、Android应用的白盒自动化测试和黑盒自动化测试的技术和原理、Android服务组件和内容组件的测试、HTML 5应用和NDK应用的测试,以及Android应用的兼容性测试和持续集成自动化测试;第二部分为调试技术篇(第12~16章),详细讲解了Android应用调试所需要的各种工具的使用、操作日志的分析、内存日志的分析,以及多线程应用HTML 5 应用和NDK 应用的调试方法和技巧。
施懿民:深软件开发工程师和调试技术专家,拥有近10年软件行业从业经验,精通Windows、.NET、iOS、Android以及Windows Phone等平台上的应用的测试与调试,曾经带领团队为微软的.NET Developer Platform、CLR、.NET BCL、WPF、Silverlight、ASP.NET、.NET平台和框架提供测试服务,近几年来专注于主流移动平台上的应用测试与调试,积累了丰富的经验。此外,他还精通.NET、Java、C++等编程语言,以及Windows、Linux以及Unix等环境下的编程。作品目录
前言
第1章:Android自动化测试初探
1.1、快速入门
1.2、待测示例程序
1.3、第一个Android应用测试工程
1.4、搭建自动化开发环境
1.4.1、安装Eclipse和ADT开发包
1.4.2、创建模拟器
1.4.3、启动模拟器
1.4.4、连接模拟器
1.4.5、连接手机
1.5、本章小结
第2章:Android自动化测试基础
2.1、Java编程基础
2.2、JUnit简介
2.2.1、添加测试异常情况的测试用例
2.2.2、测试集合
2.2.3、测试准备与扫尾函数
2.2.4、自动化测试用例编写注意事项
2.3、Android应用程序基础
2.3.1、Android权限系统
2.3.2、应用的组成与激活
2.3.3、清单文件
2.3.4、Android应用程序的单UI线程模型
2.4、本章小结
第3章:Android界面自动化白盒测试
3.1、Instrumentation测试框架
3.1.1、Android仪表盘测试工程
3.1.2、仪表盘技术
3.1.3、Instrumentation.ActivityMonitor嵌套类
3.2、使用仪表盘技术编写测试用例
3.2.1、ActivityInstrumentationTestCase2测试用例
3.2.2、sendKeys和sendRepeatedKeys函数
3.2.3、执行仪表盘测试用例
3.2.4、仪表盘测试技术的限制
3.3、使用robotium编写集成测试用例
3.3.1、为待测程序添加robotium用例
3.3.2、测试第三方应用
3.3.3、robotium关键源码解释
3.4、Android自动化测试在多种屏幕下的注意事项
3.5、本章小结
第4章:Android界面自动化黑盒测试
4.1、monkey工具
4.1.1、运行monkey
4.1.2、monkey命令选项参考
4.1.3、monkey脚本
4.1.4、monkey服务器
4.2、编写monkeyrunner用例
4.2.1、为待测程序录制和回放用例
4.2.2、运行monkeyrunner
4.2.3、手工编写monkeyrunner代码
4.2.4、编写monkeyrunner插件
4.3、本章小结
第5章:测试Android服务组件
5.1、JUnit的模拟对象技术
5.2、测试服务对象
5.2.1、服务对象简介
5.2.2、在应用中添加服务
5.2.3、测试服务对象
5.3、本章小结
第6章:测试Android内容供应组件
6.1、控制反转
6.1.1、依赖注入
6.1.2、服务定位器
6.2、内容供应组件
6.2.1、统一资源标识符
6.2.2、MIME类型
6.2.3、内容供应组件的虚拟表视图
6.3、内容供应组件示例
6.4、测试内容供应组件
6.5、本章小结
第7章:测试Android
HTML
5应用
7.1、构建Android
HTML
5应用
7.1.1、WebView应用
7.1.2、使用视口适配Android设备的多种分辨率
7.1.3、使用CSS适配多种分辨率
7.1.4、使用Chrome浏览器模拟移动设备浏览器
7.2、使用QUnit测试HTML
5网页
7.2.1、QUnit基础
7.2.2、QUnit中的断言
7.2.3、测试回调函数
7.2.4、测试WebView应用
7.3、本章小结
第8章:使用Selenium测试HTML
5浏览器应用
8.1、Selenium组成部分
8.2、安装Selenium
IDE
8.3、Selenium
IDE界面
8.3.1、菜单栏
8.3.2、工具栏
8.4、使用Selenium
8.4.1、使用Selenium
IDE录制测试用例
8.4.2、运行Selenium测试用例
8.4.3、等待操作完成
8.4.4、Selenium
WebDriver命令
8.5、数据驱动测试
8.6、Selenium编程技巧
8.6.1、在测试代码中硬编码测试数据
8.6.2、重构Selenium
IDE生成的代码
8.7、本章小结
第9章:Android
NDK测试
9.1、安装NDK
9.2、NDK的基本用法
9.3、编译和部署NDK示例程序
9.4、Java与C/C++之间的交互
9.4.1、Makefiles
9.4.2、动态模块和静态模块
9.5、在Android设备上执行NDK单元测试
9.6、unittest++使用基础
9.6.1、添加新测试用例
9.6.2、测试用例集合
9.6.3、验证宏
9.6.4、数组相关的验证宏
9.6.5、设置超时
9.7、本章小结
第10章:Android其他测试
10.1、Android兼容性测试
10.1.1、运行Android兼容性测试用例集合
10.1.2、兼容性测试计划说明
10.1.3、添加一个新的测试计划
10.1.4、添加一个新的测试用例
10.1.5、调查CTS测试失败
10.2、Android脚本编程环境
10.2.1、Android脚本环境简介
10.2.2、安装SL4A
10.2.3、为SL4A安装脚本引擎
10.2.4、编写SL4A脚本程序
10.2.5、在PC上调试脚本程序
10.3、国际化测试
10.4、模拟来电中断测试
10.5、本章小结
第11章:持续集成自动化测试
11.1、在Ant中集成Android自动化测试
11.1.1、Ant使用简介
11.1.2、Android应用编译过程
11.1.3、使用Ant编译Android工程
11.2、在Maven中集成Android自动化测试
11.2.1、使用Android
Maven
Archetypes创建新Android工程
11.2.2、Android
Maven工程介绍
11.2.3、与设备交互
11.2.4、与模拟器交互
11.2.5、集成自动化测试
11.3、收集代码覆盖率
11.4、本章小结
第12章:Android功能调试工具
12.1、使用Eclipse调试Android应用
12.1.1、Eclipse调试技巧
12.1.2、使用JDB调试
12.1.3、设置Java远程调试
12.1.4、调试器原理简介
12.2、查看Android的logcat日志
12.2.1、过滤logcat日志
12.2.2、查看其他logcat内存日志
12.3、Android调试桥接
12.3.1、adb命令参考
12.3.2、执行Android
shell命令
12.3.3、dumpsys
12.4、调试Android设备上的程序
12.4.1、调试命令行程序
12.4.2、调试Android应用
12.4.3、调试Maven
Android插件启动的应用
12.5、本章小结
第13章:Android性能测试之分析操作日志
13.1、使用Traceview分析操作日志
13.1.1、记录应用操作日志
13.1.2、Traceview界面说明
13.1.3、使用Traceview分析并优化性能瓶颈
13.2、使用DDMS
13.2.1、使用DDMS
13.2.2、DDMS与调试器交互的原理
13.2.3、三种启动操作日志记录功能的方法
13.3、使用dmtracedump分析函数调用树
13.4、本章小结
第14章:分析Android内存问题
14.1、Android内存管理原理
14.1.1、垃圾内存回收算法
14.1.2、GC发现对象引用的方法
14.1.3、Android内存管理源码分析
14.1.4、Logcat中的GC信息
14.2、调查内存泄露工具
14.2.1、Shallow
size和Retained
size
14.2.2、支配树
14.3、分析Android内存泄露实例
14.3.1、在DDMS中检查示例问题程序的内存情况
14.3.2、使用MAT分析内存泄露
14.3.3、弱引用
14.3.4、MAT的其他界面使用方法
14.3.5、对象查询语言OQL(Object
Query
Language)
14.3.6、使用jHat分析内存文件
14.4、显示图片
14.4.1、Android应用加载大图片的最佳实践
14.4.2、跟踪对象创建
14.5、频繁创建小对象的问题
14.6、Finalizer的问题
14.7、本章小结
第15章:调试多线程和HTML
5应用
15.1、调试应用无响应问题
15.2、Android中的多线程
15.3、调试线程死锁
15.3.1、资源争用问题
15.3.2、线程同步机制
15.3.3、解决线程死锁问题
15.4、StrictMode
15.4.1、在应用中启用StrictMode
15.4.2、暂时禁用StrictMode
15.5、调试Android上的浏览器应用
15.5.1、在Android系统自带的浏览器上调试
15.5.2、在Chrome浏览器上调试
15.6、本章小结
第16章:调试NDK程序
16.1、使用Eclipse调试Android
NDK程序
16.2、在命令行中调试NDK程序
16.3、Android的C/C++调试器的工作原理
16.3.1、调试符号
16.3.2、源码
16.3.3、多线程调试的问题
16.4、本章小结