第1章 软件测试概述 1
一个真实的故事 1
为什么要进行软件测试 2
软件缺陷的由来 4
软件测试学科的发展历程 5
软件测试的定义 6
基本定义的正反两面性 6
服从于用户需求——V&V 7
软件测试和软件开发 8
软件测试过程 9
软件测试和开发的关系 11
小结 12
思考题 12
第2章 需求和设计评审 13
软件评审的方法与技术 13
什么是评审 13
评审的方法 15
评审会议 16
评审的技术 18
产品需求评审 19
需求评审的重要性 19
如何理解需求 21
需求评审的标准 22
如何对需求进行评审 24
设计评审 25
软件设计评审标准 25
系统架构设计的评审 27
组件设计的评审 28
界面设计的评审 28
小结 29
思考题 30
第3章 测试用例设计 31
什么是测试用例 31
一个简单的测试用例 31
测试用例的元素 32
为什么需要测试用例 33
测试用例的质量 34
测试用例的质量要求 34
测试用例书写标准 35
如何设计出高质量的测试用例 36
测试用例的评审 39
测试用例的组织和使用 40
测试用例的创建 40
测试用例套件 41
测试用例的维护 43
小结 43
思考题 44
第4章 软件测试自动化 45
测试自动化的内涵 45
简单的实验 46
自动化测试的例子 47
什么是自动化测试 48
自动化测试的特点和优势 49
自动化测试的原理 51
代码分析 51
GUI对象识别 52
DOM对象识别 54
自动比较技术 55
脚本技术 56
测试工具的分类和选择 59
测试工具的分类 59
测试工具的选择 61
自动化测试的引入 62
普遍存在的问题 62
对策 63
小结 65
思考题 66
第5章 单元测试和集成测试 67
什么是单元测试 68
单元测试的方法 68
黑盒方法和白盒方法 69
驱动程序和桩程序 70
白盒测试方法的用例设计 70
分支覆盖 71
条件覆盖 71
基本路径测试法 72
代码审查 74
代码审查的范围和方法 74
代码规范性的审查 75
代码缺陷检查表 76
集成测试 79
集成测试的模式 79
自顶向下集成测试 79
自底向上集成测试 80
混合策略 80
单元测试工具 81
JUnit介绍 82
用JUnit进行单元测试 83
微软VSTS的单元测试 87
开源工具 88
商业工具 91
小结 92
思考题 93
第6章 功能测试 94
功能测试 94
功能测试用例的设计 95
等价类划分法 96
边界值分析法 99
循环结构测试的综合方法 101
因果图法 102
决策表方法 105
功能图法 107
正交试验设计方法 108
可用性测试 111
可用性的内部测试 111
可用性的外部测试 114
功能测试执行 115
功能测试套件的创建 115
回归测试 116
功能测试工具 118
如何使用功能测试工具 118
开源工具 119
商业工具 121
小结 123
思考题 124
第7章 国际化和本地化测试 125
国际化和本地化的概念 125
国际化测试 126
软件国际化的基本要求 126
全球通用的字符集 128
国际化及其标准 129
国际化测试方法 132
国际化测试点 133
本地化测试 135
软件本地化的实现 135
功能测试 136
数据格式验证 138
UI验证 141
配置和兼容性验证 142
翻译验证 143
I18N和L10N测试工具 144
小结 146
思考题 146
第8章 系统测试 147
什么是系统测试 147
概念:负载测试、压力测试和性能测试 149
背景及其分析 149
定义 150
负载测试技术 151
负载测试过程 151
输入参数 152
输出参数 154
场景设置 155
负载测试的执行 157
负载测试的结果分析 157
性能测试 158
如何确定性能需求 159
性能测试类型 160
性能测试的步骤 160
一些常见的性能问题 163
容量测试 163
压力测试 164
性能测试工具 165
特性及其使用 165
开源工具 167
商业工具 169
兼容性测试 171
兼容性测试的内容 171
系统兼容性测试 172
数据兼容性测试 173
安全性测试 174
安全性测试的范围 174
Web安全性的测试 175
安全性测试工具 177
容错性测试 178
负面测试 178
故障转移测试 179
可靠性测试 181
小结 181
思考题 182
第9章 缺陷报告 183
一个简单的缺陷报告 183
缺陷报告的描述 184
缺陷的严重性和优先级 185
缺陷的类型和来源 186
缺陷附件 186
完整的缺陷信息列表 187
如何有效地报告缺陷 188
软件缺陷的处理和跟踪 189
软件缺陷生命周期 189
缺陷的跟踪处理 190
缺陷状态报告 191
缺陷分析 192
实时趋势分析 192
累计趋势分析 194
缺陷分布分析 195
缺陷跟踪系统 197
小结 199
思考题 199
第10章 测试计划和管理 200
测试的原则 200
测试计划 202
概述 203
测试计划过程 203
测试目标 204
测试策略 205
制定有效的测试计划 208
测试范围分析和工作量估计 209
测试范围的分析 209
工作量的估计 210
资源安排和进度管理 212
测试资源需求 212
团队组建与培训 213
测试进度管理 214
测试风险的控制 215
主要存在的风险 215
控制风险的对策 217
测试策略的执行 218
测试报告 219
评估测试覆盖率 220
基于软件缺陷的质量评估 221
测试报告的书写 223
测试管理工具 223
测试管理系统的构成 223
主要工具介绍 225
小结 226
思考题 227
附录A软件测试术语中英文对照 228
附录B测试计划简化模板 233
附录C测试用例设计模板 235
附录D软件缺陷模板 237
附录E软件测试报告模板 239
参考文献 242