第1章 产品功能测试概述 1
1.1 互联网产品常见的研发流程 1
1.2 测试用例设计和评审 6
1.3 测试进度管理 10
1.3.1 测试进度报告 10
1.3.2 测试完成报告 12
1.3.3 系统化的方法 14
1.4 本章小结 16
第2章 功能测试自动化 17
2.1 轻量接口自动化测试 17
2.1.1 JMeter关于自动化方面的特性介绍 18
2.1.2 基于JMeter的轻量接口自动化实践 25
2.2 App UI层面的自动化 31
2.2.1 Android的UI自动化技术 32
2.2.2 iOS的UI自动化技术 41
2.3 本章小结 51
第3章 性能测试 53
3.1 Web前端性能测试 54
3.1.1 HTTP性能相关的技术要点 56
3.1.2 Web前端性能测试方法 76
3.2 App端性能测试 82
3.2.1 Android内存问题分析 82
3.2.2 iOS内存问题分析 90
3.2.3 App内嵌Web组件的性能分析 97
3.3 后台服务性能测试 104
3.3.1 压力场景的建模 110
3.3.2 测试工具 126
3.3.3 测试数据的收集 129
3.3.4 分析和报告 137
3.4 本章小结 140
第4章 专项测试 141
4.1 兼容性测试 142
4.1.1 兼容性测试的准备和手工测试 142
4.1.2 基于UI自动化脚本的云测试方案 144
4.2 流量测试 155
4.2.1 Android App特有的流量测试方法 156
4.2.2 iOS App特有的流量测试方法 159
4.2.3 通用的流量测试方法 162
4.2.4 常见的流量节省方法 169
4.3 电量测试 171
4.3.1 Android电量测试方法 171
4.3.2 iOS电量测试方法 175
4.4 弱网络测试 182
4.4.1 借助手机自带的网络状况模拟工具 182
4.4.2 基于代理的弱网络的模拟 185
4.5 稳定性测试 190
4.5.1 基于Monkey的稳定性测试 191
4.5.2 Android的ANR 193
4.5.3 基于模糊测试思路的稳定性测试方法探索 194
4.6 安全测试 200
4.6.1 安装包测试 200
4.6.2 敏感信息测试 201
4.6.3 软键盘劫持 202
4.6.4 账户安全 202
4.6.5 数据通信安全 203
4.6.6 组件安全测试 203
4.6.7 服务端接口测试 203
4.7 环境相关的测试 204
4.7.1 干扰测试 204
4.7.2 权限测试 205
4.7.3 边界情况 207
4.7.4 Android定位测试 208
4.8 本章小结 210
第5章 辅助测试方法 212
5.1 代码静态扫描 212
5.1.1 针对Android的静态代码扫描 213
5.1.2 针对iOS的静态代码扫描和分析 220
5.2 代码覆盖率分析 224
5.2.1 Android代码覆盖率技术方案 224
5.2.2 iOS代码覆盖率技术方案 230
5.2.3 代码覆盖率的应用实践 237
5.3 接口Mock方法 239
5.3.1 常见的接口异常模拟方法 240
5.3.2 使用Fiddler作为Mock Server 242
5.3.3 基于FiddlerCore二次开发的Mock工具 244
5.4 AOP测试方法 246
5.4.1 Android AOP测试实践 248
5.4.2 iOS AOP测试实践 251
5.5 本章小结 255
第6章 发布过程中的质量管理 257
6.1 持续集成 257
6.1.1 持续集成简介 258
6.1.2 持续集成实践 259
6.2 发布环节的质量把控 263
6.2.1 后台服务的发布 264
6.2.2 App的发布 269
6.3 内测 269
6.3.1 内测的范围 270
6.3.2 内测的实施 271
6.4 灰度 273
6.4.1 Android App的灰度方法 273
6.4.2 iOS App的灰度方法 275
6.5 本章小结 277
第7章 质量的度量和推动 279
7.1 质量的度量和推动概念 279
7.1.1 质量数据的度量 280
7.1.2 质量推动的活动 285
7.2 QA的角色 286
7.3 跨团队的质量推动 288
7.3.1 开发自测 288
7.3.2 设计走查 292
7.3.3 产品走查 292
7.4 本章小结 293
第8章 发布之后的质量管理 295
8.1 发布后的交叉测试 295
8.2 线上监控 297
8.2.1 监控类型介绍 298
8.2.2 接口自动化监控 307
8.3 外部用户问题反馈的收集和跟进 313
8.4 本章小结 315
第9章 关于软件测试和测试团队 316
9.1 测试是否必需 316
9.2 专职测试人员的价值 319
9.3 测试团队和发展 321
9.4 本章小结 324
参考文献 325