资源名称:完美测试-软件测试系列最佳实践
内容简介:
《完美测试:软件测试系列最佳实践》每个人都怀有梦想或理想,测试人员也不例外,希望将自己的工作做得比较完美。《完美测试:软件测试系列最佳实践》力求通过一些典型案例告诉大家什么是完美测试,又如何做到完美测试。在给出的例子中,不仅包括功能测试、功能的异常测试、不同平台的功能测试和一些崩溃问题的处理,而且包括国际化测试、性能测试、用户体验测试、Accessibility测试等,并用较大的篇幅讨论了自动化测试。为了达到完美测试,建立良好的测试体系、使产品具有可测试性以及缺陷预防等更为重要,《完美测试:软件测试系列最佳实践》也做了讨论。《完美测试:软件测试系列最佳实践》还展示了软件测试之美,使读者可以领会到软件测试的距离之美、空间之美、技巧之美、辩证之美以及贯穿测试过程的平衡之美。虽然《完美测试:软件测试系列最佳实践》还很难覆盖完美测试应具备的各种方法和实践,但目的在于抛砖引玉,使读者能通过最有效的手段(包括方法、技术和工具)完成所有必要的测试,实现事先所要求的需求和代码的测试覆盖率,最终能准确地给出软件产品一个完整的质量评估,使测试达到相对完美的水平。
作者简介:
朱少民:网迅(中国)软件有限公司QA高级总监、CSTQB资深专家、中国科技大学软件学院教指委委员。最近多年来一直从事软件测试、质量管理和过程改进等工作,先后出版专著《全程软件测试》、《软件测试》和《软件工程导论》,并主编了《软件测试方法和技术》等多部高等学校的精品教材。. 个人博客:sdn.net/KerryZhu
资源目录:
第1章 软件测试的金字塔体系1
1.1 从1个中心到5个要素3
1.2 5个工作面5
1.3 8组关系6
1.4 13项原则8
1.5 21个关键域11
1.6 34个方法15
第2章 测试架构从何而来17
2.1 什么是测试架构18
2.2 测试领域架构21
2.3 自动化测试架构之说25
2.3.1 为何要建立自动化测试架构25
2.3.2 解决什么问题26
2.3.3 软件开发框架的启发30
2.3.4 测试自动化框架的基本构成31
2.4 谁能成为测试架构师34
第3章 如何让缺陷无处藏身38
3.1 什么是软件可测试性39
3.2 sock模型和james bach的观点41
.3.3 tdd和代码的可测试性43
3.4 设计的可测试性48
3.5 需求的可测试性51
第4章 可以像这样设计测试用例吗53
4.1 从需求到测试用例53
4.2 基于流程图设计测试用例56
4.3 基于uml视图的测试用例设计61
4.4 小结65
第5章 从虚拟测试环境到一键部署67
5.1 虚拟出更多的机器67
5.2 虚拟的疑问70
5.3 另一种把资源用到极致的方法71
5.4 一键部署73
第6章 客户端的gui测试自动化79
6.1 初识自动化测试79
6.2 困惑80
6.3 建议81
6.4 三类标准控件的不同处理办法82
6.4.1 标准控件83
6.4.2 自定义控件84
6.4.3 自定义控件库84
6.5 微软的uia和msaa85
6.5.1 msaa85
6.5.2 uia86
6.5.3 windows automation api 3.088
6.6 和开发人员合作的好处88
第7章 后台自动化测试90
7.1 什么是后台测试90
7.1.1 后台测试的特点90
7.1.2 后台测试的自动化91
7.2 后台自动化测试的统一脚本控制92
7.2.1 自动化测试框架93
7.2.2 自动化测试脚本的分层实现93
7.3 后台自动化测试实例95
7.3.1 测试工具树形图95
7.3.2 基于staf框架的python脚本97
7.4 后台大规模性能测试102
7.4.1 测试工具的管理103
7.4.2 同步及异步控制模式103
7.4.3 测试逻辑的同步执行问题104
7.4.4 测试结果的收集106
7.5 小结107
第8章 高亢之龙——jmeter后台自动化测试108
8.1 潜龙勿用,见龙在田109
8.2 终日乾乾,或跃于渊113
8.3 飞龙在天117
8.4 亢龙有悔121
8.5 小结123
第9章 重读探索式软件测试124
9.1 概念及目标124
9.2 关键要素125
9.3 常见的认识误区127
9.4 探索思维“十六”计128
9.5 如何应用探索式测试136
9.6 机遇与挑战138
9.7 小结139
第10章 完美的功能测试140
10.1 测试准备141
10.2 测试计划145
10.3 功能测试用例的设计147
10.4 用例执行的窍门149
10.5 功能测试的三步曲150
10.6 查找遗漏问题的七大招152
10.7 基于组件元素的通用测试点154
10.8 基于系统行为和操作习惯的测试点156
第11章 异常测试的方法与技巧158
11.1 异常测试定义与范围159
11.2 技巧之一:改(以彼之道,还施彼身)160
11.2.1 更改“自身”160
11.2.2 更改“相关”161
11.3 技巧之二:借(他山之石,可以攻玉)162
11.3.1 借code coverage发现异常162
11.3.2 借junit+jmockit测试异常166
11.3.3 借iptables创造异常167
11.4 异常测试其他技巧169
11.5 小结170
第12章 如何在苹果上找虫171
12.1 造成mac系统崩溃的常见操作171
12.2 通过崩溃日志来定位问题172
12.3 通过console来定位崩溃问题176
12.4 通过shark工具来定位freeze问题176
第13章 穿越时空的国际化和本地化测试182
13.1 案例背景183
13.2 时区及夏令时186
13.3 有关时区的应用测试188
13.4 本地化测试的方方面面190
13.4.1 语言标识190
13.4.2 文化生活191
13.4.3 书写习惯192
13.5 本地化测试的主要方法193
13.6 本地化测试的常见问题194
13.6.1 人力资源短缺194
13.6.2 开发人员、翻译组、资源文件维护者与测试人间之间的协作195
13.6.3 基础工作的缺乏196
第14章 用户体验的享受198
14.1 最终用户特点198
14.1.1 绝大多数的中间用户199
14.1.2 不同用户需求200
14.2 生活中的用户体验203
14.2.1 用户体验的复杂性203
14.2.2 视觉反馈204
14.2.3 听觉反馈——声音211
14.3 ue测试策略213
14.3.1 少就是多214
14.3.2 工具就放在手边215
14.3.3 提供非模态的反馈215
14.3.4 提供符合情景的信息216
14.3.5 提供直接的操作和图形输入217
14.3.6 不要用对话框来报告常态内容218
14.3.7 提供选择而不是提问218
14.3.8 优化响应能力以调节延迟时间219
14.3.9 多平台多浏览器支持220
14.4 小结221
第15章 可能没听说过的测试——accessibility测试223
15.1 测试的范围和要点224
15.2 测试工具226
15.2.1 soatest226
15.2.2 jaws228
15.2.3 actf adesigner229
15.3 accessibility测试注意事项231
15.3.1 规范快捷键,尽量与系统操作键统一231
15.3.2 应尽早制定accessibility checklist232
15.3.3 注意对其他任务的影响232
15.3.4 restore case要定义明确232
15.3.5 应从用户使用习惯的角度去考虑测试需求233
第16章 谁说了算?——代码覆盖率234
16.1 衡量代码覆盖率软件的引入235
16.2 c/c++代码覆盖率测试工具bullseyecoverage237
16.3 开源测试代码覆盖率工具emma239
16.4 代码覆盖率报告的分析240
16.5 代码覆盖率工具的相关运用242
16.6 代码覆盖率工具应用的局限性243
16.7 小结244
第17章 bug的“美丽人生”246
17.1 报告新的bug246
17.1.1 发现bug247
17.1.2 隔离分析bug248
17.1.3 提交一个新的bug251
17.2 处理已经提交的bug254
17.3 验证bug256
17.4 案例说明256
第18章 从亡羊补牢到未雨绸缪260
18.1 防止“病从口入”261
18.2 缺陷rca三步曲262
18.2.1 缺陷的分类统计分析263
18.2.2 深度分析找到根本原因266
18.2.3 找到解决问题的办法268
第19章 云中漫步——后端测试流程管理269
19.1 欢迎来到“云”的世界271
19.1.1 为什么要进行后台测试271
19.1.2 shindig框架的部署273
19.2 你不是她,但你处处为她着想276
19.2.1 以用户行为为核心276
19.2.2 以用户数据为核心277
19.2.3 “虫虫”哪里走278
19.3 进入云,必须做好聪明又狂野的准备279
19.3.1 其徐如林——周密计划,才能有条不紊280
19.3.2 其疾如风——快速执行281
19.3.3 侵掠如火——干吧,我们就是为这个来的282
19.3.4 不动如山——牢固占领,“云”上一分钟,“云”下十年功283
19.4 小结285
第20章 敏捷测试——速度之美286
20.1 敏捷开发和传统瀑布模型比较286
20.2 快速迭代、发布可工作的软件288
20.2.1 面对面交流和简洁的文档290
20.2.2 基于用户故事的测试计划292
20.2.3 面向敏捷开发团队的高效测试用例294
20.2.4 持续集成和持续测试框架hudson295
20.2.5 有效管理和跟踪测试任务297
20.2.6 快速跟踪和解决缺陷300
20.3 持续回顾和调整304
20.4 小结:速度之美的真正含义307
第21章 再谈敏捷测试的方法和实践310
21.1 测试驱动开发与敏捷测试310
21.2 敏捷测试自动化313
21.2.1 自动化测试策略313
21.2.2 自动化测试框架314
21.2.3 敏捷测试工具315
21.3 敏捷测试及其管理316
21.3.1 敏捷测试流程的优化316
21.3.2 新功能的测试和回归测试策略317
21.3.3 基于需求测试和基于风险测试的平衡318
21.4 有关敏捷测试的思考319
21.4.1 探索式测试的地位320
21.4.2 测试人员在敏捷方法中的价值321
21.5 小结322
后记——从“软件测试艺术”讲座品味完美323
空间之美324
距离之美324
技巧之美325
辩证之美326
白盒测试方法vs.黑盒测试方法327
静态测试vs.动态测试328
被动测试vs.主动测试329
手工测试vs.自动化测试330
计划测试vs.探索式测试332
新功能测试vs.回归测试332
附录a 敏捷方法的相关概念334
附录b 软件测试的详细分类336
参考文献342