书籍详情
软件测试(第2版)
作者:朱少民
出版社:人民邮电出版社
出版时间:2016-07-01
ISBN:9787115412935
定价:¥49.80
购买这本书可以去
内容简介
本书系统地介绍了软件测试的概念,从不同的视角来探讨软件测试的本质及其内涵,重点讲解了软件测试的各种方法和技术,并将它们应用于不同的测试阶段,满足不同的应用系统测试的需求。本书用了较大篇幅详细介绍了自动化测试的原理、方法和工具,通过一些典型的测试工具展示了自动化测试的过程,使读者更容易掌握自动化测试的技术和实践方法。
作者简介
朱少民,同济大学教授要研究项目及领域: 软件工程、软件测试和项目管理 以前出版的教材: 软件测试方法和技术(2005.7)、 软件质量保证和管理(2007.1)、 软件过程管理 (2007.4) 其他:目前管理着专业的、近300人的软件测试/QA队伍。 在软件领域有二十多年工作经验,并拥有高级职称、硕士生导师, 曾获得省市多项科技进步奖,有两年美国硅谷的工作经验。
目录
第1章 软件测试概述 1
1.1 一个真实的故事 2
1.2 为什么要进行软件测试 3
1.3 软件缺陷的由来 4
1.4 软件测试学科的发展历程 5
1.5 软件测试的定义 7
1.5.1 基本定义的正反两面性 7
1.5.2 服从于用户需求——V&V 8
1.6 软件测试的层次和类型 10
1.6.1 软件测试的层次 10
1.6.2 不同类型的软件测试 11
1.7 软件测试的过程 12
1.7.1 传统的软件测试过程 13
1.7.2 敏捷测试过程 14
小 结 16
思考题 17
第2章 需求和设计评审 18
2.1 软件评审的方法与技术 19
2.1.1 什么是评审 19
2.1.2 评审的方法 20
2.1.3 评审会议 22
2.1.4 评审的技术 24
2.2 产品需求评审 25
2.2.1 需求评审的重要性 25
2.2.2 如何理解需求 27
2.2.3 传统软件需求的评审标准 29
2.2.4 敏捷开发中用户故事评审标准 30
2.2.5 如何对需求进行评审 31
2.3 设计审查 33
2.3.1 软件设计评审标准 33
2.3.2 系统架构设计的评审 35
2.3.3 组件设计的审查 36
2.3.4 界面设计的评审 37
小 结 37
思考题 38
实验1 用户故事评审 38
第3章 测试分析与设计 40
3.1 如何进行测试需求分析 40
3.2 测试设计 42
3.2.1 测试设计流程 42
3.2.2 框架的设计 43
3.2.3 功能测试设计 44
3.3 什么是测试用例 46
3.3.1 一个简单的测试用例 46
3.3.2 测试用例的元素 47
3.4 为什么需要测试用例 49
3.5 测试用例的质量 49
3.5.1 测试用例的质量要求 50
3.5.2 测试用例书写标准 51
3.5.3 测试用例的评审 52
3.6 测试用例的组织和使用 53
3.6.1 测试集 53
3.6.2 测试用例的维护 55
小 结 55
思考题 56
实验2 测试用例结构的设计 56
第4章 软件测试自动化 58
4.1 测试自动化的内涵 58
4.1.1 简单的实验 59
4.1.2 自动化测试的例子 60
4.1.3 什么是自动化测试 62
4.1.4 自动化测试的特点和优势 63
4.2 自动化测试的原理 64
4.2.1 代码分析 65
4.2.2 GUI对象识别 66
4.2.3 DOM对象识别 68
4.2.4 自动比较技术 69
4.2.5 脚本技术 70
4.3 测试工具的分类和选择 73
4.3.1 测试工具的分类 73
4.3.2 测试工具的选择 75
4.4 自动化测试的引入 76
4.4.1 普遍存在的问题 77
4.4.2 对策 78
小 结 80
思考题 80
实验3 Windows应用自动化测试 80
第5章 单元测试和集成测试 82
5.1 什么是单元测试 83
5.2 单元测试的方法 83
5.2.1 黑盒方法和白盒方法 84
5.2.2 驱动程序和桩程序 85
5.3 白盒测试方法的用例设计 86
5.3.1 分支覆盖 86
5.3.2 条件覆盖法 87
5.3.3 基本路径测试法 88
5.4 代码审查 90
5.4.1 代码审查的范围和方法 90
5.4.2 代码规范性的审查 91
5.4.3 代码缺陷检查表 93
5.5 集成测试 96
5.5.1 集成测试的模式 96
5.5.2 自顶向下集成测试 96
5.5.3 自底向上集成测试 97
5.5.4 混合策略 97
5.5.5 持续集成测试 98
5.6 单元测试工具 101
5.6.1 JUnit介绍 102
5.6.2 用JUnit进行单元测试 103
5.6.3 微软VSTS的单元测试 107
5.6.4 开源工具 108
5.6.5 商业工具 111
小 结 113
思考题 114
实验4 单元测试实验 114
第6章 系统功能测试 117
6.1 功能测试 117
6.1.1 功能测试范围分析 118
6.1.2 LOSED模型 119
6.2 功能测试用例的设计 120
6.2.1 等价类划分法 120
6.2.2 边界值分析法 124
6.2.3 循环结构测试的综合方法 126
6.2.4 因果图法 127
6.2.5 决策表方法 130
6.2.6 功能图法 133
6.2.7 正交试验设计方法 134
6.3 易用性测试 137
6.3.1 可用性的内部测试 138
6.3.2 易用性的外部测试 140
6.4 功能测试执行 141
6.4.1 功能测试套件的创建 142
6.4.2 回归测试 143
6.5 功能测试工具 144
6.5.1 如何使用功能测试工具 144
6.5.2 开源工具 146
6.5.3 商业工具 147
小 结 150
思考题 150
实验5 系统功能测试 151
第7章 系统非功能性测试 153
7.1 非功能性的系统测试需求 153
7.2 概念:负载测试、压力测试和性能
测试 157
7.2.1 背景及其分析 157
7.2.2 定义 158
7.3 负载测试技术 159
7.3.1 负载测试过程 159
7.3.2 输入参数 160
7.3.3 输出参数 163
7.3.4 场景设置 163
7.3.5 负载测试的执行 165
7.3.6 负载测试的结果分析 166
7.4 性能测试 167
7.4.1 如何确定性能需求 167
7.4.2 性能测试类型 168
7.4.3 性能测试的步骤 169
7.4.4 一些常见的性能问题 171
7.4.5 容量测试 172
7.5 压力测试 173
7.6 性能测试工具 174
7.6.1 特性及其使用 174
7.6.2 开源工具 176
7.6.3 商业工具 178
7.7 兼容性测试 181
7.7.1 兼容性测试的内容 181
7.7.2 系统兼容性测试 182
7.7.3 数据兼容性测试 183
7.8 安全性测试 184
7.8.1 安全性测试的范围 184
7.8.2 Web安全性的测试 185
7.8.3 安全性测试工具 187
7.9 容错性测试 188
7.9.1 负面测试 189
7.9.2 故障转移测试 189
7.10 可靠性测试 191
小 结 192
思考题 193
实验6 系统性能测试 193
实验7 安全性测试 194
第8章 移动应用App的测试 196
8.1 移动应用测试的特点 196
8.2 移动App功能测试 198
8.2.1 面向接口的自动化测试 198
8.2.2 Android App UI自动化测试 203
8.2.3 iOS App UI自动化测试 213
8.2.4 跨平台的App UI自动化测试 217
8.3 专项测试 219
8.3.1 耗电量测试 219
8.3.2 流量测试 221
8.4 性能测试 223
8.4.1 Android内存分析 224
8.4.2 iOS内存分析 226
8.5 移动App“闪退”的测试 228
8.6 安全性测试 228
8.7 用户体验测试 229
小 结 231
思考题 231
实验8 系统功能测试 232
第9章 缺陷报告 233
9.1 一个简单的缺陷报告 233
9.2 缺陷报告的描述 234
9.2.1 缺陷的严重性和优先级 235
9.2.2 缺陷的类型和来源 236
9.2.3 缺陷附件 236
9.2.4 完整的缺陷信息列表 237
9.3 如何有效地报告缺陷 238
9.4 软件缺陷的处理和跟踪 239
9.4.1 软件缺陷生命周期 239
9.4.2 缺陷的跟踪处理 241
9.4.3 缺陷状态报告 241
9.5 缺陷分析 242
9.5.1 实时趋势分析 242
9.5.2 累计趋势分析 244
9.5.3 缺陷分布分析 246
9.6 缺陷跟踪系统 247
小 结 249
思考题 249
第10章 测试计划和管理 250
10.1 测试的原则 250
10.2 测试计划 253
10.2.1 概述 253
10.2.2 测试计划过程 254
10.2.3 测试目标 255
10.2.4 测试策略 256
10.2.5 制订有效的测试计划 259
10.3 测试范围分析和工作量估计 259
10.3.1 测试范围的分析 260
10.3.2 工作量的估计 261
10.4 测试资源要求和进度管理 263
10.4.1 测试资源需求 263
10.4.2 测试进度管理 265
10.5 测试风险的控制 266
10.5.1 主要存在的风险 267
10.5.2 控制风险的对策 268
10.5.3 测试策略的执行 269
10.6 测试报告 271
10.6.1 评估测试覆盖率 271
10.6.2 基于软件缺陷的质量评估 273
10.6.3 测试报告的书写 274
10.7 测试管理工具 275
10.7.1 测试管理系统的构成 275
10.7.2 主要工具介绍 277
小 结 278
思考题 279
附录 280
附录A 软件测试术语中英文对照 280
附录B 测试计划简化模板 285
附录C 测试用例设计模板 287
附录D 软件缺陷模板 289
附录E 软件测试报告模板 291
附录F 参考文献和资源 294
1.1 一个真实的故事 2
1.2 为什么要进行软件测试 3
1.3 软件缺陷的由来 4
1.4 软件测试学科的发展历程 5
1.5 软件测试的定义 7
1.5.1 基本定义的正反两面性 7
1.5.2 服从于用户需求——V&V 8
1.6 软件测试的层次和类型 10
1.6.1 软件测试的层次 10
1.6.2 不同类型的软件测试 11
1.7 软件测试的过程 12
1.7.1 传统的软件测试过程 13
1.7.2 敏捷测试过程 14
小 结 16
思考题 17
第2章 需求和设计评审 18
2.1 软件评审的方法与技术 19
2.1.1 什么是评审 19
2.1.2 评审的方法 20
2.1.3 评审会议 22
2.1.4 评审的技术 24
2.2 产品需求评审 25
2.2.1 需求评审的重要性 25
2.2.2 如何理解需求 27
2.2.3 传统软件需求的评审标准 29
2.2.4 敏捷开发中用户故事评审标准 30
2.2.5 如何对需求进行评审 31
2.3 设计审查 33
2.3.1 软件设计评审标准 33
2.3.2 系统架构设计的评审 35
2.3.3 组件设计的审查 36
2.3.4 界面设计的评审 37
小 结 37
思考题 38
实验1 用户故事评审 38
第3章 测试分析与设计 40
3.1 如何进行测试需求分析 40
3.2 测试设计 42
3.2.1 测试设计流程 42
3.2.2 框架的设计 43
3.2.3 功能测试设计 44
3.3 什么是测试用例 46
3.3.1 一个简单的测试用例 46
3.3.2 测试用例的元素 47
3.4 为什么需要测试用例 49
3.5 测试用例的质量 49
3.5.1 测试用例的质量要求 50
3.5.2 测试用例书写标准 51
3.5.3 测试用例的评审 52
3.6 测试用例的组织和使用 53
3.6.1 测试集 53
3.6.2 测试用例的维护 55
小 结 55
思考题 56
实验2 测试用例结构的设计 56
第4章 软件测试自动化 58
4.1 测试自动化的内涵 58
4.1.1 简单的实验 59
4.1.2 自动化测试的例子 60
4.1.3 什么是自动化测试 62
4.1.4 自动化测试的特点和优势 63
4.2 自动化测试的原理 64
4.2.1 代码分析 65
4.2.2 GUI对象识别 66
4.2.3 DOM对象识别 68
4.2.4 自动比较技术 69
4.2.5 脚本技术 70
4.3 测试工具的分类和选择 73
4.3.1 测试工具的分类 73
4.3.2 测试工具的选择 75
4.4 自动化测试的引入 76
4.4.1 普遍存在的问题 77
4.4.2 对策 78
小 结 80
思考题 80
实验3 Windows应用自动化测试 80
第5章 单元测试和集成测试 82
5.1 什么是单元测试 83
5.2 单元测试的方法 83
5.2.1 黑盒方法和白盒方法 84
5.2.2 驱动程序和桩程序 85
5.3 白盒测试方法的用例设计 86
5.3.1 分支覆盖 86
5.3.2 条件覆盖法 87
5.3.3 基本路径测试法 88
5.4 代码审查 90
5.4.1 代码审查的范围和方法 90
5.4.2 代码规范性的审查 91
5.4.3 代码缺陷检查表 93
5.5 集成测试 96
5.5.1 集成测试的模式 96
5.5.2 自顶向下集成测试 96
5.5.3 自底向上集成测试 97
5.5.4 混合策略 97
5.5.5 持续集成测试 98
5.6 单元测试工具 101
5.6.1 JUnit介绍 102
5.6.2 用JUnit进行单元测试 103
5.6.3 微软VSTS的单元测试 107
5.6.4 开源工具 108
5.6.5 商业工具 111
小 结 113
思考题 114
实验4 单元测试实验 114
第6章 系统功能测试 117
6.1 功能测试 117
6.1.1 功能测试范围分析 118
6.1.2 LOSED模型 119
6.2 功能测试用例的设计 120
6.2.1 等价类划分法 120
6.2.2 边界值分析法 124
6.2.3 循环结构测试的综合方法 126
6.2.4 因果图法 127
6.2.5 决策表方法 130
6.2.6 功能图法 133
6.2.7 正交试验设计方法 134
6.3 易用性测试 137
6.3.1 可用性的内部测试 138
6.3.2 易用性的外部测试 140
6.4 功能测试执行 141
6.4.1 功能测试套件的创建 142
6.4.2 回归测试 143
6.5 功能测试工具 144
6.5.1 如何使用功能测试工具 144
6.5.2 开源工具 146
6.5.3 商业工具 147
小 结 150
思考题 150
实验5 系统功能测试 151
第7章 系统非功能性测试 153
7.1 非功能性的系统测试需求 153
7.2 概念:负载测试、压力测试和性能
测试 157
7.2.1 背景及其分析 157
7.2.2 定义 158
7.3 负载测试技术 159
7.3.1 负载测试过程 159
7.3.2 输入参数 160
7.3.3 输出参数 163
7.3.4 场景设置 163
7.3.5 负载测试的执行 165
7.3.6 负载测试的结果分析 166
7.4 性能测试 167
7.4.1 如何确定性能需求 167
7.4.2 性能测试类型 168
7.4.3 性能测试的步骤 169
7.4.4 一些常见的性能问题 171
7.4.5 容量测试 172
7.5 压力测试 173
7.6 性能测试工具 174
7.6.1 特性及其使用 174
7.6.2 开源工具 176
7.6.3 商业工具 178
7.7 兼容性测试 181
7.7.1 兼容性测试的内容 181
7.7.2 系统兼容性测试 182
7.7.3 数据兼容性测试 183
7.8 安全性测试 184
7.8.1 安全性测试的范围 184
7.8.2 Web安全性的测试 185
7.8.3 安全性测试工具 187
7.9 容错性测试 188
7.9.1 负面测试 189
7.9.2 故障转移测试 189
7.10 可靠性测试 191
小 结 192
思考题 193
实验6 系统性能测试 193
实验7 安全性测试 194
第8章 移动应用App的测试 196
8.1 移动应用测试的特点 196
8.2 移动App功能测试 198
8.2.1 面向接口的自动化测试 198
8.2.2 Android App UI自动化测试 203
8.2.3 iOS App UI自动化测试 213
8.2.4 跨平台的App UI自动化测试 217
8.3 专项测试 219
8.3.1 耗电量测试 219
8.3.2 流量测试 221
8.4 性能测试 223
8.4.1 Android内存分析 224
8.4.2 iOS内存分析 226
8.5 移动App“闪退”的测试 228
8.6 安全性测试 228
8.7 用户体验测试 229
小 结 231
思考题 231
实验8 系统功能测试 232
第9章 缺陷报告 233
9.1 一个简单的缺陷报告 233
9.2 缺陷报告的描述 234
9.2.1 缺陷的严重性和优先级 235
9.2.2 缺陷的类型和来源 236
9.2.3 缺陷附件 236
9.2.4 完整的缺陷信息列表 237
9.3 如何有效地报告缺陷 238
9.4 软件缺陷的处理和跟踪 239
9.4.1 软件缺陷生命周期 239
9.4.2 缺陷的跟踪处理 241
9.4.3 缺陷状态报告 241
9.5 缺陷分析 242
9.5.1 实时趋势分析 242
9.5.2 累计趋势分析 244
9.5.3 缺陷分布分析 246
9.6 缺陷跟踪系统 247
小 结 249
思考题 249
第10章 测试计划和管理 250
10.1 测试的原则 250
10.2 测试计划 253
10.2.1 概述 253
10.2.2 测试计划过程 254
10.2.3 测试目标 255
10.2.4 测试策略 256
10.2.5 制订有效的测试计划 259
10.3 测试范围分析和工作量估计 259
10.3.1 测试范围的分析 260
10.3.2 工作量的估计 261
10.4 测试资源要求和进度管理 263
10.4.1 测试资源需求 263
10.4.2 测试进度管理 265
10.5 测试风险的控制 266
10.5.1 主要存在的风险 267
10.5.2 控制风险的对策 268
10.5.3 测试策略的执行 269
10.6 测试报告 271
10.6.1 评估测试覆盖率 271
10.6.2 基于软件缺陷的质量评估 273
10.6.3 测试报告的书写 274
10.7 测试管理工具 275
10.7.1 测试管理系统的构成 275
10.7.2 主要工具介绍 277
小 结 278
思考题 279
附录 280
附录A 软件测试术语中英文对照 280
附录B 测试计划简化模板 285
附录C 测试用例设计模板 287
附录D 软件缺陷模板 289
附录E 软件测试报告模板 291
附录F 参考文献和资源 294
猜您喜欢