第1篇 测试的背景知识 2
第1章 软件测试基础( 教学视频:26分钟) 2
1.1 了解软件过程的各个方面 2
1.1.1 软件公司技术部门的基本结构 3
1.1.2 由软件危机引发的软件测试 4
1.1.3 软件危机的体现 4
1.1.4 软件的生命周期 5
1.1.5 软件生命周期模型 5
1.1.6 大爆炸模型 6
1.1.7 边做边改模型 6
1.1.8 瀑布模型 6
1.1.9 螺旋模型 7
1.1.1 0 4种过程模型的对比 8
1.1.1 1软件过程的几个阶段 8
1.1.1 2软件发布的方式 9
1.1.1 3用甘特图控制软件项目的流程 9
1.2 关于软件中的Bug 10
1.2.1 虫子的由来 10
1.2.2 软件Bug的5个要素 11
1.2.3 发现虫子的成本 12
1.3 软件测试的定义与分类 13
1.3.1 软件测试的定义 13
1.3.2 软件测试工程师的工作内容 14
1.3.3 软件测试的分类 14
1.4 软件测试的核心Ⅰ:测试用例 14
1.4.1 什么是测试用例 14
1.4.2 测试用例的要素 15
1.5 软件测试的核心Ⅱ:测试工程师 17
1.5.1 测试工程师与软件质量保障 17
1.5.2 测试工程师应该具备的素质 17
1.5.3 测试工程师的职业发展 18
1.6 本章小结 19
第2章 软件的测试方法与过程( 教学视频:14分钟) 20
2.1 测试的主要方法与分类 20
2.1.1 什么是黑盒测试方法 20
2.1.2 什么是白盒测试方法 21
2.1.3 黑盒测试与白盒测试的优劣对比 21
2.1.4 深入了解黑盒测试 22
2.2 等价类划分法 23
2.2.1 什么是等价类划分 23
2.2.2 等价类划分的标准 24
2.2.3 划分等价类的方法 24
2.2.4 利用等价类划分设计测试用例 25
2.3 边界值分析法 25
2.3.1 边界值分析法的数据选取原则 25
2.3.2 根据边界值分析法设计测试用例 26
2.4 判定表方法 26
2.4.1 判定表生成测试用例的步骤 27
2.4.2 判定表的结构 27
2.4.3 判定表的建立步骤 28
2.5 其他黑盒测试方法 28
2.6 测试分类简介Ⅰ:性能与代码覆盖 28
2.6.1 性能测试与压力测试 29
2.6.2 代码覆盖测试 29
2.7 测试分类简介Ⅱ:国际化与本地化 30
2.7.1 国际化与il8n 31
2.7.2 本地化与Localization 31
2.7.3 国际化测试与本地化测试的区别 32
2.7.4 国际化、本地化测试的具体内容 32
2.7.5 国际化、本地化测试的步骤 33
2.8 各种测试简介Ⅲ:回归、人工与自动测试 33
2.8.1 回归测试 33
2.8.2 人工测试与自动测试 34
2.9 测试过程:项目和里程碑 34
2.9.1 测试贯穿整个项目流程 34
2.9.2 项目流程中的里程碑 35
2.9.3 Project软件中的里程碑 36
2.10 项目管理中的ISO 9000与CMM 37
2.10.1 ISO 9000标准 37
2.10.2 CMM标准 37
2.10.3 CMM的基本概念 38
2.10.4 CMM五级成熟度 38
2.10.5 CMM五级成熟度分级详解 39
2.11 软件测试中的维恩图 41
2.11.1 什么是维恩图 41
2.11.2 软件测试中的维恩图 42
2.12 两组容易混淆的测试用语 42
2.12.1 精确性与准确性 42
2.12.2 验证合格与确认可用 44
2.13本章小结 44
第3章 Web应用开发与Web测试( 教学视频:15分钟) 45
3.1 Web应用的基本知识 45
3.1.1 什么是服务 45
3.1.2 服务的场所 46
3.1.3 创建服务场所——建立网站 47
3.1.4 网站文件的上传 48
3.1.5 开启网页发布服务 50
3.1.6 用户浏览网站的过程 52
3.1.7 网络沟通标准——协议 52
3.1.8 前台页面与后台数据库 53
3.2 Web开发的基础技术 54
3.2.1 认识Java 54
3.2.2 Java语言的特点 55
3.2.3 基于.NET平台的Web开发技术 56
3.2.4 基于PHP的Web开发技术 58
3.2.5 AJAX开发技术 59
3.3 Web功能测试的特点与方法 60
3.3.1 网页测试的组成部分 60
3.3.2 链接测试及其要点 61
3.3.3 链接测试工具Sleuth 63
3.3.4 孤儿网页 64
3.3.5 表单测试及其要点 65
3.3.6 客户端表单信息的验证、收集和提交 65
3.3.7 服务器端用户信息的保存过程 66
3.3.8 服务器端提示信息的返回 66
3.3.9 网页内容测试 66
3.3.1 0网页用户界面测试 67
3.3.1 1 浏览器交互测试 68
3.4 其他Web功能测试 69
3.4.1 Cookie测试 69
3.4.2 Web Service测试 70
3.4.3 Web功能测试的一般原则 70
3.5 兼容性测试与安全测试 71
3.5.1 兼容性测试 71
3.5.2 平台测试要点 71
3.5.3 浏览器测试要点 72
3.5.4 显示设置测试要点 73
3.5.5 网络连接测试 73
3.5.6 打印测试 74
3.5.7 安全测试 74
3.6 本章小结 75
第2篇Web性能测试入门 78
第4章 Web性能测试的基础( 教学视频:11分钟) 78
4.1 学习Web性能测试 78
4.1.1 Web性能的定义 79
4.1.2 Web性能好坏的判断 80
4.1.3 Web性能测试在网站开发中的位置 83
4.1.4 Web性能测试的目的 84
4.2 影响Web性能的重要硬件Ⅰ:CPU 84
4.2.1 中央处理器(CPU)简介 84
4.2.2 CPU-Z简介 85
4.2.3 CPU-Z的使用方法 85
4.3 影响Web性能的重要硬件Ⅱ:硬盘 88
4.3.1 主流硬盘的类型 89
4.3.2 了解硬盘的转速 89
4.3.3 认识硬盘缓存 90
4.3.4 操作系统中的硬盘写入缓存 90
4.3.5 HD-Tach的下载、安装与使用 92
4.3.6 Web应用对硬盘消耗的特点 93
4.3.7 Baseline和Benchmark 93
4.4 本章小结 94
第5章 Web性能测试的方法( 教学视频:19分钟) 95
5.1 Web性能测试目的与方法 95
5.1.1 Web性能测试的目的 95
5.1.2 Web性能测试方法的先决条件 95
5.1.3 Web性能测试的详细分类 96
5.1.4 什么是性能测试(Performance Testing) 96
5.1.5 小白的第一次性能测试 97
5.1.6 响应时间、测试场所和指标 98
5.1.7 压力测试(Stress Testing) 99
5.1.8 负载测试(Stress Testing)简介 100
5.1.9 负载测试的特点 100
5.1.10 并发测试(Concurrency Testing)简介 101
5.1.11 并发测试所关注的性能问题 102
5.1.12 并发测试的特点与工具 102
5.1.13 配置测试(Configuration Testing) 103
5.1.14 耐久度测试(Endurance Testing) 104
5.1.15 可靠性测试(Reliability Testing) 105
5.1.16 尖峰冲击测试(Spike Testing) 105
5.1.17 失败恢复测试(FailOverTesting) 106
5.2 Web性能测试方法的比较 108
5.2.1 各种Web性能测试方法的不同点 108
5.2.2 各种Web性能测试方法的相同点 109
5.3 本章小结 110
第6章 性能测试计数器( 教学视频:23分钟) 111
6.1 什么是性能计数器 112
6.2 Windows系统下的性能计数器 112
6.2.1 性能计数器数值的直观获得 113
6.2.2 性能监视器的使用 113
6.2.3 通过编程获得性能计数器 118
6.2.4 常见的性能计数器的含义 120
6.3 Mac OS X系统的性能计数器 122
6.3.1 性能计数器的直观获得 122
6.3.2 性能分析专业工具 124
6.4 Linux(UNIX)系统的性能计数器 125
6.4.1 Linux系统下性能计数器的直观获得 125
6.4.2 vmstat命令详解 125
6.4.3 top命令及其他工具包 127
6.4.4 Linux(UNIX)系统下性能计数器的含义 127
6.5 内存性能分析 128
6.5.1 内存泄露及判断 129
6.5.2 内存瓶颈简介 130
6.5.3 页面和虚拟内存 130
6.5.4 软、硬页面错误 132
6.5.5 发现内存瓶颈 132
6.5.6 发现程序使用内存的问题 133
6.6 CPU性能分析 134
6.6.1 重要的CPU性能计数器 134
6.6.2 有关多CPU与多核CPU的性能计数器 135
6.7 磁盘性能分析 137
6.7.1 磁盘性能相关计数器 137
6.7.2 与其他性能对象的综合考虑 138
6.8 网络性能分析 138
6.9 应用服务器性能简要分析 139
6.9.1 IIS应用服务器性能分析 139
6.9.2 IIS相关性能计数器 139
6.9.3 Weblogic性能信息的获得 140
6.9.4 Weblogic相关性能计数器 141
6.10 数据库性能简要分析 142
6.10.1 业内常见的数据库产品 142
6.10.2 数据库性能问题对应的性能计数器 143
6.11 本章小结 144
第3篇 使用LoadRunner进行Web应用性能测试 146
第7章 性能测试工具LoadRunner入门( 教学视频:24分钟) 146
7.1 选择测试工具 146
7.1.1 自行编写与购买测试工具的比较 146
7.1.2 常用的性能测试工具 148
7.1.3 性能测试工具的评估 149
7.1.4 小白的最终选择 150
7.2 下载与安装LoadRunner 150
7.2.1 下载LoadRunner 150
7.2.2 一步步安装LoadRunner 151
7.3 LoadRunner轻松入门 152
7.3.1 LoadRunner的导航窗口 153
7.3.2 Virtual User Generator虚拟用户生成器 154
7.3.3 创建VuGen脚本Ⅰ:录制过程 156
7.3.4 创建VuGen脚本Ⅱ:强化脚本 159
7.3.5 创建VuGen脚本Ⅲ:准备工作负荷 160
7.3.6 创建VuGen脚本Ⅳ:完成阶段 163
7.3.7 创建VuGen脚本Ⅴ:利用示例站点录制一个脚本 163
7.3.8 创建VuGen脚本Ⅵ:录制脚本失败原因分析与会话 169
7.3.9 创建VuGen脚本Ⅶ:利用关联解决脚本播放失败 170
7.3.10 创建VuGen脚本Ⅷ:利用其他Web协议进行录制简介 174
7.3.11 LoadRunner进行性能测试的简要步骤 175
7.4 本章小结 176
第8章 编写测试计划( 教学视频:11分钟) 177
8.1 了解被测试项目的结构 177
8.1.1 逻辑结构 178
8.1.2 物理结构 179
8.1.3 系统结构 179
8.2 确认业务的具体流程 180
8.2.1 业务流程对性能测试的影响 180
8.2.2 了解Web应用的功能模块 181
8.2.3 确定用户经常使用的功能 182
8.2.4 用户登录部分与验证码 182
8.2.5 商品展示部分 183
8.2.6 用户订单部分 183
8.2.7 事务与网上支付 183
8.2.8 社区内容部分 185
8.2.9 后台管理部分 185
8.2.10 业务流程中有关性能测试的难点 185
8.2.11 业务性能分析文档 185
8.3 确定性能测试的各种标准 186
8.3.1 确定性能测试目标 187
8.3.2 确定性能测试标准 187
8.3.3 常见的Web应用性能测试指标 188
8.3.4 性能测试标准范例 188
8.4 编写性能测试计划 189
8.4.1 性能测试人员的组成 189
8.4.2 性能测试工具的选择 189
8.4.3 性能测试进度的安排 189
8.4.4 性能测试的计划模板 190
8.5 本章小结 191
第9章 配置测试环境( 教学视频:20分钟) 192
9.1 为什么需要测试环境 192
9.1.1 准备测试环境的益处 193
9.1.2 准备测试环境的原则 194
9.2 虚拟化在测试环境中的应用 194
9.2.1 什么是虚拟化 195
9.2.2 常见的虚拟化软件 196
9.2.3 虚拟化软件在软件测试中的作用 196
9.3 VirtualBox虚拟机实战 196
9.3.1 学习安装VirtualBox 197
9.3.2 了解VirtualBox的管理菜单 198
9.3.3 利用VirtualBox设置虚拟电脑 200
9.3.4 安装VirtualBox中的增强功能 204
9.3.5 宿主电脑共享文件 205
9.3.6 利用VirtualBox组建网络 206
9.3.7 使用VirtualBox 中的状态备份 208
9.3.8 使用VirtualBox搭建测试环境 209
9.4 本章小结 209
第10章 搭建LoadRunner中的场景( 教学视频:48分钟) 211
10.1 创建场景 211
10.1.1 使用场景创建设置对话框 212
10.1.2 场景的分类 213
10.1.3 创建面向目标的场景 213
10.1.4 编辑场景目标 214
10.1.5 手动场景的设置 216
10.1.6 压力生成器的添加与设置 218
10.1.7 用户组的增加、修改、删除 220
10.1.8 运行时设置(RTS) 221
10.1.9 设置场景的详细信息(Details按钮) 222
10.2 集合点的应用 223
10.2.1 集合点的设置步骤 223
10.2.2 在脚本中加入集合点 223
10.2.3 在场景中配置集合点 225
10.3 场景的执行计划 227
10.3.1 熟悉设置场景运行计划界面 227
10.3.2 设置场景开始运行的时间 228
10.3.3 设置场景执行的方式 228
10.3.4 修改场景操作的具体属性 229
10.3.5 图形方式设置手动场景的运行计划 230
10.4 控制器的全局设置 231
10.4.1 超时设置(Timeout) 231
10.4.2 运行时设置(Run-Time Settings) 231
10.4.3 运行时文件存储位置(Run-Time File Storage) 232
10.4.4 路径翻译表(Path translation table) 232
10.4.5 监视器(Monitors) 233
10.5 本章小结 234
第11章 监控图表与函数( 教学视频:15分钟) 235
11.1 监控图表与配置 235
11.1.1 监控与图表 235
11.1.2 对运行状况、交易状况进行监控 237
11.1.3 对系统与网络资源进行监控 239
11.1.4 对防火墙、网络服务器进行监控 241
11.1.5 对中间件进行监控 241
11.1.6 对数据库进行监控 243
11.1.7 监控图表的常见操作技巧 244
11.2 掌握LoadRunner中的函数 245
11.2.1 LoadRunner函数的语法 246
11.2.2 在脚本中使用函数 246
11.2.3 常见函数列表 247
11.2.4 调用LoadRunner函数的方法 248
11.3 本章小结 249
第12章 性能测试的执行场景( 教学视频:14分钟) 250
12.1 性能测试的执行过程 250
12.1.1 执行性能测试 250
12.1.2 场景执行时的控制器 251
12.1.3 场景执行过程中的状态信息 252
12.1.4 场景执行完毕 254
12.2 服务质量协议(SLA) 255
12.2.1 添加服务质量协议(SLA) 255
12.2.2 选择时间决定的SLA 256
12.2.3 选择运行决定的SLA 258
12.2.4 利用高级按钮设置时间间隔 260
12.3 解读测试结果 260
12.3.1 测试分析概要界面 260
12.3.2 统计概要 262
12.3.3 场景执行过程信息表 262
12.3.4 对事务进行SLA相关分析 263
12.3.5 分析SLA 265
12.3.6 事务概要 265
12.3.7 HTTP响应概要 267
12.4 本章小结 270
第13章 用LoadRunner分析器来分析结果( 教学视频:26分钟) 271
13.1 LoadRunner 中的分析器 271
13.1.1 分析器的界面 271
13.1.2 在分析器中修改场景属性 272
13.1.3 定义测试报告格式 273
13.1.4 使用分析器导出数据 275
13.1.5 分析器数据存放位置 275
13.1.6 与其他工具软件协同 276
13.1.7 分析器的全局设置(Options) 276
13.2 利用图表分析性能 278
13.2.1 添加更多图表 278
13.2.2 虚拟用户图(Vuser图) 279
13.2.3 细化图表数据:过滤/分组 280
13.2.4 细化图表数据:下钻 282
13.2.5 细化图表数据:取消过滤/分组/下钻设置 283
13.2.6 辅助图表工具:设置粒度 283
13.2.7 图表辅助工具:显示光标 285
13.2.8 事务图(Transaction图) 286
13.2.9 平均事务响应时间图 286
13.2.10 利用合并图进行图表的联合分析 290
13.2.11 利用交叉结果图进行多场景的横向分析 293
13.2.12 网络资源图(Web Resources图) 295
13.2.13 网页调试图(Web Page Diagnostic图) 297
13.3 本章小结 301
第4篇 性能测试提高 304
第14章 分析性能测试结果( 教学视频:17分钟) 304
14.1 性能测试结果的可靠性 304
14.1.1 原始数据 305
14.1.2 平均值 305
14.1.3 中值 306
14.1.4 正常值 306
14.1.5 标准偏差 307
14.1.6 正态分布 309
14.1.7 一致分布 309
14.1.8 置信度与置信区间 310
14.1.9 数据可靠性判断的规则 310
14.2 性能测试结果的分析方法 311
14.2.1 判断影响性能的因素 311
14.2.2 隔离与对比 312
14.2.3 详实记录中间结论 312
14.3 性能测试报告的编写技巧 313
14.3.1 什么是好的性能测试报告 313
14.3.2 提交报告的时机 313
14.3.3 与测试主管的讨论 314
14.3.4 有效总结测试数据 314
14.3.5 测试报告与图表的结合 315
14.3.6 在Excel中为数据生成图 315
14.4 本章小结 321
第15章 其他性能测试工具( 教学视频:17分钟) 322
15.1 更多的性能测试工具 323
15.1.1 性能测试工具的分类 323
15.1.2 企业级的性能测试工具 323
15.1.3 轻量级的测试工具 324
15.2 微软WAS的使用 324
15.2.1 WAS的安装与启动 324
15.2.2 用WAS录制脚本 325
15.2.3 用WAS执行测试 326
15.2.4 分析WAS测试结果 328
15.3 Visual Studio 2008中的性能测试工具 329
15.3.1 性能测试的流程 330
15.3.2 调用树与热路径 333
15.3.3 测试实例 334
15.4 本章小结 336
第5篇性能测试实战 338
第16章 大数据时代Web应用性能测试实例( 教学视频:6分钟) 338
16.1 大数据时代Web应用的背景 338
16.2 设计性能测试 339
16.2.1 人员与计划 339
16.2.2 准备测试环境 341
16.2.3 设计测试场景 343
16.2.4 录制测试脚本 344
16.2.5 设置测试监控 348
16.3 执行性能测试 349
16.4 分析测试结果 350
16.4.1 发现服务器问题 350
16.4.2 发现网络问题 352
16.4.3 发现软件代码问题 353
16.5 生成测试报告 353
16.6 本章小结 354
第17章 Web性能优化( 教学视频:4分钟) 355
17.1 代码的优化 355
17.1.1 ASP.net页面的优化原则 355
17.1.2 节约原则与ViewState 355
17.1.3 服务器控件的优化选择 357
17.1.4 恰当原则与Session 357
17.1.5 Page.IsPostBack的运用 358
17.1.6 合理使用DataGrid控件 358
17.1.7 合理进行字符串操作 359
17.1.8 缓冲原则 359
17.1.9 CLRProfiler的安装与基本操作 361
17.1.1 0 CLRProfiler分析内存分配问题 365
17.2 利用服务器配置进行优化 367
17.2.1 启用IIS压缩 367
17.2.2 IIS压缩比的选择 370
17.2.3 IIS 7压缩的进一步完善 371
17.2.4 其他IIS性能优化措施 372
17.3 数据库的优化 374
17.3.1 查询语句的优化 375
17.3.2 查看SQL语句执行计划与数据库当前事件 377
17.3.3 提高存储过程与自定义函数性能 379
17.3.4 数据库的硬件配置优化 380
17.4 结束语 384
附录A 主要性能测试工具下载网址 385
附录B 部分性能测试网站列表 387