软件测试(慕课版 第2版)

工业和信息化部十四五规划教材,陕西省2019金课(精品在线课程),新形态慕课版教材
分享 推荐 2 收藏 55 阅读 8.0K
郑炜 (作者) 978-7-115-56425-2

关于本书的内容有任何问题,请联系 刘博

1. 本书被评为工业和信息化部十四五规划教材,陕西省2019金课(精品在线课程)。
2. 体现新工科特色,将近年来软件测试的新技术、新理论融入到书中,书中包含软件度量、数据库测试和智能软件测试等新技术内容。
3. 新形态教材,基于互联网媒介建设慕课教学内容。各章节均配备了以二维码为载体的微课,并在学堂在线平台提供了在线慕课。慕课中的视频与教材的互相配合,可有效提高学生在线学习效率。慕课课程在2016年获得首批国家级慕课立项,2017年在慕课平台“学堂在线”上线,随后2018年在“中国大学慕课”上线,目前已选课人数1万多人,成为学堂在线的人气视频课程。
4. 作者团队多年从事软件测试教学与科研,2018年“校企全过程深度融合的软件工程教学体系构建与实践”获国家教学成果二等奖,多次获得西北工业大学教学成果奖一等奖和二等奖。

内容摘要


本书系统介绍了软件测试的基本理论、工具的使用,以及前沿的软件测试理论和技术。
全书共分为11章,内容包括:软件测试的基础、软件测试的策略、黑盒测试与白盒测试、软件测试过程管理、软件测试的度量方法、系统测试技术、软件测试工具及其应用、第三方测试、公有云测试质量评估与退出方法、企业测试实践、CMMI与软件测试、基于搜索的软件测试。本书所有知识都以结合具体实例的形式进行介绍,力求详略得当,使读者可以快速地理解软件测试的方法。章后附有习题,供读者实践练习。同时各章节主要内容配备了以二维码为载体的微课,并在学堂在线(http://www.xuetangx.com)平台上提供了在线慕课。

诚邀您加入【人邮社软件工程教师交流群】

目录

第1章 软件测试基础 2
1.1 软件测试的基本概念 2
1.1.1 软件测试是什么 2
1.1.2 软件测试的目的 3
1.1.3 软件测试与软件质量保证 3
1.1.4 软件测试的必要性 5
1.1.5 软件测试的基本概念分析 6
1.2 软件测试的分类 7
1.3 软件缺陷管理 10
1.3.1 软件缺陷的概念 10
1.3.2 软件缺陷的属性 10
1.3.3 软件缺陷生命周期 12
1.3.4 常见的软件缺陷管理工具 13
1.4 软件质量与软件测试相关特性 14
1.4.1 软件质量模型 14
1.4.2 测试的复杂性和经济性 16
1.5 软件测试充分性和测试停止
准则 19
1.5.1 软件的测试充分性问题 19
1.5.2 软件测试原则 20
1.5.3 测试停止准则 23
1.6 小结 25
1.7 习题 26
第2章 软件测试策略 27
2.1 软件开发过程及模型 27
2.1.1 软件开发过程 27
2.1.2 软件开发模型 27
2.2 软件测试过程 30
2.2.1 测试计划和控制 31
2.2.2 测试分析和设计 32
2.2.3 测试实现和执行 33
2.2.4 测试出口准则的评估和
报告 33
2.2.5 测试活动结束 34
2.3 软件测试与软件开发的关系 35
2.3.1 软件测试在软件开发中的
作用 35
2.3.2 软件测试与软件开发各
阶段的关系 35
2.3.3 常见软件测试模型 36
2.4 黑盒测试和白盒测试 39
2.4.1 黑盒测试 40
2.4.2 白盒测试 41
2.4.3 黑盒测试与白盒测试的比较 42
2.5 小结 43
2.6 习题 43
第3章 黑盒测试方法 44
3.1 测试用例综述 44
3.1.1 测试用例设计原则 44
3.1.2 测试用例设计步骤 46
3.1.3 测试用例的构成 47
3.2 等价类设计方法 48
3.2.1 等价类划分 49
3.2.2 等价类划分方法 50
3.2.3 等价类划分的测试运用 52
3.3 边界值设计方法 57
3.3.1 边界值分析法原理 57
3.3.2 边界值分析原则 58
3.3.3 健壮性分析 60
3.3.4 边界值分析法的测试
运用 60
3.4 因果图和决策表设计方法 62
3.4.1 因果图原理 62
3.4.2 因果图法应用 63
3.4.3 决策表法及其应用 64
3.5 正交试验设计方法 67
3.5.1 正交试验设计法原理 67
3.5.2 利用正交试验法设计测试
用例 69
3.6 组合测试方法 70
3.6.1 基本概念 70
3.6.2 构造方法 72
3.6.3 组合测试工具使用 73
3.7 小结 75
3.7 习题 75
第4章 白盒测试方法 77
4.1 程序控制流图 77
4.1.1 基本块 77
4.1.2 流图的定义与图形表示 78
4.2 逻辑覆盖测试 79
4.2.1 测试覆盖率 79
4.2.2 逻辑覆盖 79
4.2.3 逻辑覆盖准则之间的包含
关系 81
4.2.4 测试覆盖准则 81
4.3 路径分析与测试 82
4.4 数据流测试分析 84
4.4.1 测试充分性基础 84
4.4.2 测试充分性准则的度量 84
4.4.3 测试集充分性的度量 86
4.4.4 数据流概念 86
4.4.5 基于数据流的测试充分性
准则 89
4.5 变异测试 90
4.5.1 变异和变体 90
4.5.2 强变异和弱变异 91
4.5.3 用变异技术进行测试
评价 92
4.5.4 变异算子 94
4.5.5 变异算子的设计 95
4.5.6 变异测试的基本原则 95
4.6 小结 96
4.7 习题 96
第5章 软件测试的过程管理 98
5.1 软件测试的各个阶段 98
5.2 测试需求 99
5.2.1 测试需求的分类 99
5.2.2 测试需求的收集 100
5.2.3 测试需求的分析 101
5.2.4 测试需求的评审 101
5.3 测试计划 102
5.3.1 测试计划的目标 102
5.3.2 制订测试计划 103
5.3.3 划分测试用例优先级 103
5.4 测试设计及测试用例 104
5.4.1 测试用例的设计原则 104
5.4.2 测试用例的设计方法 105
5.4.3 测试用例的粒度 107
5.4.4 测试用例的评审 108
5.5 测试的执行 108
5.5.1 测试用例的选择 108
5.5.2 测试人员分工 109
5.5.3 测试环境的搭建 109
5.5.4 BVT测试与冒烟测试 110
5.5.5 每日构建介绍 110
5.6 软件缺陷分析 111
5.6.1 软件缺陷分析的作用 112
5.6.2 软件缺陷的分类 112
5.6.3 软件缺陷分析方法 112
5.6.4 软件缺陷分析的流程 114
5.6.5 软件缺陷报告 115
5.7 小结 116
5.8 习题 116
第6章 软件测试的度量 117
6.1 软件测试度量简介 117
6.1.1 软件测试度量的目的 117
6.1.2 软件测试度量的难度 119
6.1.3 软件测试人员工作质量的
衡量 120
6.2 软件测试的度量及其应用 125
6.2.1 度量软件缺陷的数量 125
6.2.2 软件测试的度量及其
应用 126
6.2.3 软件缺陷的定性评估 128
6.2.4 软件缺陷综合评价模型 129
6.2.5 测试覆盖率统计 130
6.3 软件测试常见的度量类型 133
6.3.1 手工测试度量 134
6.3.2 性能测试度量 139
6.3.3 自动化测试度量 141
6.3.4 通用度量 142
6.4 小结 143
6.5 习题 144
第2部分 实际应用
第7章 系统测试技术 146
7.1 软件自动化测试 146
7.1.1 自动化测试的概念 146
7.1.2 自动化测试的优缺点 148
7.1.3 自动化测试工具 149
7.2 兼容性测试 151
7.2.1 兼容性测试的概念 151
7.2.2 兼容性测试的内容 152
7.2.3 兼容性测试的标准和
规范 155
7.2.4 兼容性测试工具 156
7.3 Web测试实践 156
7.3.1 Web应用体系结构 156
7.3.2 Web测试概述 157
7.3.3 Web测试主要类型 157
7.4 移动终端软件测试实践 162
7.4.1 移动终端软件测试背景 162
7.4.2 移动终端软件测试要求 163
7.4.3 移动终端软件测试实例 163
7.5 小结 175
7.6 习题 176
第8章 软件测试工具及其应用 177
8.1 性能测试工具LoadRunner 177
8.1.1 性能测试简介 177
8.1.2 LoadRunner的主要
功能 179
8.1.3 性能测试的主要术语 181
8.1.4 LoadRunner的安装 182
8.1.5 LoadRunner的脚本
录制 184
8.2 单元测试工具JUnit 188
8.2.1 JUnit简介 188
8.2.2 安装与使用 189
8.2.3 JUnit使用原则 193
8.2.4 其他特性 195
8.3 功能测试工具C++test 197
8.3.1 C++test的安装 199
8.3.2 C++test静态测试 201
8.3.3 RuleWizard 203
8.3.4 C++test动态测试 210
8.4 开源软件缺陷管理工具
Bugzilla 217
8.4.1 Bugzilla简介 217
8.4.2 Bugzilla安装说明 218
8.4.3 Bugzilla使用说明 221
8.5 测试用例自动生成工具
EvoSuite 224
8.5.1 EvoSuite简介 224
8.5.2 EvoSuite安装说明 224
8.5.3 EvoSuite使用说明 228
8.6 变异测试工具Pitest 232
8.6.1 Pitest简介 232
8.6.2 Pitest安装说明 232
8.6.3 Pitest使用说明 234
8.7 小结 237
8.8 习题 237
第9章 第三方测试 238
9.1 第三方测试的基本概念与测试
过程 238
9.1.1 第三方测试的应用现状 238
9.1.2 第三方测试的意义和
模式 239
9.1.3 第三方测试的相关概念 240
9.1.4 第三方测试的测试过程 240
9.2 测试实例实践 242
9.3 小结 245
9.4 习题 245
第10章 数据库测试 246
10.1 数据库应用软件测试 246
10.1.1 数据库设计验证 246
10.1.2 功能测试 247
10.1.3 性能测试 248
10.1.5 安全性测试 253
10.2 数据库管理系统基础测试 254
10.2.1 数据库管理系统简介 254
10.2.2 DBMS的SQL功能
测试 254
10.2.3 DBMS的事务特性
测试 256
10.3 数据库管理系统性能测试 257
10.3.1 DBMS性能测试的目的
与性能指标 257
10.3.2 DBMS的基准性能
测试 257
10.3.3 DBMS的性能测试
工具 258
10.4 数据库管理系统高可用性
测试 261
10.5 小结 261
10.6 习题 262
第3部分 前沿技术
第11章 智能软件测试技术 264
11.1 基于机器学习的软件缺陷报告
分析 264
11.1.1 基于机器学习的软件缺陷
报告分析的目的和意义 264
11.1.2 安全缺陷检测数据集的
构造 266
11.1.3 基于深度学习的安全缺陷
报告检测 272
11.2 基于软件度量的软件缺陷预测
方法 277
11.2.1 基于软件度量的软件缺陷
预测的目的和意义 277
11.2.2 软件缺陷预测模型的
构建 278
11.2.3 软件缺陷预测模型性能
评估指标 285
11.2.4 软件缺陷预测常用评测
数据集 287
11.3 基于搜索的软件测试方法 288
11.3.1 智能搜索算法 288
11.3.2 搜索技术在软件测试中的
应用 300
11.4 小结 314
11.5 习题 314
第12章 公有云测试质量评估 315
12.1 云测试概念 316
12.1.1 云计算 316
12.1.2 云测试 317
12.2 云可靠性度量 318
12.2.1 软件可靠性 318
12.2.2 软件故障分析和诊断 327
12.3 安全测试及安全度量 328
12.3.1 安全性测试方法 329
12.3.2 安全测试方法举例 332
12.4 小结 335
12.5 习题 335
第13章 软件测试的拓展与提高 336
13.1 企业测试实践 336
13.1.1 测试计划 336
13.1.2 测试管理 338
13.1.3 企业的测试策略 341
13.1.4 测试人员组织 341
13.1.5 测试小组的职责 342
13.2 CMMI和软件测试 343
13.2.1 CMMI简介 343




第1章 软件测试基础 2
1.1 软件测试的基本概念 2
1.1.1 软件测试是什么 2
1.1.2 软件测试的目的 3
1.1.3 软件测试与软件质量保证 3
1.1.4 软件测试的必要性 5
1.1.5 软件测试的基本概念分析 6
1.2 软件测试的分类 7
1.3 软件缺陷管理 10
1.3.1 软件缺陷的概念 10
1.3.2 软件缺陷的属性 10
1.3.3 软件缺陷生命周期 12
1.3.4 常见的软件缺陷管理工具 13
1.4 软件质量与软件测试相关特性 14
1.4.1 软件质量模型 14
1.4.2 测试的复杂性和经济性 16
1.5 软件测试充分性和测试停止
准则 19
1.5.1 软件的测试充分性问题 19
1.5.2 软件测试原则 20
1.5.3 测试停止准则 23
1.6 小结 25
1.7 习题 26
第2章 软件测试策略 27
2.1 软件开发过程及模型 27
2.1.1 软件开发过程 27
2.1.2 软件开发模型 27
2.2 软件测试过程 30
2.2.1 测试计划和控制 31
2.2.2 测试分析和设计 32
2.2.3 测试实现和执行 33
2.2.4 测试出口准则的评估和
报告 33
2.2.5 测试活动结束 34
2.3 软件测试与软件开发的关系 35
2.3.1 软件测试在软件开发中的
作用 35
2.3.2 软件测试与软件开发各
阶段的关系 35
2.3.3 常见软件测试模型 36
2.4 黑盒测试和白盒测试 39
2.4.1 黑盒测试 40
2.4.2 白盒测试 41
2.4.3 黑盒测试与白盒测试的比较 42
2.5 小结 43
2.6 习题 43
第3章 黑盒测试方法 44
3.1 测试用例综述 44
3.1.1 测试用例设计原则 44
3.1.2 测试用例设计步骤 46
3.1.3 测试用例的构成 47
3.2 等价类设计方法 48
3.2.1 等价类划分 49
3.2.2 等价类划分方法 50
3.2.3 等价类划分的测试运用 52
3.3 边界值设计方法 57
3.3.1 边界值分析法原理 57
3.3.2 边界值分析原则 58
3.3.3 健壮性分析 60
3.3.4 边界值分析法的测试
运用 60
3.4 因果图和决策表设计方法 62
3.4.1 因果图原理 62
3.4.2 因果图法应用 63
3.4.3 决策表法及其应用 64
3.5 正交试验设计方法 67
3.5.1 正交试验设计法原理 67
3.5.2 利用正交试验法设计测试
用例 69
3.6 组合测试方法 70
3.6.1 基本概念 70
3.6.2 构造方法 72
3.6.3 组合测试工具使用 73
3.7 小结 75
3.7 习题 75
第4章 白盒测试方法 77
4.1 程序控制流图 77
4.1.1 基本块 77
4.1.2 流图的定义与图形表示 78
4.2 逻辑覆盖测试 79
4.2.1 测试覆盖率 79
4.2.2 逻辑覆盖 79
4.2.3 逻辑覆盖准则之间的包含
关系 81
4.2.4 测试覆盖准则 81
4.3 路径分析与测试 82
4.4 数据流测试分析 84
4.4.1 测试充分性基础 84
4.4.2 测试充分性准则的度量 84
4.4.3 测试集充分性的度量 86
4.4.4 数据流概念 86
4.4.5 基于数据流的测试充分性
准则 89
4.5 变异测试 90
4.5.1 变异和变体 90
4.5.2 强变异和弱变异 91
4.5.3 用变异技术进行测试
评价 92
4.5.4 变异算子 94
4.5.5 变异算子的设计 95
4.5.6 变异测试的基本原则 95
4.6 小结 96
4.7 习题 96
第5章 软件测试的过程管理 98
5.1 软件测试的各个阶段 98
5.2 测试需求 99
5.2.1 测试需求的分类 99
5.2.2 测试需求的收集 100
5.2.3 测试需求的分析 101
5.2.4 测试需求的评审 101
5.3 测试计划 102
5.3.1 测试计划的目标 102
5.3.2 制订测试计划 103
5.3.3 划分测试用例优先级 103
5.4 测试设计及测试用例 104
5.4.1 测试用例的设计原则 104
5.4.2 测试用例的设计方法 105
5.4.3 测试用例的粒度 107
5.4.4 测试用例的评审 108
5.5 测试的执行 108
5.5.1 测试用例的选择 108
5.5.2 测试人员分工 109
5.5.3 测试环境的搭建 109
5.5.4 BVT测试与冒烟测试 110
5.5.5 每日构建介绍 110
5.6 软件缺陷分析 111
5.6.1 软件缺陷分析的作用 112
5.6.2 软件缺陷的分类 112
5.6.3 软件缺陷分析方法 112
5.6.4 软件缺陷分析的流程 114
5.6.5 软件缺陷报告 115
5.7 小结 116
5.8 习题 116
第6章 软件测试的度量 117
6.1 软件测试度量简介 117
6.1.1 软件测试度量的目的 117
6.1.2 软件测试度量的难度 119
6.1.3 软件测试人员工作质量的
衡量 120
6.2 软件测试的度量及其应用 125
6.2.1 度量软件缺陷的数量 125
6.2.2 软件测试的度量及其
应用 126
6.2.3 软件缺陷的定性评估 128
6.2.4 软件缺陷综合评价模型 129
6.2.5 测试覆盖率统计 130
6.3 软件测试常见的度量类型 133
6.3.1 手工测试度量 134
6.3.2 性能测试度量 139
6.3.3 自动化测试度量 141
6.3.4 通用度量 142
6.4 小结 143
6.5 习题 144
第2部分 实际应用
第7章 系统测试技术 146
7.1 软件自动化测试 146
7.1.1 自动化测试的概念 146
7.1.2 自动化测试的优缺点 148
7.1.3 自动化测试工具 149
7.2 兼容性测试 151
7.2.1 兼容性测试的概念 151
7.2.2 兼容性测试的内容 152
7.2.3 兼容性测试的标准和
规范 155
7.2.4 兼容性测试工具 156
7.3 Web测试实践 156
7.3.1 Web应用体系结构 156
7.3.2 Web测试概述 157
7.3.3 Web测试主要类型 157
7.4 移动终端软件测试实践 162
7.4.1 移动终端软件测试背景 162
7.4.2 移动终端软件测试要求 163
7.4.3 移动终端软件测试实例 163
7.5 小结 175
7.6 习题 176
第8章 软件测试工具及其应用 177
8.1 性能测试工具LoadRunner 177
8.1.1 性能测试简介 177
8.1.2 LoadRunner的主要
功能 179
8.1.3 性能测试的主要术语 181
8.1.4 LoadRunner的安装 182
8.1.5 LoadRunner的脚本
录制 184
8.2 单元测试工具JUnit 188
8.2.1 JUnit简介 188
8.2.2 安装与使用 189
8.2.3 JUnit使用原则 193
8.2.4 其他特性 195
8.3 功能测试工具C++test 197
8.3.1 C++test的安装 199
8.3.2 C++test静态测试 201
8.3.3 RuleWizard 203
8.3.4 C++test动态测试 210
8.4 开源软件缺陷管理工具
Bugzilla 217
8.4.1 Bugzilla简介 217
8.4.2 Bugzilla安装说明 218
8.4.3 Bugzilla使用说明 221
8.5 测试用例自动生成工具
EvoSuite 224
8.5.1 EvoSuite简介 224
8.5.2 EvoSuite安装说明 224
8.5.3 EvoSuite使用说明 228
8.6 变异测试工具Pitest 232
8.6.1 Pitest简介 232
8.6.2 Pitest安装说明 232
8.6.3 Pitest使用说明 234
8.7 小结 237
8.8 习题 237
第9章 第三方测试 238
9.1 第三方测试的基本概念与测试
过程 238
9.1.1 第三方测试的应用现状 238
9.1.2 第三方测试的意义和
模式 239
9.1.3 第三方测试的相关概念 240
9.1.4 第三方测试的测试过程 240
9.2 测试实例实践 242
9.3 小结 245
9.4 习题 245
第10章 数据库测试 246
10.1 数据库应用软件测试 246
10.1.1 数据库设计验证 246
10.1.2 功能测试 247
10.1.3 性能测试 248
10.1.5 安全性测试 253
10.2 数据库管理系统基础测试 254
10.2.1 数据库管理系统简介 254
10.2.2 DBMS的SQL功能
测试 254
10.2.3 DBMS的事务特性
测试 256
10.3 数据库管理系统性能测试 257
10.3.1 DBMS性能测试的目的
与性能指标 257
10.3.2 DBMS的基准性能
测试 257
10.3.3 DBMS的性能测试
工具 258
10.4 数据库管理系统高可用性
测试 261
10.5 小结 261
10.6 习题 262
第3部分 前沿技术
第11章 智能软件测试技术 264
11.1 基于机器学习的软件缺陷报告
分析 264
11.1.1 基于机器学习的软件缺陷
报告分析的目的和意义 264
11.1.2 安全缺陷检测数据集的
构造 266
11.1.3 基于深度学习的安全缺陷
报告检测 272
11.2 基于软件度量的软件缺陷预测
方法 277
11.2.1 基于软件度量的软件缺陷
预测的目的和意义 277
11.2.2 软件缺陷预测模型的
构建 278
11.2.3 软件缺陷预测模型性能
评估指标 285
11.2.4 软件缺陷预测常用评测
数据集 287
11.3 基于搜索的软件测试方法 288
11.3.1 智能搜索算法 288
11.3.2 搜索技术在软件测试中的
应用 300
11.4 小结 314
11.5 习题 314
第12章 公有云测试质量评估 315
12.1 云测试概念 316
12.1.1 云计算 316
12.1.2 云测试 317
12.2 云可靠性度量 318
12.2.1 软件可靠性 318
12.2.2 软件故障分析和诊断 327
12.3 安全测试及安全度量 328
12.3.1 安全性测试方法 329
12.3.2 安全测试方法举例 332
12.4 小结 335
12.5 习题 335
第13章 软件测试的拓展与提高 336
13.1 企业测试实践 336
13.1.1 测试计划 336
13.1.2 测试管理 338
13.1.3 企业的测试策略 341
13.1.4 测试人员组织 341
13.1.5 测试小组的职责 342
13.2 CMMI和软件测试 343
13.2.1 CMMI简介 343

读者评论

赶紧抢沙发哦!

我要评论

作者介绍

郑炜,西北工业大学软件学院副教授,CCF高级会员,软件工程,系统软件、形式化方法执行委员。在软件工程领域的顶会顶刊上发表论文60余篇,其中包括TOSEM,TSE,TR,ICSE,FSE、KBS、JSS,IST, SANER,ISSRE,软件学报等。主持、参与国家863,973、国家自然重大仪器项目,国家自然重点基金等项目六项,与研究所和企业进行多个项目合作,主要涉及第三方软件测试、软件工具、测试平台研发,形式化验证等,科研经费超千万。主讲的《软件测试》课程在学堂在线、爱课程上选为精品课程。2019年软件测试课程获得陕西省精品在线课程,《软件测试》教材第二版获得工业信息化部十四五推荐教材,并且被五十多所学校指定为教材。指导学生获得多项国家一等奖,包括挑战杯,软件杯,服务外包大赛,数模竞赛,软件测试大赛等。

推荐用户

购买本书用户

相关图书

人邮微信
本地服务
人邮微信
教师服务
二维码
读者服务
读者服务
返回顶部
返回顶部