第一部分 性能测试简介 2
第1章 Web应用软件性能测试基础知识 2
1.1 概述 2
1.2 如何使用本章 2
1.3 性能测试的核心活动 3
1.4 为什么进行性能测试 4
1.5 项目环境 5
1.6 性能测试和调整之间的关系 7
1.6.1 协同工作 7
1.6.2 性能调整过程概述 8
1.7 性能、负载和压力测试 8
1.8 基准 9
1.9 基准程序法 10
1.10 术语 10
1.11 小结 13
第2章 性能测试类型 14
2.1 概述 14
2.2 如何使用本章 14
2.3 性能测试 14
2.4 性能测试的主要类型 15
2.5 主要性能测试类型的优点总结表 16
2.6 附加概念和术语 17
2.7 小结 18
第3章 性能测试所强调的风险 19
3.1 概述 19
3.2 如何使用本章 19
3.3 不同性能测试类型可以降低的风险一览表 20
3.4 与速度相关的风险 21
3.5 与可伸缩性相关的风险 22
3.6 与稳定性相关的风险 23
3.7 小结 24
第二部分 典型性能测试方法 26
第4章 Web应用软件性能测试核心活动 26
4.1 概述 26
4.2 如何使用本章 26
4.3 活动概述 27
4.4 核心性能活动测试表 27
4.5 核心性能测试活动执行顺序 28
4.6 活动1:确定测试环境 29
4.7 活动2:确定性能验收标准 31
4.8 活动3:计划和设计测试 32
4.9 活动4:配置测试环境 33
4.10 活动5:实现测试设计 34
4.11 活动6:执行测试 35
4.12 活动7:分析结果、撰写报告以及重复测试 37
4.13 小结 39
第5章 采用迭代法来调整性能测试 40
5.1 概述 40
5.2 如何使用本章 40
5.3 方法介绍 41
5.4 迭代性能测试活动 41
5.5 与核心性能测试活动的关系 43
5.6 活动1:了解项目愿景和环境 43
5.7 活动2:确定进行性能测试的原因 44
5.8 活动3:确定性能测试给项目带来的价值 45
5.9 活动4:配置测试环境 46
5.10 活动5:确定和协调任务 47
5.11 活动6:执行任务 49
5.12 活动7:分析结果并作出报告 50
5.13 活动8:重新审视活动1~3,考虑性能验收标准 51
5.14 活动9:重新确定任务的优先次序 52
5.15 小结 53
第6章 管理敏捷性能测试周期 54
6.1 概述 54
6.2 如何使用本章 55
6.3 方法介绍 55
6.4 敏捷性能测试活动 56
6.5 与核心性能测试活动的关系 57
6.6 活动1:了解项目愿景和环境 58
6.6.1 项目愿景 58
6.6.2 项目周边环境 58
6.6.3 理解系统 59
6.6.4 理解项目环境 59
6.6.5 理解性能构建时间进度 59
6.7 活动2:确定执行性能测试的原因 60
6.8 活动3:确定性能测试给项目带来的价值 61
6.9 活动4:配置测试环境 62
6.10 活动5:确定和协调任务 63
6.11 活动6:执行测试 64
6.12 活动7:分析结果和报告 64
6.13 活动8:回访活动1~3,考虑性能验收标准 65
6.14 活动9:重新划分任务的优先级 65
6.15 附加考虑 66
6.16 小结 66
第7章 管理可调控(CMMI)环境中的性能测试周期 67
7.1 概述 67
7.2 如何使用本章 68
7.3 方法介绍 68
7.4 CMMI性能测试活动 69
7.5 与核心性能测试活动之间的关联 70
7.6 CMMI性能测试活动流程 70
7.7 活动1:了解过程文档和规范性标准 70
7.7.1 确定过程 71
7.7.2 确定规范性标准 71
7.8 活动2:了解系统和项目规划 72
7.8.1 理解系统 73
7.8.2 重新审视项目计划 73
7.9 活动3:确定性能验收标准 73
7.9.1 性能需求 73
7.9.2 性能目标 74
7.9.3 性能测试指标 74
7.10 活动4:规划性能测试活动 75
7.10.1 将工作内容与项目计划相对应 75
7.10.2 添加期限 75
7.10.3 根据阶段确定工作项目的优先级 75
7.10.4 细化计划 76
7.11 活动5:设计测试 77
7.11.1 确定关键场景的导航通路 77
7.11.2 确定单个用户数据和差异 78
7.11.3 确定场景的相对分布 79
7.11.4 确定目标负载水平 79
7.11.5 确定执行测试期间需要捕捉的度量 80
7.11.6 注意事项 80
7.12 活动6:配置测试环境 81
7.13 活动7:实现测试设计 81
7.14 活动8:执行工作项目 81
7.15 活动9:报告结果,归档数据 82
7.16 活动10:修改计划,并就修改取得一致意见 82
7.17 活动11:返回活动5 83
7.18 活动12:准备最终报告 83
7.19 小结 83
第三部分 确定测试环境 86
第8章 评估系统以提高性能测试的有效性 86
8.1 概述 86
8.2 如何使用本章 86
8.3 评估系统的方法 87
8.4 捕捉系统功能和(或者)业务过程 87
8.5 捕捉用户活动 88
8.6 捕捉逻辑和物理的体系架构 89
8.6.1 逻辑体系架构 89
8.6.2 物理体系架构 91
8.6.3 系统体系架构 91
8.6.4 注意事项 92
8.7 小结 93
第四部分 确定性能验收标准 96
第9章 确定性能测试目标 96
9.1 概述 96
9.2 如何使用本章 97
9.3 术语 97
9.4 确定性能测试目标的方法 97
9.5 确定性能测试目标 98
9.5.1 确定综合目标 98
9.5.2 审查项目计划 98
9.5.3 检查结构 99
9.5.4 询问团队成员 99
9.6 捕捉或者估计资源利用指标和极限 99
9.7 捕捉或者估计资源预算 100
9.8 确定度量 101
9.9 交流结果 101
9.10 留意变化的目标、指标和预算 102
9.11 案例研究——确定性能测试目标 102
9.11.1 案例研究1 102
9.11.2 案例研究2 103
9.11.3 案例研究3 105
9.12 小结 106
第10章 量化最终用户响应时间目标 107
10.1 概述 107
10.2 如何使用本章 107
10.3 术语 108
10.4 量化最终用户响应时间的方法 108
10.5 确定应用软件的功能和用法 108
10.6 描述与捕捉性能需求和目标 109
10.6.1 检查项目文档与相关的合同 109
10.6.2 会见可能会影响“开始运作”决定的相关利益方 110
10.6.3 确定是否存在与该应用软件有关的相关标准和(或者)竞争底线 111
10.7 量化性能需求和目标 111
10.7.1 区分要求与目标 111
10.7.2 量化捕捉的性能目标 112
10.7.3 量化捕捉的性能需求 112
10.8 记录性能需求与目标 114
10.9 小结 114
第11章 确定性能验收标准的各种类型 115
11.1 概述 115
11.2 如何使用本章 115
11.3 术语 116
11.4 确定验收标准的方法 116
11.5 调研最终用户需求 117
11.6 收集商业需求 117
11.7 确定技术需求 118
11.8 研究标准、规范性与合同 119
11.9 建立性能测试目标 119
11.10 比较并整理性能特征 120
11.11 审查并更新实施计划 121
11.12 小结 121
第五部分 计划和设计测试 124
第12章 为应用软件的使用建模 124
12.1 概述 124
12.2 如何使用本章 125
12.3 模拟应用软件使用情况的方法 125
12.4 确定指标 125
12.5 确定关键使用场景 126
12.6 确定关键场景的导航路径 128
12.7 确定个人用户数据与变化 130
12.8 确定场景的相对分布 131
12.9 确定目标负载水平 133
12.9.1 确定应用软件使用量:理论 133
12.9.2 确定应用软件的使用量 135
12.9.3 整合模型变化 135
12.9.4 注意事项 136
12.10 准备实现模型 137
12.11 小结 137
第13章 确定个别用户数据与变化 138
13.1 概述 138
13.2 如何使用本章 138
13.3 用户延时 139
13.4 对用户延时不正确建模的结果 139
13.4.1 第一步:确定用户延时 140
13.4.2 第二步:应用延迟范围 141
13.4.3 第三步:应用分布 142
13.5 确定个体用户数据 144
13.6 用户放弃 145
13.7 小结 146
第六部分 执行测试 148
第14章 测试执行 148
14.1 概述 148
14.2 如何使用本章内容 148
14.3 测试执行的方法 148
14.4 确认测试环境 149
14.5 验证测试 150
14.5.1 动态数据 151
14.5.2 测试验证 152
14.5.3 注意事项 153
14.5.4 询问的问题 153
14.6 运行测试 153
14.6.1 有效并高效运行的关键 154
14.6.2 注意事项 154
14.6.3 询问的问题 156
14.7 基准与基准程序方法 156
14.7.1 基准 156
14.7.2 基准程序方法 157
14.8 归档测试 157
14.9 小结 158
第七部分 分析结果并作出报告 160
第15章 针对性能测试员的关键数学原理 160
15.1 概述 160
15.2 如何使用本章 160
15.3 范例数据集 160
15.3.1 数据集摘要 161
15.3.2 数据集A 161
15.3.3 数据集B 161
15.3.4 数据集C 162
15.4 平均值 163
15.5 百分点 163
15.6 中位数 163
15.7 正常值 164
15.8 标准偏差 164
15.9 均匀分布 164
15.10 正态分布 165
15.11 统计显著性 165
15.12 统计学相等 166
15.13 统计学离群点 167
15.14 置信区间 168
15.15 小结 169
第16章 性能测试报告基础 170
16.1 概述 170
16.2 如何使用本章 170
16.3 有效报告原则 170
16.3.1 早报告,常报告 171
16.3.2 可视化报告 171
16.3.3 直觉的报告 171
16.3.4 使用正确的统计学 172
16.3.5 正确地整理数据 172
16.3.6 有效地汇总数据 172
16.3.7 为预期的用户定制报告 173
16.3.8 利用简洁的口头汇总 173
16.3.9 使数据可以利用 173
16.4 经常报告的性能数据 174
16.4.1 最终用户响应时间 174
16.4.2 资源利用 175
16.4.3 容量、能力与速度 176
16.4.4 组件响应次数 177
16.4.5 趋势 178
16.5 报告要回答的问题 179
16.5.1 全部规则 179
16.5.2 主要的相关利益方 179
16.5.3 项目级管理人员 180
16.5.4 技术团队成员 180
16.6 共享结果的类型 180
16.6.1 原始数据显示 181
16.6.2 技术报告 181
16.6.3 相关利益者报告 182
16.7 创建一个技术报告 182
16.7.1 样本结果图形 183
16.7.2 针对单一实例测量的样本表格 183
16.7.3 样本工作负载模型图形 183
16.7.4 样本测试环境图形 185
16.7.5 样本汇总说明 185
16.7.6 样本参考部分 185
16.8 创建一个相关利益方报告 185
16.8.1 样本条件说明 186
16.8.2 样本结果图形 186
16.8.3 单一实例测量的样本表格 186
16.8.4 基于标准的样本结果汇总 186
16.8.5 样本工作负载模型图形 186
16.8.6 样本测试环境图形 187
16.8.7 样本观察与建议说明 188
16.8.8 样本参考部分 188
16.9 小结 188
第八部分 性能测试技术 190
第17章 Web应用软件的负载测试 190
17.1 概述 190
17.2 如何使用本章 190
17.3 输入 191
17.4 输出 191
17.5 负载测试的方法 191
17.6 第一步:确定性能验收标准 192
17.7 第二步:确定关键场景 193
17.8 第三步:创建一个负载模型 193
17.9 第四步:确定目标负载水平 194
17.10 第五步:确定度量 194
17.11 第六步:设计具体的测试 195
17.12 第七步:运行测试 196
17.13 第八步:分析结果 197
17.14 小结 197
第18章 Web应用软件的压力测试 198
18.1 概述 198
18.1.1 压力条件示例 198
18.1.2 压力相关征兆示例 199
18.2 如何使用本章 199
18.3 输入 199
18.4 输出 199
18.5 压力测试的方法 200
18.6 第一步:确定测试目标 201
18.7 第二步:确定关键场景 201
18.8 第三步:确定工作负载 201
18.9 第四步:确定度量 202
18.10 第五步:创建测试案例 203
18.11 第六步:模拟负载 204
18.12 第七步:分析结果 204
18.13 压力测试的使用场景 204
18.14 探索性压力测试 205
18.15 小结 205