项目一 初识Android 1
项目导引 1
学习目标 1
任务一 环境配置 1
任务分析 1
知识准备 2
任务实施 2
一、真机运行环境配置 2
二、虚拟机环境安装与配置 2
相关链接及参考 8
任务二Android程序结构分析 8
任务分析 8
知识准备 8
一、Android的平台架构 8
二、Android的优势 10
任务实施 10
一、开发最简单的Android应用 10
二、Android应用程序结构分析 16
任务拓展 19
一、引用字符串资源 20
二、修改Android程序标题 22
任务三Android程序发布与签名 23
任务分析 23
知识准备 23
任务实施 23
一、Android应用程序的发布和签名( release模式) 23
二、debug签名设置 26
任务拓展 27
Android基本组件介绍 27
实训项目 28
一、实训目的与要求 28
二、实训内容 28
本章小结 28
习题 29
项目二Android应用基本功能测试 30
项目导引 30
学习目标 30
任务一 使用DDMS测试收发短信功能 30
任务分析 30
知识准备 31
一、软件测试基本概念 31
二、认识DDMS 34
任务实施 41
一、进入短信界面及DDMS界面 41
二、收发短信测试 41
三、打断事件测试 42
任务扩展 42
测试类型 42
相关链接及参考 43
任务二 使用adb命令进行安装及卸载测试 43
任务分析 43
知识准备 43
任务实施 48
一、apk上传及安装 48
二、测试应用的基本功能 48
三、卸载应用 49
任务拓展 49
一、设备的root权限 49
二、shell文件管理命令 50
实训项目 51
一、实训目的与要求 51
二、实训内容 51
本章小结 52
习题 52
项目三Android应用自动化黑盒测试 53
项目导引 53
学习目标 53
任务一 使用Monkey工具 53
任务分析 53
知识准备 54
一、启动Monkey 54
二、Monkey命令参数使用 59
任务实施 61
一、获得计算器程序的包名 61
二、使用随机命令序列测试计算器程序 61
三、使用指定比例的命令序列测试计算器程序 62
四、使用指定命令序列测试计算器程序 62
任务拓展 63
一、Monkey测试脚本的编写 63
二、常用脚本命令参考 64
相关链接及参考 65
任务二使用 MonkeyRunner工具 65
任务分析 65
知识准备 65
一、MonkeyRunner简介 65
二、MonkeyRunner脚本录制与回放 66
三、手动编写Python测试脚本 68
四、shell命令调试 76
任务实施 77
一、搭建环境及准备 77
二、脚本编写 78
任务拓展 79
Python语法初步 79
相关链接及参考 81
实训项目 81
一、实训目的与要求 81
二、实训内容 82
三、总结与反思 82
本章小结 82
习题 82
项目四Android白盒单元测试 84
项目导引 84
学习目标 84
任务一 基于JUnit框架的覆盖率测试 84
任务分析 84
知识准备 84
一、JUnit3框架回顾 85
二、浅谈JUnit4框架 85
三、代码覆盖率 87
任务实施 89
一、使用JUnit3编写测试代码 89
二、使用JUnit4编写测试代码 92
二、安装Emma的Eclipse插件 96
三、参数化测试 101
相关链接及参考 104
任务二 初探基于JUnit的Android测试框架 104
任务分析 104
任务实施 104
一、导入被测项目SimpleCal 104
二、导入测试工程项目 106
三、MathValidation .java测试代码分析 110
四、MathValidation .java其他代码分析 113
五、分辨率测试 114
任务三Android单元测试框架——Instrumentation 116
任务分析 116
知识准备 116
任务实施 117
一、建立单元测试项目 118
二、编写构造函数 121
三、编写setUp()函数 123
四、编写测试函数 123
五、运行测试 124
任务拓展 125
一、Activity的生命周期 125
二、基于Junit的Android 测试框架 126
相关链接及参考 128
实训项目 128
一、实训目的与要求 128
二、实训内容 128
三、实训要点 128
四、总结与反思 129
本章小结 129
习题 129
项目五基于Robotium的集成测试 132
项目导引 132
学习目标 132
任务一 初识Robotium 132
任务分析 132
知识准备 132
任务实施 133
一、导入项目NotePad及其测试 133
二、运行NotePadTest 136
三、NotePadTest代码分析 137
四、测试用例开发 140
任务二 使用Robotium测试Android项目 142
任务分析 142
任务实施 142
一、建立测试项目 142
二、编写构造函数 145
三、编写setUp()函数和tearDown()函数 147
四、编写测试代码 147
五、运行测试 148
任务三 使用Robotium测试apk文件 148
任务分析 148
任务实施 148
一、对apk文件重签名 148
二、建立并配置测试项目 151
三、搭建测试环境 154
四、编写测试并执行 156
实训项目 156
一、实训目的与要求 156
二、实训内容 156
三、实训要点 157
四、总结与反思 158
本章小结 158
习题 158
项目六 基于uiautomator的界面测试 160
项目导引 160
学习目标 160
任务一 环境配置与项目创建 160
任务分析 160
知识准备 161
任务实施 162
一、新建Java项目并导入指定库 162
二、构建项目并运行 165
任务拓展 169
uiautomatorviewer的使用 169
相关链接及参考 170
任务二 示例程序分析 170
任务分析 170
知识准备 170
一、核心类 170
二、设备控制与监控 172
三、测试实现过程 173
任务实施 174
任务三 使用uiautomator测试Android应用 175
任务分析 175
任务实施 175
一、新建Java项目并导入指定库 175
二、初始化测试 176
三、分析并操纵UI控件 177
四、构建项目并运行 184
相关链接与参考 185
实训项目 185
一、实训目的与要求 185
二、实训内容 185
三、实训要点 186
四、总结与反思 187
本章小结 187
习题 187
项目七Android应用性能监控与测试 189
项目导引 189
学习目标 189
任务一Android应用内存分析 189
任务分析 189
知识准备 190
任务实施 191
一、导入项目运行并观察logcat 191
二、在DDMS下查看内存使用 194
三、使用MAT工具分析内存 195
任务拓展 200
使用Traceview分析进程执行情况 200
任务二 使用开源工具Emmagee 201
任务分析 201
知识准备 201
任务实施 202
一、安装Emmagee并启动监控 202
二、导出并分析数据 204
任务拓展 205
使用腾讯开源工具APT监控 205
实训项目 206
一、实训目的与要求 206
二、实训内容 206
三、实训要点 206
四、总结与反思 207
本章小结 207
习题 207
项目八 其他测试 208
项目导引 208
学习目标 208
任务一Windows下执行Android CTS兼容性测试 208
任务分析 208
知识准备 209
任务实施 209
一、环境配置 209
二、执行测试 212
三、查看测试结果 214
四、查看测试计划 215
任务拓展 216
CTS测试计划Signature 216
相关链接及参考 217
任务二 使用drozer进行Android应用的安全测试 218
任务分析 218
知识准备 218
一、渗透测试 218
二、Android安全机制 218
三、Android的安全问题 220
任务实施 222
一、环境配置 222
二、了解被测应用 226
三、启动测试 228
任务拓展 230
相关链接及参考 231
实训项目 231
一、实训目的与要求 231
二、实训内容 231
三、总结与反思 232
本章小结 232
习题 232
项目九 综合测试项目分析 233
项目导引 233
学习目标 233
任务一 单元测试 233
任务分析 233
任务实施 234
任务二 冒烟测试 234
任务分析 234
任务实施 234
一、安装与卸载测试 234
二、基本功能检查 235
任务三 功能与性能检查 236
任务分析 236
任务实施 237
一、功能测试 237
二、可靠性测试 237
三、性能监测 237
任务四UI测试 238
任务分析 238
任务实施 239
任务五 其他测试 244
任务分析 244
本章小结 244
习题 244
附录1常用KeyCode编码 245
附录2 adb shell常用命令参考 247
附录3 Robotium常用API 250
附录4 uiautomator常用API 256
参考文献 264