第1章 软件测试基础 1
1.1 为什么需要软件测试 1
1.1.1 软件测试的重要性 2
1.1.2 引起软件缺陷的原因 7
1.1.3 软件测试和软件质量 8
1.2 什么是软件测试 11
1.2.1 软件测试的基本概念 11
1.2.2 软件测试的发展历史 12
1.2.3 软件测试七条原则 14
1.3 如何进行软件测试 15
1.3.1 基本的测试过程 15
1.3.2 软件测试级别、测试类型和测试技术 17
1.4 测试心理学与职业道德 30
1.4.1 测试心理学 30
1.4.2 职业道德 31
1.5 软件测试技术的发展趋势 32
1.5.1 自动化软件测试技术应用越来越普遍 32
1.5.2 测试技术不断细分 33
1.5.3 云技术、容器化和开源工具使得测试成本下降 35
1.5.4 测试驱动开发 38
1.5.5 DevOps越来越流行 39
1.5.6 探索式软件测试 39
1.5.7 基于模型的软件测试 40
实训任务 41
第2章 软件测试管理 50
2.1 什么是软件测试管理 50
2.1.1 测试组织 51
2.1.2 测试计划和估算 52
2.1.3 测试过程监控 54
2.1.4 配置管理 55
2.1.5 风险和测试 56
2.1.6 事件管理 57
2.1.7 软件测试管理工具 58
2.2 TestLink起步 63
2.2.1 系统要求 63
2.2.2 TestLink的安装 63
2.2.3 初始使用 67
2.2.4 技能拓展:TestLink的配置 69
2.3 TestLink操作演练 72
2.3.1 测试需求管理 72
2.3.2 测试用例管理 73
2.3.3 测试计划制定 77
2.3.4 测试执行 80
2.3.5 测试结果分析 82
实训任务 82
第3章 软件缺陷管理 83
3.1 什么是软件缺陷管理 83
3.1.1 软件缺陷管理简介 83
3.1.2 缺陷管理工具 86
3.2 Mantis起步 88
3.2.1 系统要求 88
3.2.2 Mantis的安装 88
3.2.3 初始使用 89
3.2.4 技能拓展:Mantis配置 90
3.3 Mantis操作演练 94
3.3.1 用户管理 94
3.3.2 我的视图 97
3.3.3 提交问题 98
3.3.4 处理问题 99
实训任务 101
第4章 单元测试 102
4.1 什么是单元测试 102
4.1.1 单元测试简介 102
4.1.2 单元测试框架 103
4.2 JUnit起步 104
4.2.1 跟我做 104
4.2.2 JUnit单元测试要点 107
4.3 JUnit操作演练 108
4.3.1 参数化测试 108
4.3.2 用Mockito隔离测试 110
4.4 白盒测试技术 116
4.4.1 语句覆盖 116
4.4.2 判定覆盖 117
4.4.3 条件覆盖 117
4.4.4 判定/条件覆盖 118
4.4.5 组合覆盖 118
4.4.6 基本路径覆盖 119
实训任务 121
第5章 集成测试 122
5.1 什么是集成测试 122
5.1.1 集成测试简介 122
5.1.2 集成测试工具 127
5.2 Jenkins起步 128
5.2.1 Jenkins安装 128
5.2.2 插件安装 132
5.2.3 Jenkins配置 133
5.2.4 创建新任务 134
5.3 Jenkins操作演练 136
5.3.1 准备 136
5.3.2 在Jenkins中创建任务 136
5.3.3 创建流水线脚本 141
5.4 能力拓展:在Docker中运行Jenkins 143
5.4.1 准备 143
5.4.2 在Docker中运行J enkins 143
5.4.3 Fork和克隆Github上的示例库 144
5.4.4 在Jenkins中创建任务 145
5.4.5 创建流水线脚本 149
实训任务 151
第6章 系统测试 152
6.1 什么是系统测试 152
6.1.1 系统测试简介 152
6.1.2 系统测试工具 153
6.2 Selenium起步 156
6.2.1 Selenium IDE的安装 156
6.2.2 Selenium IDE的使用 157
6.2.3 用Eclipse开发Selenium测试 159
6.3 RF Selenium操作演练 161
6.3.1 Robot Framework简介 162
6.3.2 RF测试环境的安装 163
6.3.3 RF Selenium测试示例演示 168
6.4 黑盒测试技术 175
6.4.1 等价类划分 175
6.4.2 边界值分析 175
6.4.3 决策表测试 176
6.4.4 状态转换测试 178
6.4.5 基于用例的测试 180
实训任务 181
第7章 性能测试 182
7.1 什么是性能测试 182
7.1.1 性能测试简介 182
7.1.2 性能测试工具 185
7.2 JMeter起步 187
7.2.1 JMeter的安装和启动 187
7.2.2 JMeter的主要元件 189
7.2.3 JMeter测试计划示例和模板 194
7.3 JMeter操作演练 198
7.3.1 Web应用测试计划模板 198
7.3.2 JMeter的运行模式 201
实训任务 203
第8章 安全性测试 204
8.1 什么是安全性测试 204
8.1.1 安全测试简介 204
8.1.2 安全性测试工具 209
8.2 ZAP安全性测试起步 211
8.2.1 ZAP的安装和启动后的界面 211
8.2.2 ZAP的基本操作 213
8.3 ZAP安全性测试演练 215
8.3.1 设置Spider 215
8.3.2 自动探索与手工探索相结合 215
8.3.3 主动扫描 215
实训任务 217
第9章 Spring MVC Web应用测试 218
9.1 Spring MVC Web应用测试简介 218
9.1.1 Spring框架简介 218
9.1.2 Spring应用测试基础 219
9.2 Spring MVC Web应用测试起步 221
9.2.1 创建一个简单的Spring应用 222
9.2.2 运行Spring应用 227
9.2.3 测试Spring应用 227
9.3 Spring MVC Web应用测试演练 235
9.3.1 在STS中导入示例项目源代码 236
9.3.2 代码分析 237
实训任务 241
第10章 Android App测试 242
10.1 什么是Android App测试 242
10.1.1 Android App测试简介 242
10.1.2 Android App测试工具 243
10.2 Android App测试起步 245
10.2.1 从模板新建Android Studio项目 245
10.2.2 Android Studio项目分析 249
10.2.3 运行App和测试 256
10.3 Android App测试演练 256
10.3.1 App单元测试 256
10.3.2 App UI测试 257
10.3.3 App集成测试 258
10.3.4 App性能测试 259
10.3.5 App测试示例 271
10.4 知识拓展:Appium介绍 272
10.4.1 Appium简介 272
10.4.2 Appium起步 274
实训任务 277
第11章 Web前端测试 278
11.1 什么是Web前端测试 278
11.1.1 Web前端测试简介 278
11.1.2 Web前端测试工具 280
11.2 Jasmine测试起步 282
11.2.1 Jasmine的安装 282
11.2.2 示例代码解析 283
11.3 Jasmine测试演练 285
11.3.1 测试运行器Karma 285
11.3.2 Karma与Jenkins集成 292
11.4 知识拓展:Jubula介绍 297
11.4.1 Jubula起步 297
11.4.2 Jubula演练 300
实训任务 305
附录A 306
A.1 Docker基础 306
什么是Docker 306
Docker的安装 308
Docker常用命令 314
制作镜像 315
A.2 Maven基础 316
Maven简介 316
在Windows环境安装Maven 317
Maven配置文件settings.xml 317
Maven的使用 318
A.3 Git基础 320
什么是Git 320
在Windows上安装Git 320
Git的使用 320