书海网短评:
这是一本国内极少针对软件测试工程师讲述全链路软件开发过程的图书,由资深测试工程师领衔团队全力创作。 写之前做过大量的调查研究,写过程当中进行再三的翻盘反复,写出了作者长年在金融IT软件当中的测试经验与
这是一本国内极少针对软件测试工程师讲述全链路软件开发过程的图书,由资深测试工程师领衔团队全力创作。
写之前做过大量的调查研究,写过程当中进行再三的翻盘反复,写出了作者长年在金融IT软件当中的测试经验与洞见。
把项目管理、项目需求管理、代码质量控制、自动化部署、软件测试、安全测试与安全管理、自动化测试基础、自动化测试框架、性能测试、性能分析、监控平台与故障排查、灾难恢复与容灾测试等大量内容全方位地展现出来。
有大量原创图表助力读者理解,有基础工具的使用方法和流程引初学者入门。
建议所有从事软件测试的工作人员入手一本,放在手中随时查阅!
《质量全面管控从项目管理到容灾测试》专门为有志于软件测试的工程师打开软件测试的大门,笔者结合案例讲解测试实践技术,主要内容有:项目管理、项目需求管理、代码质量控制、自动化部署、软件测试、安全测试与安全管理、自动化测试基础、自动化测试框架、性能测试、性能分析、监控平台与故障排查、灾难恢复与容灾测试等。《质量全面管控——从项目管理到容灾测试》使用了大量的原创图表,提供了基础工具的使用方法和流程。
《质量全面管控从项目管理到容灾测试》图文并茂,通俗易懂,提供的大量实例可以使读者边学习边实践,深入理解书中的内容,并将所学到的知识应用于实际项目中,对于初中级软件测试工程师来说是不可多得的工具书。
葛长芝,2001年毕业于东北师范大学,从事软件测试16年,先后就职于益海嘉里集团,任职测试经理,快钱支付公司任职测试架构师,现在就职于K12在线教育公司掌门1对1,任职测经理。具有丰富的软件开发和软件测试经验,设计开发自动化测试框架,精通性能测试、容量规划和容灾测试。对于软件测试始终保持极大的兴趣,对于测试前置和全链路测试,有非常独到的见解。
《质量全面管控:从项目管理到容灾测试》作者凭借多年的测试实战经验,通过此书深入浅出地剖析出了测试在整个项目中如何至大化发挥作用。对测试新手而言,《质量全面管控:从项目管理到容灾测试》是一本非常值得阅读的系统性图书。
——张翼掌门一对一创始人
作为一个测试新手,正确、全面地了解测试,并进一步在项目整个周期中合理介入并发挥价值是很重要的,《质量全面管控:从项目管理到容灾测试》就是这样一本源于实战、贯穿体系的优秀读物。
——陈霁厦门云层天咨软件技术有限公司创始人
目前测试工程师需要熟练掌握更多的测试技能,如性能测试、安全测试和自动化测试等,才能成为一名合格的全栈测试工程师。《质量全面管控:从项目管理到容灾测试》作者从实际项目场景出发,结合当下测试工程师所需的测试技能要求,把多年的一线工作经验融入其中,用清晰的语言带领读者快速步入软件测试技术的前沿。
——朴春龙上海博为峰软件技术股份有限公司副总经理
第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.1MicrosoftProject28
1.6.2Redmine29
1.6.3FengOffice30
第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.1MicrosoftProject28
1.6.2Redmine29
1.6.3FengOffice30
2.5.3《软件需求规格说明书》.72
2.6测试需求73
2.7需求管理工具.74
2.7.1RationalRequisitePro75
2.7.2TelelogicDoors76
2.8Plandora实战76
2.8.1搭建Plandora77
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.3Sonar简介106
3.3.1Sonar体系架构.107
3.3.2Sonar代码规则.108
3.4Sonar服务端.110
3.4.1环境要求110
3.4.2Sonar服务器搭建110
3.4.3Sonar配置112
3.4.4Sonar插件114
3.5Sonar客户端.116
3.5.1Sonar-Runner客户端.116
3.5.2Maven插件方式117
3.5.3Ant插件方式.118
3.5.4Eclipse插件方式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.1Git简介.137
4.3.2Git部署.138
4.3.3Git客户端使用.141
4.3.4Git相关操作144
4.3.5代码管理147
4.4JDeploy平台.151
4.4.1认识JDeploy151
4.4.2JDeploy部署配置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.2SQL注入安全规范.191
6.2.3页面组件和敏感数据的安全规范193
6.2.4Java安全规范196
6.2.5应用集成安全规范197
6.3代码安全审核工具Checkmarx.197
6.3.1SQL注入198
6.3.2反射型跨站脚本攻击.199
6.3.3储存型XSS.201
6.3.4HTTP响应头分裂(Http_Response_Splitting)201
6.4安全漏洞202
6.4.1信息收集202
6.4.2口令入侵204
6.4.3心脏滴血漏洞207
6.5OSSIM安全管理平台209
6.5.1OSSIM架构210
6.5.2安装与部署.211
6.5.3OSSIM控制台.211
6.5.4Web界面配置212
6.5.5OSSIM使用实战.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.2Web自动化测试.233
7.2.1元素定位234
7.2.2SeleniumIDE238
7.2.3Selenium使用241
7.3接口自动化测试.247
7.3.1接口测试类型248
7.3.2接口测试工具249
7.3.3Mock测试250
7.3.4HTTP协议测试254
7.4TestNG框架258
7.4.1TestNG配置258
7.4.2TestNG注解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.1Jenkins服务器搭建.296
8.5.2Jenkins相关插件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.1LoadRunner安装贴士321
9.2.2脚本与优化.322
9.2.3设置场景339
9.2.4运行场景340
9.2.5收集和分析结果341
9.3测试利器之JMeter343
9.3.1JMeter介绍.343
9.3.2JMeter脚本与优化.344
9.3.3收集监控数据353
9.3.4运行测试353
9.3.5JMeter使用小结354
9.4性能测试框架搭建355
9.4.1JMeter配置监听器.355
9.4.2InfluxDB数据库配置356
9.4.3InfluxDBGraphiteListener配置.357
9.4.4查看InfluxDB结果357
9.4.5Grafana配置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.1CPU使用率过高364
9.6.2I/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.1nmon工具.373
10.1.2Linux系统监控命令378
10.2JVM监控与分析386
10.2.1JVM基础386
10.2.2JVM垃圾回收388
10.2.3常见JVM命令390
10.2.4堆分析工具MAT402
10.2.5JConsole403
10.2.6JProfiler406
10.3数据库性能分析415
10.3.1软解析和硬解析.415
10.3.2SQL执行计划分析417
10.3.3数据库连接数监控418
10.3.4Oracle数据库性能诊断报告AWR.419
10.4要点回顾427
第11章监控平台与故障排查428
11.1监控系统428
11.1.1日志监控平台.429
11.1.2硬件和应用监控平台429
11.2Zabbix简介430
11.2.1系统架构430
11.2.2配置Zabbix432
11.2.3常见的配置问题.436
11.2.4监控主机438
11.3美化界面Grafana441
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
《质量全面管控:从项目管理到容灾测试》主要内容
写作《质量全面管控:从项目管理到容灾测试》的目的是为软件测试人员提供指导方向,笔者结合案例讲解测试实践技术,非常适合初中级测试人员阅读。《质量全面管控:从项目管理到容灾测试》内容从项目管理、需求管理开始,到各类测试方法的讲解。读者可以按顺序阅读,也可以选择其中的某几章来阅读。《质量全面管控:从项目管理到容灾测试》共有12章,每章的主要内容如下:
第1章:项目管理,主要介绍软件开发过程中的项目管理,包含项目管理的流程、输入输出项及相关工具,不论你是项目管理人员,还是研发人员,都需要了解项目,并通过这些项目管理工具来有效地管理项目。
第2章:项目需求管理,主要介绍软件需求的定义和流程、软件质量与需求的关系、在编写软件需求过程中应该注意的问题、如何发现软件需求中的问题,以及如何处理需求变更。
第3章:代码质量控制,主要介绍如何有效地保证代码质量,通过构建SonarQube发现代码质量问题,对不规范的代码提出建议并规范。
第4章:自动化部署,主要介绍部署配置中心和一键部署系统、使用JDeploy自动化部署代码、采用Jenkins进行持续构建来完成自动化部署任务,从而使部署系统简单化和标准化。
第5章:软件测试,主要介绍功能测试,包含功能测试流程、根据需求原型设计测试用例、发现缺陷并描述这些缺陷,以及功能测试中常见的误区和经验。
第6章:安全测试与安全管理,主要介绍安全测试的流程、如何发现漏洞和这些漏洞对系统进行的攻击、对攻击进行的防御措施,以及安全管理过程中的开发安全规范和安全管理平台OSSIM。
第7章:自动化测试基础,主要介绍自动化测试技术,包含Web自动化测试、接
口自动化测试和MOCK测试,以及开源自动化测试工具Selenium和TestNG等。
第8章:自动化测试框架,主要介绍自动化测试框架的基础和实践。
第9章:性能测试,主要介绍性能测试的基础和测试流程,包括JMeter和LoadRunner
的使用、设计性能测试方案和进行性能调优。
第10章:性能分析,主要介绍对JVM和系统资源进行监控,并分析测试结果。
第11章:监控平台与故障排查,主要介绍Zabbix和Grafana,以及如何排查服务器故障。
第12章:灾难恢复与容灾测试,主要介绍容灾的概念,包含容灾的方法、手段、目标、策略和远期规划,以及容灾测试的误区。
《质量全面管控:从项目管理到容灾测试》适合的读者
《质量全面管控:从项目管理到容灾测试》图文并茂,通俗易懂,书中提供了大量的实例,读者可以边学习边实践,深入理解书中的内容,并将所学到的知识应用于实际项目中。
对测试感兴趣的读者,可以从《质量全面管控:从项目管理到容灾测试》中找到各种测试类型的介绍,包括功能测试、安全测试、自动化测试、性能测试和容灾测试。对于项目管理、需求管理和监控感兴趣的读者,也可以从《质量全面管控:从项目管理到容灾测试》中获益。
致谢
真诚感谢笔者团队成员的参与,群策群力、互相帮助终于完成此书,发自内心地希望读者可以从中得到启发,并且能把一些实战经验应用于具体的项目中。感谢家人,写作占用了大量的时间和精力,无暇顾及家庭,所以那句老话永远是正确的,军功章有我的一半也有你的一半。
由于作者水平有限,书中不足及错误之处在所难免,敬请专家和读者批评指正。
葛长芝2016年12月









