作者简介
前言
第一部分 测试观
第1章 测试观概述2
1.1 引言2
1.2 工程效率3
1.2.1 自动化测试4
1.2.2 静态代码分析5
1.3 品质管理7
1.4 测试分析12
1.4.1 黑盒测试分析12
1.4.2 白盒测试分析13
1.5 测试设计14
1.5.1 探索式测试14
1.5.2 基于模型的测试14
1.6 数据反推15
1.6.1 测试过程中的数据15
1.6.2 线上数据17
1.7 未来的测试19
1.7.1 线上数据挖掘19
1.7.2 人工智能21
1.7.3 众测21
1.8 小结22
第二部分 iOS特色测试
第2章 走进iOS24
2.1 引言24
2.2 iOS平台的兴起24
2.3 iOS平台的特殊性25
2.3.1 证书25
2.3.2 越狱26
2.3.3 灰度27
2.3.4 AppStore审核29
2.3.5 自动化测试工具30
2.4 小结30
第3章 iOS兼容性测试31
3.1 引言31
3.2 系统兼容32
3.2.1 新增功能32
3.2.2 接口差异32
3.3 机型兼容37
3.3.1 新增功能37
3.3.2 屏幕变化37
3.3.3 处理器差异38
3.4 测试原则39
3.5 小结41
第4章 iOS性能测试43
4.1 引言43
4.2 性能测试简介44
4.2.1 性能测试介入时间45
4.2.2 iOS性能测试分类46
4.3 响应速度测试方法48
4.3.1 掐表计时法48
4.3.2 日志计时法48
4.3.3 录像分帧计时法49
4.3.4 网页速度对比测试举例51
4.4 稳定性测试55
4.4.1 测试框架介绍56
4.4.2 稳定性测试思路56
4.4.3 稳定性测试结果记录60
4.5 流量测试方法62
4.5.1 系统流量统计方法62
4.5.2 数据包分析法63
4.6 电量测试方法66
4.7 内存测试方法67
4.8 流畅性测试70
4.9 小结71
第5章 iOS自动化测试入门72
5.1 引言72
5.2 自动化测试适用场景72
5.3 自动化测试框架73
5.3.1 接口自动化测试框架73
5.3.2 UI自动化测试框架74
5.4 XCTest自动化框架介绍75
5.4.1 框架集成75
5.4.2 接口测试78
5.4.3 UI测试79
5.4.4 优缺点分析85
5.5 KIF自动化框架介绍86
5.5.1 框架集成86
5.5.2 用例编写89
5.5.3 优缺点分析92
5.6 小结93
第6章 iOS测试框架二次开发94
6.1 引言94
6.1.1 二次开发总体架构94
6.1.2 整体部署图94
6.1.3 整体架构图95
6.1.4 架构分析96
6.2 底层驱动层97
6.2.1 XCTest接口封装97
6.2.2 消息处理模块101
6.2.3 驱动模块104
6.3 中间层113
6.3.1 控件调用封装层113
6.3.2 截图模块115
6.3.3 日志处理模块118
6.4 应用层121
6.4.1 自动化脚本121
6.4.2 配置文件123
6.4.3 日志分析系统123
6.4.4 风险点128
6.5 截图智能分析130
6.5.1 OpenCV简介130
6.5.2 OpenCV模板识别130
6.5.3 OpenCV实践过程132
6.6 自动化持续集成135
6.6.1 Jenkins简介135
6.6.2 Jenkins特点135
6.6.3 使用方式135
6.6.4 配置Job137
6.7 自动化实践效果139
6.7.1 部署情况139
6.7.2 投入产出比139
6.7.3 运营数据140
6.8 小结142
第7章 iOS精准测试143
7.1 引言143
7.1.1 传统测试遇到的问题143
7.1.2 敏捷模型的挑战144
7.1.3 解决方案145
7.2 精准测试概念146
7.2.1 业界的精准测试概念146
7.2.2 我们自己的理解146
7.3 传统测试到精准测试的演变148
7.3.1 精准测试与传统测试的对比148
7.3.2 精准测试满足敏捷需求149
7.4 精准测试实践之路149
7.4.1 精准测试总体架构图149
7.4.2 代码分析150
7.4.3 用例关系库154
7.4.4 SVN代码变化监控分析156
7.4.5 精准自动化方案158
7.4.6 精准实现流程小结159
7.4.7 精准实践流程160
7.4.8 精准解决问题164
7.5 小结165
第三部分 通用测试实践
第8章 探索式测试168
8.1 引言168
8.2 探索式测试的发展史168
8.2.1 ET 1.0169
8.2.2 ET 1.5169
8.2.3 ET 2.0169
8.2.4 ET 3.0170
8.3 探索式测试入门实践170
8.3.1 实践前提171
8.3.2 实践过程174
8.3.3 实践后续177
8.4 研发各个阶段的实践形式179
8.4.1 测试设计179
8.4.2 迭代测试181
8.4.3 集成测试182
8.4.4 回归测试185
8.4.5 上线测试186
8.5 实践效果展示187
8.6 探索式测试的答疑189
8.6.1 理论方面的问题189
8.6.2 实践过程的问题189
8.6.3 提升方面的问题190
8.7 小结190
第9章 标准化测试191
9.1 引言191
9.2 功能测试的困惑191
9.2.1 手工测试现状191
9.2.2 黑盒测试困境192
9.2.3 外包测试模式192
9.3 测试分析模型192
9.3.1 ACC模型193
9.3.2 HTSM模型193
9.3.3 SBTM模型194
9.3.4 漫游模型194
9.3.5 场景模型196
9.4 点线面测试体系197
9.4.1 建筑模型197
9.4.2 责任分工199
9.4.3 三个标准化200
9.5 实践案例202
9.5.1 承载体和价值点提炼202
9.5.2 细化承载体和价值点204
9.5.3 变量因子及策略205
9.5.4 动态测试测程210
9.5.5 测试闭环215
9.6 收益评估216
9.6.1 充分利用动态思维216
9.6.2 建立用户角度测试模型217
9.6.3 测试过程及管理优化218
9.7 小结220
第10章 缺陷分析221
10.1 引言221
10.2 缺陷理论基础221
10.2.1 缺陷的定义221
10.2.2 缺陷的属性222
10.2.3 缺陷的修复成本222
10.3 缺陷定位(逆向分析)223
10.3.1 望224
10.3.2 闻224
10.3.3 问225
10.3.4 切226
10.4 缺陷报告(正向演进)226
10.4.1 缺陷现象—缺陷影响227
10.4.2 复现路径—测试思想228
10.4.3 缺陷原理—代码关注229
10.4.4 缺陷思考—扩展总结231
10.5 讨论分析232
10.5.1 投入产出比233
10.5.2 适用人群234
10.5.3 适用阶段234
10.6 小结234
后记235
附录A 参考引用及扩展阅读238
附录B 相关网址收录239