本书由腾讯QQ浏览器iPhone测试团队撰写,系统、深度地讲解了iOS测试的系统方法论、新技术与常见的技巧与方法。全书分为3个部分:部分主要介绍了iOS测试的现状、困境、测试流程、测试团队的管理等;第二部分详细讲解了iOS的多项特色测试,包括标准化功能测试、立体化性能测试、兼容性测试、自动化测试等;第三部分讲解了iOS的专项测试技术,包括缺陷分析技术、探索式测试技术、精准测试技术等。
About the Authors 作 者 简 介
丁如敏,毕业于北京邮电大学,《腾讯Android自动化测试实践》的作者之一,拥有10年以上软件测试和项目管理的经验,精通移动终端性能、自动化测试、敏捷测试等各种测试技术。在腾讯工作期间,带领团队共发明了50多项专利,开发了10多门内部培训课程,喜欢挑战软件领域的各项前瞻技术,并有丰富的实践经验。
王琳,腾讯高级测试工程师,2012年中山大学硕士毕业后加入腾讯。积累了五年多的iOS客户端测试经验。在探索式测试方面有深入的研究和实践,在测试过程的优化提升方面颇有心得。致力于将业界先进测试理论落地到iOS平台测试实践中,实战经验丰富。
程春林,腾讯专项技术工程师,从事过传统汽车行业、通信行业、互联网软件开发以及自动化测试开发工作,拥有海外工作经验。目前任职于腾讯,负责手机QQ浏览器(iPhone)端专项测试工作,专注于iOS端自动化测试研发与实践,并撰写了多项iOS相关发明专利。
纪文静,2015年西安电子科技大学硕士毕业后加入腾讯。入职后负责QQ浏览器(iPhone)端功能测试,主要致力于推动测试流程优化落地的工作,在缺陷分析方面有较丰富的经验。
叶方正,2008年加入腾讯,专注于移动智能平台性能以及自动化测试。有10年以上的智能移动平台测试及开发的经验,精通主流的智能移动平台性能测试和调优,以及各种工程工具开发和平台搭建。在腾讯工作期间,先后负责过手机QQ、手机QQ浏览器、腾讯微博、应用宝、手机管家等相关业务的测试。
张锦铭,毕业于中山大学数学系,2011年入职腾讯,专注于iOS端性能测试和自动化测试,有丰富的iOS自动化测试经验,拥有性能和自动化测试相关的12项专利。目前负责QQ浏览器(iPhone)端的性能测试相关工作。
目录 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.2iOS平台的兴起24
2.3iOS平台的特殊性25
2.3.1证书25
2.3.2越狱26
2.3.3灰度27
2.3.4AppStore审核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.2iOS性能测试分类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.2UI自动化测试框架74
5.4XCTest自动化框架介绍75
5.4.1框架集成75
5.4.2接口测试78
5.4.3UI测试79
5.4.4优缺点分析85
5.5KIF自动化框架介绍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.1XCTest接口封装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.1OpenCV简介130
6.5.2OpenCV模板识别130
6.5.3OpenCV实践过程132
6.6自动化持续集成135
6.6.1Jenkins简介135
6.6.2Jenkins特点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.4SVN代码变化监控分析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.1ET 1.0169
8.2.2ET 1.5169
8.2.3ET 2.0169
8.2.4ET 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.1ACC模型193
9.3.2HTSM模型193
9.3.3SBTM模型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