第1 章 项目管理 1
1.1 项目管理概述 2
1.2 软件项目管理 5
1.3 项目质量管理. 10
1.4 项目管理流程. 11
1.4.1 项目启动. 11
1.4.2 项目计划. 13
1.4.3 软件需求阶段 14
1.4.4 变更管理. 16
1.4.5 设计阶段. 18
1.4.6 构建阶段. 19
1.4.7 测试阶段. 21
1.4.8 部署与试运行 23
1.4.9 项目总结. 25
1.5 项目管理十诫. 26
1.6 项目管理工具对比. 28
1.6.1 Microsoft Project 28
1.6.2 Redmine 29
1.6.3 Feng Office 30
第1 章 项目管理 1
1.1 项目管理概述 2
1.2 软件项目管理 5
1.3 项目质量管理. 10
1.4 项目管理流程. 11
1.4.1 项目启动. 11
1.4.2 项目计划. 13
1.4.3 软件需求阶段 14
1.4.4 变更管理. 16
1.4.5 设计阶段. 18
1.4.6 构建阶段. 19
1.4.7 测试阶段. 21
1.4.8 部署与试运行 23
1.4.9 项目总结. 25
1.5 项目管理十诫. 26
1.6 项目管理工具对比. 28
1.6.1 Microsoft Project 28
1.6.2 Redmine 29
1.6.3 Feng Office 30
2.5.3 《软件需求规格说明书》. 72
2.6 测试需求 73
2.7 需求管理工具. 74
2.7.1 Rational RequisitePro 75
2.7.2 TelelogicDoors 76
2.8 Plandora 实战 76
2.8.1 搭建Plandora 77
2.8.2 管理员配置 78
2.8.3 前端用户. 82
2.8.4 需求变更实例 88
2.9 要点回顾 92
第3 章 代码质量控制 93
3.1 静态代码分析. 94
3.2 代码文档规范. 94
3.2.1 命名规范. 95
3.2.2 编码规范. 96
3.2.3 注释规范. 97
3.2.4 异常处理规范 102
3.2.5 单元测试规范 103
3.2.6 文件解析规范 103
3.3 Sonar 简介 106
3.3.1 Sonar 体系架构. 107
3.3.2 Sonar 代码规则. 108
3.4 Sonar 服务端. 110
3.4.1 环境要求 110
3.4.2 Sonar 服务器搭建 110
3.4.3 Sonar 配置 112
3.4.4 Sonar 插件 114
3.5 Sonar 客户端. 116
3.5.1 Sonar-Runner 客户端. 116
3.5.2 Maven 插件方式 117
3.5.3 Ant 插件方式. 118
3.5.4 Eclipse 插件方式 119
3.6 最佳实践 121
3.6.1 项目配置 122
3.6.2 持续审查 123
3.6.3 结果分析 125
3.6.4 集成曲线图. 128
3.7 要点回顾 129
第4 章 自动化部署 130
4.1 引入自动化部署. 131
4.1.1 复杂的手工部署 131
4.1.2 自动化部署方式 132
4.1.3 持续集成思想 133
4.2 自动化部署的特点 134
4.2.1 环境一致性. 134
4.2.2 部署系统化. 134
4.2.3 配置集中化. 135
4.3 版本控制 137
4.3.1 Git 简介. 137
4.3.2 Git 部署. 138
4.3.3 Git 客户端使用. 141
4.3.4 Git 相关操作 144
4.3.5 代码管理 147
4.4 JDeploy 平台. 151
4.4.1 认识JDeploy 151
4.4.2 JDeploy 部署配置 151
4.4.3 一键部署项目 152
4.5 要点回顾 155
第5 章 软件测试. 156
5.1 软件测试 156
5.1.1 软件测试发展史 157
5.1.2 软件测试的未来 160
5.1.3 测试部门组织架构 161
5.1.4 软件测试的基本类型. 163
5.2 测试模型 164
5.2.1 瀑布模型 164
5.2.2 敏捷模型 165
5.2.3 敏捷测试与传统测试的区别. 166
5.3 系统测试流程 167
5.4 根据需求原型设计测试用例 171
5.4.1 需求原型规范样式 171
5.4.2 设计测试用例 173
5.5 缺陷描述 175
5.5.1 缺陷属性 175
5.5.2 缺陷描述示例 176
5.6 测试的策略. 178
5.7 测试过程的经验总结. 179
5.8 质量保证 180
5.9 要点回顾 181
第6 章 安全测试与安全管理 182
6.1 安全测试 182
6.1.1 安全测试概述 183
6.1.2 安全测试的基本过程. 184
6.1.3 安全测试与安全运维. 186
6.1.4 安全测试工具 186
6.1.5 安全测试用例 187
6.2 开发安全规范 189
6.2.1 跨站脚本安全规范 189
6.2.2 SQL 注入安全规范. 191
6.2.3 页面组件和敏感数据的安全规范 193
6.2.4 Java 安全规范 196
6.2.5 应用集成安全规范 197
6.3 代码安全审核工具Checkmarx. 197
6.3.1 SQL 注入 198
6.3.2 反射型跨站脚本攻击. 199
6.3.3 储存型XSS. 201
6.3.4 HTTP 响应头分裂(Http_ Response_Splitting) 201
6.4 安全漏洞 202
6.4.1 信息收集 202
6.4.2 口令入侵 204
6.4.3 心脏滴血漏洞 207
6.5 OSSIM 安全管理平台 209
6.5.1 OSSIM 架构 210
6.5.2 安装与部署. 211
6.5.3 OSSIM 控制台. 211
6.5.4 Web 界面配置 212
6.5.5 OSSIM 使用实战. 214
6.6 要点回顾 219
第7 章 自动化测试基础 220
7.1 自动化基础. 221
7.1.1 自动化测试流程 222
7.1.2 自动化测试特点 225
7.1.3 自动化测试工具 226
7.1.4 标记语言介绍 228
7.2 Web 自动化测试. 233
7.2.1 元素定位 234
7.2.2 Selenium IDE 238
7.2.3 Selenium 使用 241
7.3 接口自动化测试. 247
7.3.1 接口测试类型 248
7.3.2 接口测试工具 249
7.3.3 Mock 测试 250
7.3.4 HTTP 协议测试 254
7.4 TestNG 框架 258
7.4.1 TestNG 配置 258
7.4.2 TestNG 注解 260
7.4.3 测试套件 260
7.4.4 数据驱动 265
7.4.5 执行测试结果 267
7.4.6 测试集成 268
7.5 要点回顾 270
第8 章 自动化测试框架 271
8.1 框架分析 272
8.1.1 框架设计目标 272
8.1.2 业务流程层次分析 272
8.1.3 业务流程测试自动化. 273
8.1.4 手工用例自动化 274
8.2 框架设计 274
8.2.1 框架设计思想 274
8.2.2 框架物理架构 276
8.2.3 框架逻辑架构 277
8.2.4 框架工作流程 278
8.3 框架开发 278
8.3.1 创建测试用例 279
8.3.2 创建测试数据 280
8.3.3 创建测试项目 281
8.3.4 开发框架运行类 285
8.3.5 开发公共接口 288
8.3.6 添加日志报告 292
8.4 脚本开发 292
8.4.1 编写测试脚本 292
8.4.2 调试运行脚本 293
8.4.3 上传脚本 294
8.5 持续集成 296
8.5.1 Jenkins 服务器搭建. 296
8.5.2 Jenkins 相关插件 298
8.5.3 部署测试执行机 299
8.5.4 分布式测试. 300
8.5.5 配置测试任务 303
8.5.6 查看运行结果 310
8.6 要点回顾 312
第9 章 性能测试. 313
9.1 性能测试基础 313
9.1.1 性能术语 314
9.1.2 需求分析与策略 317
9.2 测试利器之LoadRunner. 321
9.2.1 LoadRunner 安装贴士 321
9.2.2 脚本与优化. 322
9.2.3 设置场景 339
9.2.4 运行场景 340
9.2.5 收集和分析结果 341
9.3 测试利器之JMeter 343
9.3.1 JMeter 介绍. 343
9.3.2 JMeter 脚本与优化. 344
9.3.3 收集监控数据 353
9.3.4 运行测试 353
9.3.5 JMeter 使用小结 354
9.4 性能测试框架搭建 355
9.4.1 JMeter 配置监听器. 355
9.4.2 InfluxDB 数据库配置 356
9.4.3 InfluxDB Graphite Listener 配置. 357
9.4.4 查看InfluxDB 结果 357
9.4.5 Grafana 配置 358
9.5 性能测试实战 359
9.5.1 明确测试需求 359
9.5.2 选取测试方法和策略. 361
9.5.3 准备测试脚本 362
9.5.4 执行与分析测试结果. 362
9.5.5 提出调优建议 364
9.5.6 交付测试报告 364
9.6 性能调优 364
9.6.1 CPU 使用率过高 364
9.6.2 I/O 使用率过高. 365
9.6.3 进程数调整. 367
9.6.4 线程不安全. 367
9.6.5 数据库连接数过少 368
9.6.6 数据导入慢. 369
9.7 要点回顾 369
第10 章 性能分析. 371
10.1 系统硬件资源监控 372
10.1.1 nmon 工具. 373
10.1.2 Linux 系统监控命令 378
10.2 JVM 监控与分析 386
10.2.1 JVM 基础 386
10.2.2 JVM 垃圾回收 388
10.2.3 常见JVM 命令 390
10.2.4 堆分析工具MAT 402
10.2.5 JConsole 403
10.2.6 JProfiler 406
10.3 数据库性能分析 415
10.3.1 软解析和硬解析. 415
10.3.2 SQL 执行计划分析 417
10.3.3 数据库连接数监控 418
10.3.4 Oracle 数据库性能诊断报告AWR. 419
10.4 要点回顾 427
第11 章 监控平台与故障排查 428
11.1 监控系统 428
11.1.1 日志监控平台. 429
11.1.2 硬件和应用监控平台 429
11.2 Zabbix 简介 430
11.2.1 系统架构 430
11.2.2 配置Zabbix 432
11.2.3 常见的配置问题. 436
11.2.4 监控主机 438
11.3 美化界面Grafana 441
11.3.1 部署Grafana. 441
11.3.2 使用Grafana. 442
11.4 服务器故障排查 447
11.4.1 清楚故障的前因后果 447
11.4.2 搜寻蛛丝马迹. 447
11.4.3 列出当前运行的进程 449
11.4.4 监听网络服务. 451
11.4.5 查看硬件状态. 451
11.4.6 列出挂载点和文件系统. 457
11.4.7 过滤内核和中断信息 459
11.4.8 定时任务 460
11.4.9 分析系统日志. 461
11.5 要点回顾 461
第12 章 灾难恢复与容灾测试 462
12.1 灾难恢复 463
12.1.1 灾难恢复的规范. 463
12.1.2 灾难恢复能力等级 466
12.1.3 灾难恢复的关键指标 468
12.2 容灾测试 471
12.2.1 容灾的起源 471
12.2.2 容灾的定义 472
12.2.3 容灾的区别 474
12.3 详解容灾测试 475
12.3.1 容灾测试的目标. 475
12.3.2 职责的划分 476
12.3.3 容灾测试的流程. 477
12.4 容灾测试实战 478
12.4.1 容灾测试计划. 479
12.4.2 容灾用例与Bug. 480
12.4.3 容灾线上演习. 484
12.4.4 容灾长期规划. 485
参考文献. 486
· · · · · · (
收起)