第一篇 软件测试工程师知识储备 3
第1章 如何成为一名合格的软件测试工程师 3
1.1基础知识 3
1.1.1计算机专业知识与技能方面 3
1.1.2个人素养方面 3
1.2工作范畴 4
1.2.1软件测试工作范畴 4
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软件测试的自动化 12
1.4读书笔记 13
第2章 软件测试工程师如何成长与发展 14
2.1存储技能敲开著名企业的大门 14
2.2软件测试工程师的成长历程 15
2.3读书笔记 17
第3章ASP.NET方向软件测试工程师实践准备 18
3.1 ASP.NET开发平台简介 18
3.1.1 ASP.NET的编程模型 18
3.1.2 ASP.NET的优势 19
3.1.3 ASP.NET的语言支持 20
3.2 ASP.NET测试环境的搭建 20
3.2.1安装IIS 20
3.2.2安装Microsoft.NET Framework 2.0 21
3.2.3配置IIS 22
3.2.4安装并配置MySQL 22
3.3测试机网络与环境的配置 29
3.3.1Windows系统 29
3.3.2Mac系统 33
3.3.3Linux系统 38
3.3.4Solaris系统 40
3.3.5HP-UX系统 43
3.3.6IBM-AIX系统 44
3.4读书笔记 46
第二篇基于ASP.NET产品线的项目实践 49
第4章项目初期各阶段的主要工作 49
4.1项目立项与拟定产品的发展方向阶段 49
4.1.1产品需求文档的形成及其实例 49
4.1.2需求阶段测试工程师的工作 51
4.2产品规格说明书制定阶段 51
4.2.1产品规格说明书的形成及其实例 51
4.2.2产品规格说明书制定阶段测试工程师的工作 56
4.3产品技术文档设计阶段 57
4.3.1编写技术设计文档 57
4.3.2技术设计文档阶段测试工程师的工作 63
4.4读书笔记 64
第5章软件测试计划的制定 65
5.1为何要制定测试计划 65
5.2怎样设计测试计划 65
5.2.1产品基本情况调研 66
5.2.2测试需求说明 66
5.2.3计划表 66
5.2.4测试资源配置 66
5.2.5系统风险评估 66
5.2.6测试的策略和记录 67
5.2.7问题跟踪报告 67
5.2.8测试计划的发布 67
5.3测试计划设计实例 67
5.4测试计划修改与维护 75
5.5读书笔记 76
第6章软件测试用例的编写 77
6.1白盒测试用例设计方法与案例 77
6.1.1逻辑覆盖法设计案例 77
6.1.2基本路径测试法案例 82
6.2黑盒测试用例设计案例 82
6.2.1等价类划分法设计案例 83
6.2.2边界值分析法设计案例 85
6.2.3因果图法设计案例 86
6.2.4错误推测法设计案例 88
6.2.5功能图法设计案例 90
6.2.6综合法设计案例 91
6.2.7异常测试法设计案例 92
6.3压力性能测试设计案例 94
6.4安全性测试 97
6.4.1安全性测试的引入 97
6.4.2常见的Web安全性测试 97
6.4.3XSS测试技巧 105
6.5跨浏览器/跨平台测试设计案例 106
6.5.1跨浏览器测试设计案例 106
6.5.2跨平台测试设计案例 107
6.6本地化测试与国际化测试 111
6.6.1国际化测试的实例 114
6.6.2本地化测试的实例 118
6.7Accessibility测试案例 119
6.8如何组织和跟踪测试用例 122
6.8.1组织测试用例 122
6.8.2测试用例的跟踪 122
6.8.3测试用例的维护 124
6.9读书笔记 125
第7章软件项目各部门相互协作 126
7.1共同审阅文档 126
7.2交流与沟通 128
7.2.1沟通的意义及项目干系人分析 128
7.2.2沟通与效率的关系 129
7.2.3沟通的一些要素 130
7.2.4项目中沟通运用的案例分析 130
7.2.5结束语 131
7.3读书笔记 132
第8章执行测试案例并报告缺陷 133
8.1项目过程中各阶段测试重点和策略 133
8.2如何报告所发现的缺陷 138
8.3如何尽早尽多地报缺陷 140
8.4发现缺陷的基本方法 140
8.4.1通过逻辑覆盖法发现的缺陷 144
8.4.2通过路径覆盖法发现的缺陷 144
8.4.3通过等价类划分法发现的缺陷 145
8.4.4通过边界值法发现的缺陷 146
8.4.5通过因果图法发现的缺陷 147
8.4.6通过错误推测法发现的缺陷 148
8.4.7通过功能图法发现的缺陷 150
8.4.8通过综合法发现的缺陷 151
8.4.9通过异常法测试发现的缺陷 151
8.4.10通过压力/性能测试发现的缺陷 153
8.4.11通过安全性测试发现的缺陷 154
8.4.12通过跨平台测试发现的缺陷 156
8.4.13通过跨浏览器测试发现的缺陷 157
8.4.14通过本地化与国际化测试发现的缺陷 157
8.4.15通过Accessibility测试发现的缺陷 159
8.5如何让别人接受你报的缺陷 160
8.5.1缺陷为什么不被接受 161
8.5.2不被接受的缺陷的状态 167
8.5.3如何避免不被接受的缺陷 167
8.5.4如何处理不被接受的缺陷 168
8.6如何验证缺陷 170
8.6.1哪些状态的缺陷可以验证 170
8.6.2验证缺陷前需要做什么 171
8.6.3缺陷被完全修改的标准 171
8.6.4如何验证缺陷 171
8.6.5验证缺陷后还需要做什么 173
8.7如何分析缺陷 173
8.7.1什么是缺陷分析 173
8.7.2缺陷分析的重要性 173
8.7.3收集缺陷分析的信息 174
8.7.4如何进行缺陷分析 174
8.8一个缺陷管理系统应用实例 178
8.8.1BugFree的安装 179
8.8.2缺陷管理 181
8.8.3TestCase管理 184
8.8.4统计报表 186
8.9读书笔记 187
第9章产品功能完善与修复缺陷阶段 188
9.1模块功能完成并进行单元测试 188
9.2系统功能集成并进行整体测试 189
9.3产品代码冻结 190
9.4产品发布前的最后检查 191
9.5读书笔记 195
第10章 测试工程师在产品发布前后的工作 196
10.1如何评估软件质量 196
10.2如何发布质量分析报告 199
10.3如何配合客户做验收测试 203
10.4如何处理客户发现的问题 207
10.5读书笔记 208
第三篇 如何从一个普通工程师成长为资深工程师 211
第11章 测试工具与框架的使用 211
11.1功能测试工具Selenium实践 211
11.1.1利用Selenium IDE录制脚本并回放 211
11.1.2利用Selenium IDE组织测试套件 215
11.1.3 Selenium测试用例的运行 215
11.2性能测试工具AQtime实践 216
11.2.1 AQtime简介 216
11.2.2 AQtime的下载和安装 216
11.2.3 AQtime的使用 217
11.3压力测试工具LoadRunner实践 222
11.3.1 LoadRunner的介绍和安装 223
11.3.2 LoadRunner实例 223
11.4自动化测试工具AutoIt实践 238
11.4.1 AutoIt简介 238
11.4.2 AutoIt对象识别 238
11.4.3 AutoIt自动化测试 240
11.5 STAF+STAX+ Python框架 247
11.5.1 STAF/STAX自动化测试框架简介 247
11.5.2 STAF/STAX安装前检查JDK的配置 247
11.5.3 STAF的安装及配置 248
11.5.4 STAX的安装及配置 252
11.5.5 Python的安装 253
11.5.6通过STAF+STAX框架执行XML脚本 254
11.6读书笔记 257
第12章 国际软件测试经验与技巧分享 258
12.1测试前的准备工作 258
12.1.1研究待测试项目 258
12.1.2如何修改浏览器的代理设置 260
12.1.3如何修改hosts文件 262
12.1.4如何测试网上付费购物 263
12.2报Bug的技巧 263
12.2.1界面问题 263
12.2.2页面链接问题 267
12.2.3功能问题 270
12.2.4权限问题 274
12.2.5 JS Error问题 275
12.2.6国际化问题 276
12.2.7安全性问题 279
12.2.8特殊字符问题 282
12.2.9系统出错问题 284
12.2.10数据库问题 285
12.3明显不是Bug的情况 288
12.4编写Test Case的技巧 289
12.4.1测试范围 289
12.4.2编写Test Case 290
12.5读书笔记 296
附录A大学图书管理系统说明书 297
参考文献 314