第一篇 理论部分 2
第1章 软件工程与软件测试 2
1.1 软件 2
1.1.1 软件发展史 2
1.1.2 软件生命周期 3
1.2 软件缺陷 4
1.2.1 软件缺陷案例 4
1.2.2 软件缺陷概述 5
1.3 软件工程概述 7
1.3.1 软件工程三要素 7
1.3.2 软件开发过程模型 8
1.3.3 软件过程能力评估及CMM/CMMI 11
1.4 软件工程与软件测试 14
思考与练习 15
第2章 软件测试概述 17
2.1 软件质量 17
2.1.1 概述 17
2.1.2 质量管理 18
2.1.3 质量与测试 19
2.2 软件测试基础 21
2.2.1 软件测试发展历程 21
2.2.2 软件测试目的 21
2.2.3 软件测试原则 22
2.3 软件测试分类 23
2.3.1 按照软件开发阶段划分 23
2.3.2 按照执行主体划分 23
2.3.3 按照执行状态划分 23
2.3.4 按照测试技术划分 24
2.3.5 按照软件发布范围划分 25
2.4 软件测试模型 26
2.4.1 V模型 26
2.4.2 W模型 27
2.4.3 H模型 27
2.4.4 X模型 28
2.4.5 前置模型 29
2.5 软件测试的充分性 29
思考与练习 30
第3章 软件测试生命周期 32
3.1 软件测试过程模型 32
3.2 测试计划 33
3.2.1 制订测试计划的目的 33
3.2.2 制订测试计划的原则 33
3.2.3 制订测试计划 33
3.2.4 测试计划的关键问题 36
3.3 测试分析 37
3.4 测试设计 38
3.4.1 目的 38
3.4.2 步骤 38
3.4.3 设计测试过程 38
3.5 测试执行 38
3.6 测试评估 38
3.6.1 概述 38
3.6.2 评估测试内容 38
3.7 调试 39
3.7.1 概述 39
3.7.2 调试策略 39
3.7.3 三种调试技术 40
思考与练习 43
第4章 软件测试流程 44
4.1 测试流程概述 44
4.2 单元测试 44
4.2.1 内容 45
4.2.2 步骤 46
4.3 集成测试 47
4.3.1 主要任务 47
4.3.2 集成测试方法 48
4.4 确认测试 51
4.4.1 有效性测试 51
4.4.2 软件配置复查 52
4.5 验收测试 52
4.5.1 α测试和β测试 52
4.5.2 回归测试 52
思考与练习 54
第5章 黑盒测试 55
5.1 概述 55
5.2 等价类划分 55
5.2.1 划分等价类的标准 56
5.2.2 划分等价类的方法 56
5.2.3 设计测试用例 56
5.3 边界值分析法 57
5.3.1 设计原则 57
5.3.2 应用举例 58
5.4 决策表 58
5.4.1 应用举例 59
5.4.2 决策表的优点和缺点 60
5.5 因果图 60
5.5.1 基本术语 61
5.5.2 应用举例 62
思考与练习 62
第6章 白盒测试 64
6.1 概述 64
6.2 逻辑覆盖法 65
6.2.1 语句覆盖 65
6.2.2 判定覆盖 66
6.2.3 条件覆盖 66
6.2.4 条件判定覆盖 67
6.2.5 修正条件判定覆盖 67
6.2.6 条件组合覆盖 68
6.2.7 点覆盖 69
6.2.8 边覆盖 69
6.2.9 路径覆盖 70
6.2.10 逻辑覆盖各方法对比 70
6.3 综合测试策略 71
思考与练习 71
第7章 自动化测试技术 73
7.1 自动化测试技术概述 73
7.1.1 自动化测试技术应用前提 73
7.1.2 自动化测试过程 74
7.2 自动化测试发展历程 74
7.3 测试成熟度模型 75
7.4 自动化测试原理 80
7.4.1代码分析 80
7.4.2 录制回放 80
7.4.3 脚本技术 80
7.4.4 虚拟用户技术 81
7.5 自动化测试研究热点 82
7.5.1 测试自动化框架 82
7.5.2 测试自动化脚本技术 82
7.5.3 自动化测试用例生成 82
7.5.4 测试预测 82
7.5.5 自动化测试与可靠性分析 82
7.5.6 自动化安全测试 83
思考与练习 83
第8章 性能测试 84
8.1 基本概念 84
8.2 性能测试与故障诊断 87
8.2.1 性能测试 87
8.2.2 故障诊断 87
8.2.3 性能调优 87
83 性能测试分类 88
8.3.1 压力测试 88
8.3.2 容量测试 89
8.3.3 压力测试与容量测试的关系 89
8.3.4 可靠性测试 89
8.3.5 可用性测试 89
8.3.6 兼容性/配置测试 90
8.3.7 容错性测试和安全性测试 91
8.3.8 冒烟测试与随机测试 91
8.3.9 文档测试 92
8.4 网站测试 93
8.4.1 网站结构模型 93
8.4.2 网站测试内容 93
思考与练习 94
第9章 嵌入式软件测试 95
9.1 嵌入式软件概述 95
9.1.1 嵌入式系统的定义和特点 95
9.1.2 嵌入式系统的软件结构 96
9.1.3 嵌入式软件开发 96
9.2 嵌入式软件测试概述 97
9.2.1 嵌入式软件测试的概念 97
9.2.2 嵌入式软件特点对嵌入式软件测试的影响 98
9.2.3 嵌入式软件系统测试的特点 99
9.3 嵌入式软件测试环境 99
9.3.1 交叉调试 99
9.3.2 目标代理 100
9.3.3 嵌入式软件测试面临的问题 101
9.3.4 嵌入式软件测试环境的选择 102
9.4 嵌入式软件测试流程 102
9.4.1 单元测试 103
9.4.2 集成测试 103
9.4.3 系统测试和硬件软件集成测试 103
9.5 嵌入式软件测试策略 104
9.6 嵌入式软件测试工具 105
9.6.1 纯软件测试工具 105
9.6.2 纯硬件测试工具 105
9.6.3 软硬结合的测试工具 106
9.6.4 其他类型测试工具 107
9.7 嵌入式软件测试的关键技术 107
9.7.1 预处理 108
9.7.2 词法语法分析 108
9.7.3 插桩技术 108
9.8 嵌入式软件测试的结构框图 109
思考与练习 110
第10章 软件测试管理 111
10.1 测试项目管理概述 111
10.1.1 测试项目 111
10.1.2 测试项目管理 112
10.2 测试管理计划 112
10.3 软件测试文档 113
10.4 测试人员组织 118
10.4.1 测试团队阶段性 118
10.4.2 测试团队构成 118
10.5 测试项目跟踪与监控 119
10.6 配置管理 119
10.7 测试风险管理 121
10.8 测试成本管理 121
思考与练习 122
第二篇 实验部分 124
第11章 软件测试工具 124
11.1 概述 124
11.2 分类 124
11.2.1 按公司分类 124
11.2.2 按功能分类 128
11.2.3 按测试技术分类 128
11.3 测试工具特征 130
11.4 测试工具选择 130
第12章 测试管理工具 132
12.1 概述 132
12.1.1 测试管理过程 132
12.1.2 需求定义 132
12.1.3 测试计划 133
12.1.4 测试执行 133
12.1.5 缺陷跟踪 134
12.2 TestDirector的安装 134
12.3 TestDirector的配置 137
12.3.1 创建项目 137
12.3.2 创建用户 140
12.3.3 定制项目 141
第13章 性能测试工具 143
13.1 LoadRunner概述 143
13.1.1 LoadRunner组件 143
13.1.2 LoadRunner测试流程 144
13.1.3 示例软件 144
13.2 LoadRunner测试范例 147
13.2.1 使用VuGen创建脚本 147
13.2.2 使用Controller设计场景 159
13.2.3 使用Controller运行场景 161
13.2.4 分析场景结果 162
第14章 缺陷管理工具 167
14.1 缺陷管理工具综述 167
14.1.1 Bugzilla 167
14.1.2 Quality Center 167
14.1.3 JIRA 168
14.1.4 Mantis 168
14.1.5 Bugzero 168
14.1.6 BugOnline 168
14.2 缺陷管理工具——Bugzilla 169
14.2.1 Bugzilla的特点 169
14.2.2 Bugzilla的缺陷处理流程 169
14.2.3 Bugzilla的基本操作 170
14.3 问题跟踪软件——JIRA 173
14.3.1 JIRA的特点 173
14.3.2 缺陷跟踪操作 174
14.3.3 查询操作 176
14.3.4 生成报表 176
14.3.5 系统设置 178
14.4 TestCenter与Testlink、Bugzilla对比 178
第15章 单元测试工具 182
15.1 JUnit概述 182
15.2 JUnit特点 182
15.3 JUnit4常用注释简介 183
15.4 Eclipse与JUnit4进行单元测试 183
第16章 功能测试工具 188
16.1 WinRunner简介 188
16.1.1 WinRunner测试模式 188
16.1.2 WinRunner测试过程 189
16.1.3 WinRunner使用概述 190
16.1.4 第一个WinRunner测试例子 192
16.1.5 第二个WinRunner测试例子 195
16.2 QuickTest Professional简介 199
16.2.1 QuickTest Professional测试过程 200
16.2.2 使用Mercury Tours范例网站 201
16.2.3 QuickTest Professional使用概述 202
16.2.4 QTP测试范例 204
第17章 嵌入式软件测试工具 214
17.1 Logiscope简介 214
17.1.1 Logiscope的用途 214
17.1.2 Logiscope的功能 214
17.2 Logiscope使用简介 216
17.2.1 安装、设置Logiscope 216
17.2.2 Audit的使用方法 217
17.2.3 RuleChecker的使用方法 223
17.2.4 TestChecker的使用方法 227
第三篇 附录 238
附录A 软件测试行业 238
A.1 国内外测试行业现状 238
A.2 测试认识误区 239
A.3 测试工程师素质 240
A.4 著名企业的测试考题 240
附录B Microsoft公司测试介绍 244
B.1 简介 244
B.1.1 Microsoft公司测试人员 244
B.1.2 Microsoft公司测试文档 244
B.1.3 Microsoft公司测试理念 245
B.2 一道Microsoft公司考题 245
附录C 全国计算机等级考试四级软件测试工程师 247
C.1 概述 247
C.2 内容介绍 248
C.3 相关资料 250
参考文献 251