第一部分 软件测试的基本知识 2
第1章 软件测试基础知识概述 2
1.1软件的基础知识概述 2
1.1.1软件的概念、特点和分类 2
1.1.2软件工程的内容、目标和问题 4
1.1.3软件的生存周期 5
1.2软件测试概述 8
1.2.1软件测试的概念 8
1.2.2软件测试的目的 9
1.2.3软件测试过程V模型 10
1.2.4软件测试的基本原则 11
1.2.5软件测试步骤 12
1.2.6软件错误的分类 13
1.2.7软件测试的任务 16
1.2.8软件测试的方法 16
1.2.9软件测试工具 17
1.3软件测试的流程 18
1.3.1软件测试 18
1.3.2软件测试流程 18
1.3.3软件测试阶段流程 20
1.4软件测试的组织结构和人员的要求 22
1.4.1软件测试的组织结构 22
1.4.2系统测试组的人员结构组成 22
1.4.3软件测试人员需要的知识 24
1.4.4软件测试人员需要的能力素质 24
1.5软件测试的前景 25
1.6软件测试的术语定义 29
第2章 软件测试的质量要求 36
2.1软件测试成熟度模型 36
2.1.1软件测试成熟度模型 36
2.1.2 TMM软件测试成熟度模型 简要介绍 37
2.2软件测试的质量 42
2.2.1软件质量属性 42
2.2.2软件测试的质量要求 43
2.2.3软件测试的质量控制 47
2.3软件测试人员的职责 47
2.3.1软件测试人员的职责要求 47
2.3.2软件测试人员对发布软件产品 应承担的责任 48
2.3.3软件测试人员要编写测试需求 49
2.3.4软件测试人员要编写测试用例 50
2.3.5软件测试人员重点实施的测试的 测试目标 50
2.4软件测试流程细则要求 51
第3章 自动化测试技术 53
3.1自动化测试的优点和缺点 53
3.1.1自动化测试的优点 53
3.1.2自动化测试的缺点 53
3.2自动化测试的过程 55
3.3一个支持多平台的自动化测试框架 模型 56
3.4选择自动化测试工具的原则 57
3.5自动化测试采用的技术 57
3.6自动化测试工具的级别 59
3.7自动化测试方案选择需要考虑的因素 60
3.8自动化测试要点 61
3.9自动化测试适用的情况和执行的先决 条件 61
3.10自动化测试工作中的重点 63
3.11自动化测试的基本流程 63
3.12自动化测试执行需要解决的问题 64
3.13自动化测试工具简介 65
3.13.1自动化测试工具的特征 65
3.13.2自动化测试工具的分类 66
3.13.3.主要的自动化测试工具 66
第4章 软件测试工作概述和测试工作 指南 71
4.1软件测试工作概述 71
4.1.1软件测试工作流程和工作过程 流程 71
4.1.2软件测试阶段 72
4.2软件测试工作指南 73
第二部分 软件测试的核心技术 76
第5章 白盒测试技术 76
5.1白盒测试的基本概念 76
5.1.1白盒测试 77
5.1.2白盒测试的原则 77
5.1.3白盒测试的策略和侧重点 77
5.1.4白盒测试的类别、依据和流程 77
5.2白盒测试方法 78
5.2.1代码检查 79
5.2.2代码检查方式 79
5.2.3代码检查项目 80
5.2.4静态结构分析 86
5.2.5 SQL语句测试 86
5.2.6代码检查的分析与评价 86
5.2.7静态质量度量 87
5.3白盒测试的常用技术 88
5.3.1逻辑覆盖法 88
5.3.2插桩技术 90
5.3.3基本路径测试法 90
5.3.4域测试法 92
5.3.5符号测试法 92
5.3.6 Z路径覆盖法 93
5.3.7程序变异测试法 93
5.4白盒测试的要求 93
5.4.1软件各层公用测试的要求 93
5.4.2 Java语言测试检查的要求 97
5.4.3数据类型测试检查的要求 97
5.4.4 SQL语句测试检查的要求 97
5.4.5界面测试检查的要求 101
5.4.6数值对象测试的要求 103
5.4.7业务对象测试的要求 104
5.4.8数据管理对象测试的要求 104
5.5人工静态测试方法 105
5.6动态测试 105
5.6.1动态测试的基本特征和流程 105
5.6.2动态测试原则 105
5.6.3动态测试方法 105
5.6.4动态测试的3个程序 106
5.7结构测试 106
5.7.1结构测试的定义、特点和局限性 106
5.7.2结构测试的方法 106
5.7.3结构测试方法的覆盖监视、断言处理和符号执行程序 108
第6章 黑盒测试技术 110
6.1黑盒测试的基本概念 110
6.1.1黑盒测试 110
6.1.2黑盒测试的优点和缺点 111
6.1.3对黑盒测试技术人员的要求 111
6.1.4黑盒测试的技术 111
6.1.5黑盒测试与白盒测试的比较 112
6.2黑盒测试的方法 112
6.2.1等价类划分法 113
6.2.2边界值分析法 116
6.2.3错误推测法 116
6.2.4因果图法 117
6.2.5判定表驱动分析法 120
6.2.6正交实验设计法 121
6.2.7功能图分析法 122
6.2.8场景设计法 122
6.3黑盒测试工具 123
6.3.1 QACenter测试工具 123
6.3.2 WinRunner测试工具 125
6.4黑盒测试的原则、策略和方法 126
6.4.1黑盒测试的原则 126
6.4.2黑盒测试的策略 126
6.4.3黑盒测试方法的步骤 126
6.5黑盒测试的阶段 126
第7章 测试用例设计方法 128
7.1测试用例概述 128
7.1.1测试用例的定义 128
7.1.2测试用例的基本要素 128
7.1.3测试用例的主要内容 129
7.1.4测试用例的作用 130
7.1.5测试用例的优点 131
7.1.6选择测试用例的原则 131
7.1.7测试用例的特性 132
7.1.8测试用例的分类 132
7.1.9设计测试用例所需的文档资料 132
7.2测试用例设计的要点 132
7.2.1设计测试用例应注意的问题 133
7.2.2白盒测试用例的设计 133
7.2.3黑盒测试用例的设计 133
7.2.4综合设计 134
7.2.5单元测试用例的设计 134
7.2.6功能测试用例设计 134
7.2.7集成测试用例设计 135
7.2.8性能测试用例设计 135
7.2.9系统测试用例设计 135
7.2.10验收测试用例设计 135
7.2.11回归测试用例设计 136
7.3测试用例的管理 136
7.4测试用例的设计 136
7.4.1数据处理类测试用例的设计 136
7.4.2输入数据动作的编写 137
7.4.3一般测试的测试用例的设计 137
7.4.4易用性测试用例的设计 138
7.4.5接口测试用例的设计 139
7.4.6需求测试用例的设计 139
7.4.7路径测试用例的设计 140
7.4.8功能测试的测试用例设计 141
7.4.9恢复能力测试用例的设计 141
7.4.10容错能力测试用例的设计 142
7.4.11性能测试用例的设计 142
7.4.12界面测试用例的设计 143
7.4.13信息安全测试用例的设计 143
7.4.14压力测试用例的设计 144
7.4.15 可靠性测试用例的设计 144
7.4.16安装/反安装测试用例的设计 145
第三部分 软件测试的实用技术与测试实训 148
第8章 对本书测试模型的介绍 148
8.1引言 149
8.1.1编写目的 149
8.1.2背景 149
8.1.3定义 150
8.1.4参考资料 150
8.2程序系统的结构 150
8.3对密码修改模块的设计说明 153
8.3.1程序描述 153
8.3.2功能 153
8.3.3输入项 154
8.3.4输出项 154
8.3.5算法 154
8.3.6流程逻辑 154
8.3.7接口 155
8.4详细查询功能设计说明 155
8.4.1程序描述 155
8.4.2功能 155
8.4.3输入项 155
8.4.4输出项 155
8.4.5算法 156
8.4.6流程逻辑 156
8.4.7接口 156
第9章 数值计算程序测试的实训 158
9.1数值计算程序测试目的 158
9.2数值计算程序测试实训的注意点 158
9.3 Lagrange插值实训 159
9.3.1 Lagrange插值程序的源程序 159
9.3.2应用示例 160
9.4数值计算程序进行的测试实训 161
第10章 单元测试和单元测试实训 165
10.1单元测试概述 165
10.1.1单元测试的目的 165
10.1.2单元测试的内容 165
10.1.3单元测试的优点 168
10.1.4单元测试所需文档资料 168
10.2单元测试的步骤 168
10.3单元测试需要填写的表格 170
10.4单元测试提交的软件Bug清单 171
10.5单元测试的测试用例 171
10.6单元测试的人工测试实训和操作 方法 172
10.7单元测试的自动化测试实训和操作 方法 175
10.7.1单元自动化测试要清楚的 事情和重点 175
10.7.2选择适用的单元测试工具 176
10.7.3单元自动化测试中需要注意的 问题 177
10.7.4单元自动化测试案例 177
第11章 功能测试和功能测试实训 182
11.1功能测试概述 182
11.1.1功能测试的基本概念 182
11.1.2功能自动化测试的基本要求 182
11.1.3功测试需要的参考文档 183
11.2功能测试的重点 183
11.3功能测试的常见方法 184
11.3.1安装测试 184
11.3.2卸载测试 186
11.3.3运行与关闭测试 189
11.3.4菜单功能测试 190
11.3.5浏览功能测试 191
11.3.6选择功能测试 191
11.3.7搜查功能测试 192
11.3.8统计功能测试 192
11.3.9 Web功能测试 193
11.3.10翻页功能测试 194
11.4功能测试的常见流程 194
11.5功能测试的人工测试实训和操作方法 195
11.5.1安装卸载测试 195
11.5.2手机信息管理系统模型的登录 测试 198
11.6功能测试的自动化测试实训操作 方法 200
11.6.1自动化功能测试应该何时开始 200
11.6.2自动化功测 试的脚本开发方法 201
11.6.3自动化功能测试的基本流程 201
11.6.4自动化功能测试的成本问题 203
11.6.5自动化功能测试实例 203
第12章 性能测试和性能测试实训 209
12.1性能测试概述 209
12.1.1性能测试的目的 209
12.1.2性能测试的先决条件 210
12.1.3性能测试的准备工作 210
12.2性能测试的基本要求 211
12.2.1性能测试所需相关文档 211
12.2.2对性能测试相关文档的要求 211
12.2.3对进行性能测试的人员的要求 211
12.3性能测试的内容 211
12.3.1性能测试的分类 212
12.3.2性能测试的方法和策略 212
12.3.3性能测试的调优 216
12.4检查测试环境 216
12.5性能测试的执行流程 217
12.6性能测试常用的测试用例 217
12.7性能测试的自动化测试实训和操作 方法 221
12.7.1待测测试模型介绍 221
12.7.2使用LoadRunner进行负载 压力测试 222
第13章 集成测试和集成测试实训 227
13.1集成测试概述 227
13.1.1集成测试基本情况 227
13.1.2集成测试重点考虑的内容 227
13.1.3集成测试的过程 228
13.2集成测试的方法 228
13.2.1自底向上集成测试 229
13.2.2自顶向下集成测试 229
13.2.3核心系统先行集成测试 230
13.2.4高频集成测试 230
13.2.5桩驱动测试 231
13.3集成测试阶段的工作 232
13.3.1计划阶段 232
13.3.2设计阶段 232
13.3.3实现阶段 232
13.3.4执行阶段 233
13.4集成测试的步骤和测试用例 233
13.5集成测试中的注意事项 234
13.6集成测试完成的标志 235
13.7集成测试的人工测试实训和操作方法 235
第14章 系统测试和系统测试实训 238
14.1系统测试概述 238
14.1.1系统测试的目的 238
14.1.2系统测试的意义 238
14.1.3系统测试的主要内容 239
14.1.4系统测试的目标 240
14.1.5系统测试的测试类型 240
14.1.6系统测试过程 241
14.1.7系统测试策略 242
14.1.8系统测试环境 242
14.2系统测试的测试方法和策略 242
14.2.1系统测试的测试方法 242
14.2.2系统测试的测试策略 244
14.3系统测试过程 245
14.4系统测试的结果分析 246
14.5系统测试文档资料 247
14.6系统测试的人工测试实训和操作 方法 248
14.6.1登录界面的测试 248
14.6.2修改用户名和密码模块的测试 248
14.6.3手机信息管理系统界面的测试 252
14.6.4易用性测试 255
第15章 验收测试的实用技术 256
15.1验测试的条件、目的和涉及的文档 256
15.1.1验收测试的首要条件 256
15.1.2验收测试的目的 257
15.1.3验收测试的过程 257
15.1.4验收测试的主要内容 257
15.1.5验收测试的需求文档 258
15.1.6验收测试的设计思路 258
15.2应用系统的验收测试 259
15.2.1验收工作 259
15.2.2验收报告 259
15.2.3鉴定工作程序和文档资料 260
15.3外包软件的验收测试 263
15.3.1外包软件验收测试的软件配置和 配置审核 263
15.3.2非正式验收测试 264
15.3.3正式验收测试 265
15.4验收测试的组织过程 265
15.4.1验收测试组织方案 265
15.4.2项目进度审核 265
15.4.3验收测试计划 266
15.5验收测试内容 266
15.5.1验收测试的要点 266
15.5.2测试结果及缺陷分析 267
15.5.3项目验收情况汇总 267
15.6文档验收 268
15.6.1文档验收主要内容 268
15.6.2验收过程涉及的一些文档 269
15.7交付工作 269
15.7.1乙方提供给甲方的项目交付物 清单 269
15.7.2项目交付培训 270
15.7.3其他交付工作 270
第16章 回归测试和回归测试实训 271
16.1回归测试概述 271
16.1.1什么是回归测试 271
16.1.2回归测试的目的 271
16.1.3回归测试的范围 272
16.1.4回归测试的基本过程 272
16.1.5回归测试的策略 273
16.1.6回归测试人员 273
16.1.7选择有效的回归测试包 273
16.1.8人工回归测试流程 274
16.1.9自动回归测试流程 274
16.1.10自动回归测试框架的作用和 技术特点 274
16.2回归测试用例库的维护方法 276
16.2.1删除过时的测试用例 276
16.2.2改进不受控的测试用例 276
16.2.3删除冗余的测试用例 277
16.2.4增添新的测试用例 277
16.3回归测试的方法 277
16.3.1再测试全部用例 277
16.3.2基于风险进行测试 277
16.3.3基于操作进行测试 277
16.3.4仅测试修改部分 277
16.4总结回归测试的结果 278
16.5回归测试自动化的问题 279
16.6回归测试实践总结 279
16.7回归测试文档 280
16.8人工回归测试实训和操作方法 280
16.9回归测试的自动化测试实训和操作 方法 282
16.9.1自动化回归测试工作中的问题 282
16.9.2自动化回归测试解决方案 282
16.9.3手机信息管理系统回归测试 案例 283
第17章 软件的其他测试技术 286
17.1可用性测试 286
17.1.1可用性测试的概念 286
17.1.2可用性测试的方法 286
17.1.3可用性测试的目的 287
17.2压力测试 287
17.2.1压力测试的定义、特点和 核心原则 287
17.2.2压力测试的目标 288
17.3确认测试 288
17.3.1确认测试的定义 288
17.3.2确认测试的内容 288
17.4容错性测试 289
17.4.1容错性测试的定义 289
17.4.2容错性测试的内容 289
17.4.3需考虑的特殊事项 289
17.5易用性测试 290
17.5.1易用性测试的定义 290
17.5.2易用性测试的内容 290
17.6安全性测试 290
17.6.1什么是软件安全 291
17.6.2安全性测试的内容和方法 291
17.7需求分析测试 292
17.7.1需求分析的定义和测试任务 292
17.7.2需求分析测试的内容 292
17.8可靠性测试 293
17.8.1可靠性测试概述 293
17.8.2软件可靠性测试中需注意的 问题 293
17.8.3软件可靠性测试的流程 293
17.9 Web测试 296
17.9.1 Web的功能测试 296
17.9.2 Web的性能测试 297
17.9.3 Web的用户界面测试 297
17.9.4 Web的兼容性测试 298
17.9.5 Web的安全性测试 298
17.9.6 Web的接口测试 299
17.10接口测试 299
17.10.1接口测试概述 299
17.10.2接口测试的内容 300
17.10.3接口测试的测试项目 300
17.11安装和反安装测试 301
17.11.1安装和反安装测试的工作 301
17.11.2安装和反安装测试的目标 301
17.11.3安装测试和反安装测试的内容 301
第18章 配置测试和配置测试实训 303
18.1配置测试概述 303
18.1.1软件配置管理的概念 303
18.1.2软件配置管理的定义 303
18.1.3软件测试配置管理的任务 304
18.1.4软件测试配置管理的目的 304
18.1.5软件测试配置管理的基本目标 305
18.1.6软件测试配置管理的执行约定 305
18.1.7软件测试配置管理的执行能力 305
18.1.8软件配置测试管理组负责协调的 工作 306
18.1.9软件配置测试管理的流程 306
18.1.10软件测试配置管理的关键活动 307
18.1.11软件配置管理的要求 308
18.1.12配置测试的前提条件 310
18.1.13配置测试的范围 310
18.1.14配置测试的目标 310
18.1.15软件测试配置管理人员工作的 主要内容 311
18.2配置测试技术 312
18.2.1配置测试设计 313
18.2.2配置测试常用技术的使用 313
18.3配置测试的主要内容 314
18.3.1硬件环境配置测试 314
18.3.2软件环境配置测试 316
18.4配置测试工作的文档 319
18.5配置测试的人工测试实训和操作方法 319
第19章 软件缺陷测试和测试评估 322
19.1软件缺陷概述 322
19.1.1软件缺陷的定义 322
19.1.2软件缺陷的特征 322
19.1.3软件缺陷的类型 323
19.1.4缺陷状态 324
19.1.5缺陷的等级划分与优先级 325
19.1.6软件缺陷的标识、种类和属性 325
19.1.7缺陷的起源、来源和根源 327
19.1.8缺陷记录 328
19.2软件缺陷的生命周期 328
19.2.1软件缺陷的生命周期概述 328
19.2.2软件缺陷生命状态的定义 329
19.3软件缺陷的跟踪管理 330
19.3.1软件缺陷测试报告 330
19.3.2缺陷类别 333
19.3.3缺陷的分离和重现 333
19.3.4软件缺陷跟踪系统 334
19.4软件测试的评估 335
19.4.1测试覆盖评估 335
19.4.2软件测试的质量评估 336
19.4.3软件测试的缺陷评估 340
19.4.4性能测试评估 342
第20章 软件测试管理 344
20.1测试项目与测试管理概述 344
20.2测试项目的范围管理 347
20.3测试过程管理 348
20.4软件测试管理对组织和人员的管理 351
20.4.1软件测试的组织和组织的职能 351
20.4.2测试的组织结构 353
20.4.3测试管理人员的能力要求 353
20.4.4测试管理人员的培训 354
20.5变更请求和变更请求管理 354
20.6测试项目的进度管理 355
20.7软件测试的成本管理 356
20.7.1软件测试成本管理概述 356
20.7.2测试费用有效性 360
第四部分 软件测试文档写作与 测试所需的常用模板 362
第21章 测试文档的写作 362
21.1测试文档的写作目的 362
21.2测试文档的写作要求 362
21.3常用的测试文档 364
第22章 软件测试所需的常用模板 365
参考文献 366