第1篇 软件测试基础 3
第1章 软件测试概述 3
1.1 软件测试的发展 3
1.2 软件可靠性 4
1.3 软件缺陷 5
1.4 软件测试的定义及原则 7
1.5 软件测试与软件开发 9
1.5.1 需求分析阶段 9
1.5.2 设计阶段 9
1.5.3 实现阶段 9
1.5.4 测试阶段 10
1.5.5 运行和维护阶段 10
课后习题 10
第2章 软件测试过程与策略 11
2.1 软件测试策略概述 11
2.2 软件测试分类 12
2.3 静态测试与动态测试 16
2.3.1 静态测试 16
2.3.2 动态测试 18
2.4 软件测试过程模型 21
2.4.1 V模型 21
2.4.2 W模型 22
2.4.3 H模型 22
2.4.4 X模型 23
2.5 测试用例的定义和特征 24
2.5.1 测试用例 24
2.5.2 测试用例的特征 25
2.5.3 测试用例设计原则 25
2.5.4 测试用例的设计过程 25
2.5.5 测试用例模板 26
课后习题 29
第3章 黑盒测试 30
3.1 等价类划分法 30
3.1.1 弱一般等价类测试 32
3.1.2 强一般等价类测试 33
3.1.3 弱健壮等价类测试 33
3.1.4 强健壮等价类测试 34
3.1.5 单元实践 34
3.2 边界值测试 40
3.2.1 边界值分析 40
3.2.2 健壮性测试 42
3.2.3 最坏情况测试 42
3.2.4 单元实践 43
3.2.5 随机测试 51
3.2.6 边界值测试的指导方针 53
3.3 决策表法 53
3.3.1 决策表 53
3.3.2 实例 56
3.3.3 指导方针 60
3.4 因果图法 60
3.5 场景法 63
3.6 正交实验法 67
课后习题 70
第4章 白盒测试方法 72
4.1 逻辑覆盖法 72
4.1.1 语句覆盖法 73
4.1.2 判定覆盖法 74
4.1.3 条件覆盖法 74
4.1.4 条件/判定覆盖法 74
4.1.5 组合覆盖法 75
4.1.6 路径覆盖法 75
4.1.7 实例分析 75
4.2 基本路径法 80
4.2.1 控制流图 80
4.2.2 环形复杂度 83
4.2.3 独立路径 83
4.2.4 实例 84
4.3 循环测试 86
4.4 Z路径覆盖 87
4.5 程序插桩技术 88
4.6 域测试 90
4.7 符号测试 91
4.8 程序变异测试法 91
4.9 静态测试法 91
4.10 最少测试用例数计算 93
课后习题 96
第5章 单元测试和集成测试 98
5.1 单元测试 98
5.1.1 单元测试的定义 98
5.1.2 单元测试的重要性 100
5.2 单元测试的内容与方法 101
5.2.1 单元测试的内容 101
5.2.2 单元测试的方法 103
5.3 单元测试的过程 104
5.3.1 计划单元测试 105
5.3.2 设计单元测试 106
5.3.3 执行单元测试 107
5.3.4 评估单元测试 108
5.3.5 实例分析 108
5.4 集成测试 111
5.4.1 集成测试概述 112
5.4.2 集成策略 115
5.4.3 面向对象的集成测试 116
5.4.4 集成测试流程 118
5.4.5 实例分析 120
课后习题 122
第6章 系统测试 123
6.1 系统测试概述 123
6.1.1 系统测试基础 123
6.1.2 系统测试策略 124
6.2 功能测试 125
6.2.1 基本概念 125
6.2.2 分析方法 126
6.2.3 功能测试实例 126
6.3 性能测试 127
6.3.1 性能测试基础 127
6.3.2 性能测试实例 129
6.4 本地化测试 131
6.4.1 本地化测试基础 131
6.4.2 关于Java用户界面本地化实例 133
6.4.3 本地化测试的错误分类 136
6.5 可用性测试 137
6.5.1 可用性测试基础 137
6.5.2 可用性测试方法 138
6.5.3 传统ATM可用性测试报告 139
6.6 配置测试 145
6.6.1 配置测试基础 145
6.6.2 3D游戏的配置测试 146
6.7 压力测试 147
课后习题 149
第7章 验收测试 150
7.1 验收测试概述 150
7.1.1 基本概念 150
7.1.2 验收测试的总体思路 151
7.1.3 α、β测试简介 152
7.2 验收测试的常用策略 152
7.2.1 正式验收测试 152
7.2.2 非正式验收测试 153
7.2.3 β测试 153
7.3 验收测试过程 154
7.4 用户验收测试实施 155
7.5 验收测试实例 156
课后习题 157
第2篇 软件质量保证 161
第8章 软件过程能力评估 161
8.1 软件能力成熟度模型 162
8.1.1 CMM/CMMI的发展 162
8.1.2 CMM/CMMI应用领域 162
8.1.3 CMM/CMMI基本框架 163
8.2 软件测试成熟度模型 164
8.3 软件测试过程改进 169
8.3.1 软件测试过程改进的概念 169
8.3.2 组织的规划内容 170
8.3.3 主要策略 170
8.3.4 软件测试过程改进的具体方法 171
课后习题 171
第9章 软件缺陷及缺陷管理 172
9.1 软件缺陷 172
9.1.1 软件缺陷的定义 172
9.1.2 软件测试中的常用术语 172
9.1.3 软件缺陷产生的原因 173
9.1.4 软件缺陷的属性 174
9.1.5 软件缺陷的类型 176
9.1.6 缺陷严重程度 178
9.1.7 软件缺陷修复的代价 179
9.1.8 缺陷优先级 180
9.1.9 软件缺陷的生命周期 180
9.1.10 报告软件缺陷 181
9.1.11 分离和再现软件缺陷 182
9.2 测试总结报告 182
9.3 软件缺陷跟踪管理 183
9.4 缺陷管理工具 184
9.4.1 常见缺陷管理工具 185
9.4.2 Bugzilla缺陷管理工具 186
课后习题 207
第10章 软件质量保证 208
10.1 软件质量 208
10.1.1 软件质量的定义 208
10.1.2 影响软件质量的因素 209
10.1.3 软件质量评价应遵守的原则 209
10.1.4 软件质量模型 210
10.2 软件质量保证 212
10.2.1 软件质量保证策略 213
10.2.2 软件质量保证活动 214
课后习题 223
第11章 配置管理 224
11.1 配置管理的基本概念 224
11.2 配置管理活动 225
11.2.1 识别配置项 225
11.2.2 基于配置项版本控制 226
11.2.3 变更控制 226
11.2.4 发布配置状态报告 227
11.2.5 配置审计 227
11.2.6 发布管理 227
11.3 项目经理的配置管理流程 228
11.3.1 配备人员 228
11.3.2 配置经理 228
11.4 软件配置管理工具 228
11.4.1 CVS 228
11.4.2 VSS 230
11.4.3 SVN 230
11.4.4 ClearCase 230
11.5 SVN配置管理工具的使用 230
11.5.1 服务器SVN(Subversion)的安装和配置 230
11.5.2 基本操作 232
课后习题 235
第3篇 软件测试工具 239
第12章 自动化测试工具 239
12.1 自动化测试 239
12.2 自动化测试工具 243
12.3 自动化测试工具详细介绍 245
12.3.1 LoadRunner 245
12.3.2 QTP 257
12.3.3 WinRunnerMercury 268
12.3.4 Rational Robot 270
12.3.5 AdventNet QEngineAdventNet QEngine 271
12.3.6 SilkTest 271
12.3.7 QARun 273
12.3.8 TestPartner 275
课后习题 276
第13章 测试框架 277
13.1 JUnit单元测试框架 277
13.2 NUnit单元测试框架 287
课后习题 293
第14章 其他测试工具 294
14.1 一般测试工具 294
14.2 主要厂商及产品介绍 295
14.2.1 HP 295
14.2.2 IBM 295
14.2.3 Micro Focus 296
14.3 流行的开源测试工具 297
14.3.1 单元测试工具 297
14.3.2 功能测试工具 299
14.3.3 性能测试工具 299
14.3.4 测试管理工具 300
课后习题 302
第4篇 软件测试案例 305
第15章 成人教务管理系统 305
15.1 测试计划 305
15.2 测试项目说明 306
15.3 评价 311
第16章 图书管理系统 317
16.1 软件测试计划 317
16.1.1 引言 317
16.1.2 任务概述 318
16.1.3 计划 318
16.1.4 测试项目说明 320
16.2 软件测试分析报告 326
16.2.1 测试结果 326
16.2.2 文档检查 329
16.2.3 功能性测试定性评价 329
16.2.4 非功能性评价 330
第17章 人事档案管理系统 331
17.1 实验环境 331
17.2 实验任务 331
17.3 实验内容与步骤 331
第18章 嵌入式软件系统——俄罗斯方块 335
18.1 项目简介 335
18.2 单元测试设计 336
18.2.1 静态测试:代码走查 336
18.2.2 动态测试 338
18.2.3 驱动模块 340
18.2.4 单元测试的Bug列表 341
附录A 软件测试文档 342
A.1 概述 342
A.2 模板 346
A.2.1 测试大纲模板 346
A.2.2 软件测试计划模板 349
A.2.3 测试任务说明书模板 352
A.2.4 测试需求说明书模板 355
A.2.5 单元测试模板 358
A.2.6 代码检查模板 360
A.2.7 程序错误报告模板 361
A.2.8 程序设计模板 362
A.2.9 测试用例模板 365
A.2.10 软件测评模板 366
A.2.11 功能测试模板 367
A.2.12 性能测试模板 369
A.2.13 可靠性测试模板 370
A.2.14 集成测试模板 371
A.2.15 系统测试模板 373
A.2.16 验收测试模板 374
A.2.17 测试分析报告模板 376
A.2.18 测试总结模板 378
A.2.19 Web测试模板 379
A.2.20 软件安全性测试模板 381
附录B 软件测试习题及答案 383
第一部分 软件测试习题 383
第二部分 习题答案 391
参考文献 402