描述
开 本: 16开纸 张: 胶版纸包 装: 平装-胶订是否套装: 否国际标准书号ISBN: 9787111571148
编辑推荐
内容简介
本书由腾讯QQ浏览器iPhone测试团队撰写,系统、深度地讲解了iOS测试的系统方法论、新技术与常见的技巧与方法。全书分为3个部分:*部分主要介绍了iOS测试的现状、困境、测试流程、测试团队的管理等;第二部分详细讲解了iOS的多项特色测试,包括标准化功能测试、立体化性能测试、兼容性测试、自动化测试等;第三部分讲解了iOS的专项测试技术,包括缺陷分析技术、探索式测试技术、精准测试技术等。
目 录
目 录 Contents
作者简介
前言
部分 测试观
第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
作者简介
前言
部分 测试观
第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
前 言
Foreword 前 言为何编写本书随着移动互联网的兴起,移动终端的测试也进入火热的时代。两大主流操作系统Android和iOS占据了移动端的主要市场份额,其中iOS系统只能在苹果系列的移动终端使用,也就是说,在苹果系列的移动终端产品上,操作系统都是清一色的iOS系统,这就形成了硬件和系统同属于一家公司的独特现象。每年苹果公司发布新机型或者新操作系统时,都会引起全球果粉的疯狂。如此火热的平台,如何保证其App的质量就显得尤为重要。
长久以来,市面上单独讲解iOS平台测试相关知识的书籍比较少见,对于做iOS测试的同行来说,可参考的国内资源十分匮乏,他们往往需要借助外文网站和博客上的片段资料进行学习和整合。随着iPhone和iPad等移动终端设备的兴起和流行,越来越多的开发者和测试人员投入到iOS平台软件的研发中,而中文参考资料的缺失,确实在一些程度上阻碍了国内测试人员进军iOS平台的步伐。市场上也渴望有一本相对系统而翔实地讲解iOS测试的书籍,由此,本书应运而生。
QQ浏览器(iPhone)测试团队自2012年年初组建以来,一直致力于探索基于iOS平台的各种测试技能和实践方式,经过近5年的经验积累,在整体测试观、功能测试、性能测试、自动化测试方面总结出独特的经验,团队本着开放、分享的精神撰写了本书,希望借本书和业界同行们进行分享和交流。
正式起草本书是在2015年下半年,历时半年完成初稿,于2016年下半年正式启动本书出版流程,再用半年时间修改原稿,进行内容更新和丰富,目的是使书中涉及的案例和框架更加贴合当前实际。故本书总体耗时一年半,在这一年半的时间里,各位作者各尽所长,加班加点,力求为读者呈现一本相对系统化、可读性高、与时俱进的iOS平台专业测试书籍。
参与本书编写的有程春林、丁如敏、纪文静、王琳、叶方正、张锦铭(按姓氏拼音排序),且都是来自腾讯QQ浏览器(iPhone)测试团队的领头人及骨干员工。
读者对象本书是一本结合实际案例的iOS平台实践总结书籍,内容贴近一线测试,语言朴素易懂。适合新手入门,也能够为有一定经验的测试人员提供思路扩展和理论抽象的借鉴。这里根据行业实际需求给出适合阅读本书的相应的读者群体:
对iOS平台测试感兴趣的人;有一定iOS平台测试经验并想提升的人;即将开展iOS平台测试的团队;开设相关课程的院校师生。
本书特色本书立足于iOS平台,结合的理论和工具使用案例,对测试工作进行了系统的思考和梳理。内容涵盖了iOS平台上常用的各种测试方式、工具、理论,可以作为新手入门,以及有一定经验的测试人员扩展思路使用。
本书分为三大部分:测试观、iOS特色测试、通用测试实践。
在开篇的测试概述里,我们首先为读者介绍了测试观,这是本书的一个综合性观点,也是后续章节的地图,这里不拘泥于iOS平台,是对整个测试工作的思考和总结。第1章也是整本书的纲领性章节,是从一个比较高的视角俯瞰整个测试活动,能为读者带来系统性的视野。
在iOS特色测试部分,我们主要介绍的是与iOS平台强相关的测试内容。包括iOS平台的一些特性问题、兼容性测试、性能测试等内容,还包括各种自动化工具的使用方法、自动化框架的二次开发实践等内容。这部分是本书的核心,也是区别于业界同类书籍的重点部分。
在通用测试实践部分,主要介绍了一些不分平台性的测试实践,包括测试界流行的探索式测试实践、我们团队自创的标准化测试实践,以及测试工程师必做的缺陷分析等。这部分是一些与iOS非强相关的内容,在其他平台上也可以借鉴使用。
如何阅读本书如果您是一位有丰富iOS平台测试经验的工程师,本书可以为您提供思路拓展,建议重点阅读第1章,寻找与自己有共鸣的点。然后可以重点阅读第6章,这一章涵盖了我们对自动化测试的深入实践和思考。
如果您是一位想尝试和学习iOS平台测试的新入行者,那么应该恭喜您遇到本书,因为本书将帮您轻松进入iOS测试之门。故建议从头逐章阅读,尽量不要跳章,读完本书基本可以掌握iOS平台上所有主流的测试技能和经验。
如果您是一位非iOS平台的测试工程师,想从本书中寻找启发,建议重点阅读本书通用测试实践部分,这里介绍的测试方法在各个平台都通用。还可以尝试阅读第1章和第二部分中感兴趣的章节。
勘误和支持由于作者水平所限,书中难免会出现一些错误或者不准确的地方,恳请各位读者批评指正。如果您在阅读本书时遇到任何问题,欢迎提出,我们将尽力为您提供满意的解答。
我们的邮箱:[email protected]我们的专用QQ:2698884730致谢感谢腾讯科技MIG无线研发部总经理冼文佟、副总经理陈诚,是你们的鼓励助我们完成本书的撰写。
感谢腾讯科技MIG浏览器产品部QQ浏览器(iPhone)项目团队总监俞旭明和全体成员对我们的指导和帮助,本书的全部案例都来自这个项目团队。
感谢腾讯科技MIG无线研发部品质中心(TMQ)的同事,在整个写作过程中,你们帮助我们进行的内容调整和资源校对,是本书高质量呈现的保障。特别感谢陈勉荣、马识佳和樊林三位同学对本书进行的积极校对和评审工作。
感
长久以来,市面上单独讲解iOS平台测试相关知识的书籍比较少见,对于做iOS测试的同行来说,可参考的国内资源十分匮乏,他们往往需要借助外文网站和博客上的片段资料进行学习和整合。随着iPhone和iPad等移动终端设备的兴起和流行,越来越多的开发者和测试人员投入到iOS平台软件的研发中,而中文参考资料的缺失,确实在一些程度上阻碍了国内测试人员进军iOS平台的步伐。市场上也渴望有一本相对系统而翔实地讲解iOS测试的书籍,由此,本书应运而生。
QQ浏览器(iPhone)测试团队自2012年年初组建以来,一直致力于探索基于iOS平台的各种测试技能和实践方式,经过近5年的经验积累,在整体测试观、功能测试、性能测试、自动化测试方面总结出独特的经验,团队本着开放、分享的精神撰写了本书,希望借本书和业界同行们进行分享和交流。
正式起草本书是在2015年下半年,历时半年完成初稿,于2016年下半年正式启动本书出版流程,再用半年时间修改原稿,进行内容更新和丰富,目的是使书中涉及的案例和框架更加贴合当前实际。故本书总体耗时一年半,在这一年半的时间里,各位作者各尽所长,加班加点,力求为读者呈现一本相对系统化、可读性高、与时俱进的iOS平台专业测试书籍。
参与本书编写的有程春林、丁如敏、纪文静、王琳、叶方正、张锦铭(按姓氏拼音排序),且都是来自腾讯QQ浏览器(iPhone)测试团队的领头人及骨干员工。
读者对象本书是一本结合实际案例的iOS平台实践总结书籍,内容贴近一线测试,语言朴素易懂。适合新手入门,也能够为有一定经验的测试人员提供思路扩展和理论抽象的借鉴。这里根据行业实际需求给出适合阅读本书的相应的读者群体:
对iOS平台测试感兴趣的人;有一定iOS平台测试经验并想提升的人;即将开展iOS平台测试的团队;开设相关课程的院校师生。
本书特色本书立足于iOS平台,结合的理论和工具使用案例,对测试工作进行了系统的思考和梳理。内容涵盖了iOS平台上常用的各种测试方式、工具、理论,可以作为新手入门,以及有一定经验的测试人员扩展思路使用。
本书分为三大部分:测试观、iOS特色测试、通用测试实践。
在开篇的测试概述里,我们首先为读者介绍了测试观,这是本书的一个综合性观点,也是后续章节的地图,这里不拘泥于iOS平台,是对整个测试工作的思考和总结。第1章也是整本书的纲领性章节,是从一个比较高的视角俯瞰整个测试活动,能为读者带来系统性的视野。
在iOS特色测试部分,我们主要介绍的是与iOS平台强相关的测试内容。包括iOS平台的一些特性问题、兼容性测试、性能测试等内容,还包括各种自动化工具的使用方法、自动化框架的二次开发实践等内容。这部分是本书的核心,也是区别于业界同类书籍的重点部分。
在通用测试实践部分,主要介绍了一些不分平台性的测试实践,包括测试界流行的探索式测试实践、我们团队自创的标准化测试实践,以及测试工程师必做的缺陷分析等。这部分是一些与iOS非强相关的内容,在其他平台上也可以借鉴使用。
如何阅读本书如果您是一位有丰富iOS平台测试经验的工程师,本书可以为您提供思路拓展,建议重点阅读第1章,寻找与自己有共鸣的点。然后可以重点阅读第6章,这一章涵盖了我们对自动化测试的深入实践和思考。
如果您是一位想尝试和学习iOS平台测试的新入行者,那么应该恭喜您遇到本书,因为本书将帮您轻松进入iOS测试之门。故建议从头逐章阅读,尽量不要跳章,读完本书基本可以掌握iOS平台上所有主流的测试技能和经验。
如果您是一位非iOS平台的测试工程师,想从本书中寻找启发,建议重点阅读本书通用测试实践部分,这里介绍的测试方法在各个平台都通用。还可以尝试阅读第1章和第二部分中感兴趣的章节。
勘误和支持由于作者水平所限,书中难免会出现一些错误或者不准确的地方,恳请各位读者批评指正。如果您在阅读本书时遇到任何问题,欢迎提出,我们将尽力为您提供满意的解答。
我们的邮箱:[email protected]我们的专用QQ:2698884730致谢感谢腾讯科技MIG无线研发部总经理冼文佟、副总经理陈诚,是你们的鼓励助我们完成本书的撰写。
感谢腾讯科技MIG浏览器产品部QQ浏览器(iPhone)项目团队总监俞旭明和全体成员对我们的指导和帮助,本书的全部案例都来自这个项目团队。
感谢腾讯科技MIG无线研发部品质中心(TMQ)的同事,在整个写作过程中,你们帮助我们进行的内容调整和资源校对,是本书高质量呈现的保障。特别感谢陈勉荣、马识佳和樊林三位同学对本书进行的积极校对和评审工作。
感
评论
还没有评论。