第1章 软件质量的概念 3
1.1软件质量的概念 3
1.1.1质量的概念 3
1.1.2软件质量的内涵 4
1.2软件质量模型 5
1.2.1 McCall模型 5
1.2.2 Boehm质量模型 5
1.2.3 ISO/IEC9126质量模型 7
1.3软件缺陷 8
1.3.1软件缺陷的定义 8
1.3.2软件缺陷产生原因 9
1.3.3软件缺陷的分类 11
第2章 软件测试的基本概念 13
2.1软件测试的概念 13
2.1.1软件测试的定义 13
2.1.2软件测试的目的 14
2.2软件测试的分类 14
2.2.1按测试技术分类 14
2.2.2按测试方式分类 15
2.2.3按测试阶段分类 15
2.2.4按测试实施组织分类 16
2.3软件测试的最佳实践 16
2.3.1尽量由独立的测试人员进行测试 17
2.3.2关键是注重测试用例的设计 17
2.3.3测试中的集群现象应当被充分的重视 17
2.3.4完全的测试是不可能的 17
2.3.5修复缺陷后,一定要进行回归测试 17
第3章 软件测试风险管理 19
3.1测试风险的基本概念 19
3.1.1技术风险 20
3.1.2管理风险 20
3.2测试风险识别技术 20
3.2.1头脑风暴法 21
3.2.2访谈 21
3.2.3风险检查表 22
3.3测试风险分析 22
3.3.1确定测试范围的功能点和性能属性 23
3.3.2确定测试风险发生的可能性 23
3.3.3确定测试风险发生后产生的影响程度 24
3.3.4计算测试风险优先级 25
3.3.5确定测试风险优先级 25
3.4测试计划风险的应对措施 27
第4章 测试过程概述 29
4.1常见测试过程模型 29
4.1.1 V测试过程模型 29
4.1.2 W模型 30
4.1.3 H模型 31
4.2软件测试过程的体系结构 32
4.2.1软件测试人员 32
4.2.2测试过程的活动分解 33
4.2.3测试过程的工作产品 34
4.3测试计划 36
4.4测试用例的获取 39
4.4.1测试设计规格说明 40
4.4.2测试用例规格说明 41
4.4.3测试规程规格说明 42
4.5执行测试 45
4. 5.1测试日志 46
4.5.2测试意外事件报告 46
4.5.3测试总结报告 48
4.6测试有效性的度量 50
4.6.1客户满意度度量 50
4.6.2缺陷度量 51
4.6.3覆盖度量 54
第5章 黑盒测试用例设计技术 59
5.1等价类划分法 59
5.2边界条件法 61
5.3决策表法 70
5.4因果图法 74
5.5正交表测试法 77
5.6黑盒测试的其他方法 84
第6章 白盒测试用例设计技术 88
6.1静态白盒法 88
6.2侵入式法 90
6.3路径覆盖法 92
6.4基本路径法 98
6.5定义/使用法 102
6.6程序片法 106
6.7白盒测试的其他方法 109
第7章 单元测试 117
7.1单元测试概念及目的 117
7.1.1单元测试定义 117
7.1.2单元测试目的 117
7.2单元测试内容 119
7.2.1接口 119
7.2.2局部数据结构 119
7.2.3边界条件 119
7.2.4独立路径 120
7.2.5错误处理路径 120
7.3单元测试策略 120
7.3.1由顶向下的单元测试策略 121
7.3.2由底向上的单元测试策略 121
7.3.3孤立的单元测试策略 121
7.4单元测试关键实践 122
7.4.1单元测试人员 122
7.4.2测试时间 123
7.4.3测试过程 123
第8章 集成测试 125
8.1集成测试概念 125
8.1.1集成测试的定义 125
8.1.2集成测试的必要性 126
8.1.3常见的集成测试故障 126
8.2集成测试策略 127
8.2.1大爆炸集成 127
8.2.2自顶向下集成 129
8.2.3自底向上集成 130
8. 2.4三明治集成 131
8.2.5协作集成 132
8.2.6高频集成 132
第9章 系统测试 135
9.1系统测试概念 135
9.1.1系统测试的定义 135
9.1.2系统测试与单元测试、集成测试的区别 135
9.2系统数据测试 136
9.3系统端口事件测试 138
9.4系统测试类型 140
第10章 验收测试 143
10. 1验收测试概念 143
10. 2 Alpha测试 144
10. 3 Beta测试 145
第11章 测试自动化的基本概念 153
11.1测试自动化的定义 153
11.1.1概述 153
11.1.2自动化测试的优点 154
11.1.3自动化测试的局限性 155
11.2测试自动化的适用范围 156
11.2.1不适合自动化测试情况 156
11.2.2合适自动化测试的情况 157
第12章 测试自动化的技术 159
12.1录制/回放技术 159
12.2脚本技术 160
12.2.1线性脚本 161
12.2.2结构化脚本 162
12.2.3共享脚本 163
12.2.4数据驱动脚本 166
12.2.5关键字驱动脚本 169
12.3自动比较 170
12.3.1自动比较的定义 170
12.3.2自动比较的原因和内容 171
12.3.3动态比较 172
12.3.4执行后比较 173
12.3.5比较准则 177
12.4自动化前后处理 179
12.4.1前处理和后处理 179
12.4.2不同阶段的前后处理 182
12.4.3执行中的问题 184
第13章 测试自动化工具 187
13.1测试工具类型 187
13.2基本测试工具 188
13.2.1配置管理工具 189
13.2.2缺陷跟踪工具 191
13.2.3监控工具 192
13.2.4功能测试工具 193
13.2.5性能测试工具 194
13.3测试自动化工具产品简介 197
13.3.1 IBM Rational 197
13.3.2 HP Mercury Interactive 199
13.3.3 Compuware 201
13.3.4 Borland Segue 202
13.3.5其他 202
第14章 软件质量保证概要 207
14.1软件质量保证相关概念 207
14.1.1质量保证和软件质量保证 207
14.1.2质量控制和软件质量控制 209
14.1.3全面质量管理 210
14.2软件质量保证的目标和任务 211
14.2.1软件质量保证的目标 211
14.2.2软件质量保证的任务 211
14.3软件质量保证活动及实施 212
14.3.1软件质量保证活动 212
14.3.2软件质量保证的实施 213
14.4软件质量保证体系架构 214
第15章 软件质量保证过程 216
15.1计划阶段 216
15.2需求分析阶段 219
15.3设计阶段 222
15.4编码阶段 225
15.5测试阶段 230
15.6系统交付和安装阶段 233
第 16章 软件质量保证工具 235
16.1规程与工作条例 235
16.1.1规程与工作条例的概念 235
16.1.2规程与工作条例的作用 236
16.1.3规程与规程手册 236
16.1.4工作条例与工作条例手册 237
16.1.5规程与工作条例的编制、执行与更新 238
16.2模板 239
16.2.1模板的概念 239
16.2.2模板的作用 240
16.2.3模板的编制 241
16.2.4模板样例 242
16.3检查表 244
16.3.1检查表的概念 244
16.3.2检查表的作用 247
16.3.3编制、执行和更新检查表的组织框架 248
16.3.4设计与使用检查表的注意事项 249
16.4配置管理 250
16.4.1管理者的承诺 252
16.4.2 SCM人员组成 253
16.4.3建立CCB 255
16.4.4验收测试中的SCM 257
16.4.5 SCM的必要性 257
16.4.6测试周期中的CCB的角色 257
16.4.7审计的理由和实践 261
16.4.8避免大量的“文书工作” 263
16.4.9在SCM活动间分配资源 265
16.5受控文档与质量记录 267
16.5.1受控文档和质量记录的定义和目标 267
16.5.2文档编制控制规程 269
16.5.3受控文档清单 270
16.5.4受控文档的编制 270
16.5.5受控文档的批准问题 271
16.5.6受控文档的存储与检索问题 271
16.5.7记录控制 272