第一篇 软件测试工程师知识储备 3
第1章 如何成为一名合格的软件测试工程师 3
1.1 基础知识 3
1.1.1 计算机专业知识与技能方面 3
1.1.2 个人素养方面 4
1.2 工作范畴 4
1.2.1 软件测试工作范畴 5
1.2.2 软件测试工作的内容 5
1.3 必备的核心知识 5
1.3.1 软件测试的基本要素 5
1.3.2 软件测试的方法和策略 8
1.3.3 软件测试的规范和过程 8
1.3.4 软件测试的组织和管理 9
1.3.5 软件测试用例的设计 10
1.3.6 软件缺陷 11
1.3.7 软件测试的自动化 11
第2章 软件测试工程师如何成长与发展 13
2.1 存储技能敲开著名企业的大门 13
2.2 软件测试工程师的成长历程 14
第3章 ASP.NET方向软件测试工程师实践准备 16
3.1 ASP.NET开发平台简介 16
3.1.1 ASP.NET的编程模型 16
3.1.2 ASP.NET的优势 17
3.1.3 ASP.NET的语言支持 18
3.2 ASP.NET测试环境的搭建 18
3.2.1 安装IIS 18
3.2.2 安装Microsoft.NET Framework 2.0 19
3.2.3 配置IIS 20
3.2.4 安装并配置MySQL 20
3.3 测试机网络与环境的配置 27
3.3.1 Windows系统 27
3.3.2 Mac系统 30
3.3.3 Linux系统 34
3.3.4 Solaris系统 37
3.3.5 HP-UX系统 40
3.3.6 IBM-AIX系统 41
第二篇 基于ASP.NET产品线的项目实践第4章 项目初期各阶段的主要工作 47
4.1 项目立项与拟定产品的发展方向阶段 47
4.1.1 产品需求文档的形成及其实例 47
4.1.2 需求阶段测试工程师的工作 49
4.2 产品规格说明书制定阶段 49
4.2.1 产品规格说明书的形成及其实例 49
4.2.2 产品规格说明书制定阶段测试工程师的工作 54
4.3 产品技术文档设计阶段 55
4.3.1 编写技术设计文档 55
4.3.2 技术设计文档阶段测试工程师的工作 61
第5章 软件测试计划的制定 62
5.1 为何要制定测试计划 62
5.2 怎样设计测试计划 62
5.2.1 产品基本情况调研 63
5.2.2 测试需求说明 63
5.2.3 计划表 63
5.2.4 测试资源配置 63
5.2.5 系统风险评估 63
5.2.6 测试的策略和记录 64
5.2.7 问题跟踪报告 64
5.2.8 测试计划的发布 64
5.3 测试计划设计实例 64
5.4 测试计划修改与维护 72
第6章 软件测试用例的编写 73
6.1 白盒测试用例设计方法与案例 73
6.1.1 逻辑覆盖法设计案例 74
6.1.2 基本路径测试法案例 77
6.2 黑盒测试用例设计案例 78
6.2.1 等价类划分法设计案例 79
6.2.2 边界值分析法设计案例 81
6.2.3 因果图法设计案例 83
6.2.4 错误推测法设计案例 84
6.2.5 功能图法设计案例 86
6.2.6 综合法设计案例 87
6.2.7 异常测试法设计案例 88
6.3 压力/性能测试设计案例 89
6.4 安全性测试 93
6.4.1 安全性测试的引入 93
6.4.2 常见的Web安全性测试 93
6.4.3 XSS测试技巧 101
6.5 跨浏览器/跨平台测试设计案例 102
6.5.1 跨浏览器测试设计案例 102
6.5.2 跨平台测试设计案例 104
6.6 本地化测试与国际化测试 107
6.6.1 国际化测试的实例 110
6.6.2 本地化测试的实例 114
6.7 Accessibility测试案例 115
6.8 如何组织和跟踪测试用例 117
6.8.1 组织测试用例 117
6.8.2 测试用例的跟踪 118
6.8.3 测试用例的维护 119
第7章 软件项目各部门相互协作 121
7.1 共同审阅文档 121
7.2 交流与沟通 123
7.2.1 沟通的意义及项目干系人分析 123
7.2.2 沟通与效率的关系 124
7.2.3 沟通的一些要素 125
7.2.4 项目中沟通运用的案例分析 125
7.2.5 结束语 126
第8章 执行测试案例并报告缺陷 127
8.1 项目过程中各阶段测试重点和策略 127
8.2 如何报告所发现的缺陷 132
8.3 如何尽早尽多地报缺陷 134
8.4 发现缺陷的基本方法 134
8.4.1 通过逻辑覆盖法发现的缺陷 137
8.4.2 通过路径覆盖法发现的缺陷 138
8.4.3 通过等价类划分法发现的缺陷 139
8.4.4 通过边界值法发现的缺陷 140
8.4.5 通过因果图法发现的缺陷 141
8.4.6 通过错误推测法发现的缺陷 142
8.4.7 通过功能图法发现的缺陷 144
8.4.8 通过综合法发现的缺陷 145
8.4.9 通过异常法测试发现的缺陷 145
8.4.10 通过压力/性能测试发现的缺陷 147
8.4.11 通过安全性测试发现的缺陷 148
8.4.12 跨平台测试发现的缺陷 150
8.4.13 跨浏览器测试发现的缺陷 151
8.4.14 本地化与国际化测试发现的缺陷 151
8.4.15 通过Accessibility测试发现的缺陷 153
8.5 如何让别人接受你报的缺陷 154
8.5.1 缺陷为什么不被接受 155
8.5.2 不被接受的缺陷的状态 161
8.5.3 如何避免不被接受的缺陷 161
8.5.4 如何处理不被接受的缺陷 162
8.6 如何验证缺陷 164
8.6.1 哪些状态的缺陷可以检验 164
8.6.2 验证缺陷前需要做什么 165
8.6.3 缺陷被完全修改的标准 165
8.6.4 如何验证缺陷 165
8.6.5 验证缺陷后还需要做什么 166
8.7 如何分析缺陷 167
8.7.1 什么是缺陷分析 167
8.7.2 缺陷分析的重要性 167
8.7.3 收集缺陷分析的信息 167
8.7.4 如何进行缺陷分析 167
8.8 一个缺陷管理系统应用实例 172
8.8.1 BugFree的安装 172
8.8.2 缺陷管理 174
8.8.3 Test Case管理 177
8.8.4 统计报表 179
第9章 产品功能完善与修复缺陷阶段 181
9.1 模块功能完成并进行单元测试 181
9.2 系统功能集成并进行整体测试 182
9.3 产品代码冻结 183
9.4 产品发布前的最后检查 184
第10章 测试工程师在产品发布前后的工作 188
10.1 如何评估软件质量 188
10.2 如何发布质量分析报告 191
10.3 如何配合客户做验收测试 195
10.4 如何处理客户发现的问题 198
第三篇 如何从一个普通工程师成长为资深工程师第11章 测试工具与框架的使用 203
11.1 功能测试工具Selenium实践 203
11.1.1 利用Selenium IDE录制脚本并回放 203
11.1.2 利用Selenium IDE组织测试套件 207
11.1.3 Selenium测试用例的运行 208
11.2 性能测试工具AQTime实践 208
11.2.1 AQTime简介 209
11.2.2 AQTime的下载和安装 209
11.2.3 AQTime的使用 209
11.3 压力测试工具LoadRunner实践 215
11.3.1 LoadRunner的介绍和安装 215
11.3.2 LoadRunner实例 215
11.4 自动化测试工具AutoIt实践 231
11.4.1 AutoIt简介 231
11.4.2 AutoIt对象识别 231
11.4.3 AutoIt自动化测试 234
11.5 STAF+STAX+PYTHON框架 239
11.5.1 STAF/STAX自动化测试框架简介 239
11.5.2 STAF/STAX安装前检查JDK的配置 240
11.5.3 STAF的安装及配置 240
11.5.4 STAX的安装及配置 244
11.5.5 PYTHON的安装 246
11.5.6 通过STAF+STAX框架执行XML脚本 246
附录 大学图书管理系统说明书 250
参考文献 267