新書推薦:
《
可转债——新手理财的极简工具
》
售價:HK$
65.0
《
新加坡教育:神话与现实
》
售價:HK$
96.3
《
“口袋中的世界史”第一辑·冷战中的危机事件
》
售價:HK$
291.2
《
绝美的奥伦堡蕾丝披肩编织
》
售價:HK$
177.0
《
狂飙年代:18世纪俄国的新文化和旧文化(第二卷)
》
售價:HK$
177.0
《
万有引力书系 纳粹亿万富翁 德国财富家族的黑暗历史
》
售價:HK$
109.8
《
中国常见植物野外识别手册:青海册
》
售價:HK$
76.2
《
三星堆对话古遗址(从三星堆出发,横跨黄河流域,长江流域,对话11处古遗址,探源多元一体的中华文明)
》
售價:HK$
87.4
|
編輯推薦: |
●畅销书全面升级,本书在保留第1版经典内容(如四步测试策略制定法、产品质量评估模型、测试设计车轮图、风险分析检查清单、组合缺陷分析法等)的基础上,结合敏捷、DevOps等新的开发模式及作者近5年新的心得和实践,依然围绕测试策略(即“测什么”和“怎么测”)对测试技术、方法、实践进行深度解析,并基于新环境,为测试工程师向测试架构师跃迁规划发展路径。
●为帮助读者理解,书中包含一个贯彻始终的综合案例;为说明某些重点知识,配备了数十个特色案例。书中还包括10余套可套用的模板或清单、近500张图表,从而保证读者可以把所学内容落地到自己的项目中。本书可帮助读者跳出狭义的测试,从商业、产品、开发、架构、管理等角度重新审视测试,从而获得更宽的视野,更多的发展机会。
●作者基于之前在华为做测试,近几年在绿盟做测试、带团队的新体会,以及读者的反馈、技术的新发展(敏捷开发模式、DevOps开发模式、人工智能等),对版进行大范围更新,并新增了大篇幅内容。第2版在技术层面更符合当前的项目需求,在职业规划方面更符合当前测试工程师的发展需求。
●本书保留了第1版中如下经典内容:
测试过程中
|
內容簡介: |
这不是一本单纯讲授测试技术或者测试管理的图书,而是以“帮助广大奋斗在一线的测试工程师系统梳理自己的测试技术并构建自己的测试体系,迅速升级为测试架构师”为目的的专业技术书。
本书结合敏捷、DevOps等开发模式及作者在华为和绿盟近15年测试心得和实践,围绕“测试策略”,把测试理念和各种测试技术串了起来,并讨论了该如何把测试技术和产品结合起来,如何确定测试目标、测试范围、测试的深度和广度、测试的重点和难点,并终实现符合商业目标的“刚刚好”的测试。
书中还基于当前测试工程师的实际情况,为测试工程师向测试架构师跃迁规划了明确的发展路径。
为帮助读者理解,书中包含一个贯彻始终的综合案例,为说明某些重点知识配备了数十个特色案例。另外,书中还包括10余套可套用的模板或清单、近500张图表,从而保证读者可以把所学内容落地到自己的项目中。
【本书一共包含9章,分为三大部分】:
●第1部分(第1~2章)从中国的软件测试行业现状入手,帮助大家分析自身的瓶颈,为软件测试者的职业规划提供建议。书中为测试工程师提供了5个发展方向,并重点介绍了向测试架构师跃迁的规划建议。
●第2部分(第3~5章)深入讲解了软件测试架构师需要掌握的基本测试技术和实用的软能力,包括测试架构师应该做和不应该做的事、软件质量模型、测试类型、6种常用测试方法、测试设计、探索式测试、自动化测试、沟通和协商以及写好测试用例的表达技法,向软件测试架构师的目标进行突破。
●第3部分(第6~9章)详细介绍了软件测试架构师的核心技能——测试策略该如何制定,包括四步测试策略制定法、产品质量评估模型、组合缺陷分析、特性价值分析、风险分析、不同研发模式下的测试分析、基于产品质量的测试策略、基于价值的测试策略等重点内容,以及在产品测试中如何评估产品质量并根据质量评估情况来修正测试策略,后达到理想的测试目标。这部分重点是帮助读者在软件测试架构师的道路上进行自我修炼。
书中还包含了大量对各种测试技术的总结,这些不仅可以直接运用在实际测试项目中,还可以帮助读者梳理自己掌握的测试知识,建立自己的测试架构。
|
關於作者: |
刘琛梅,资深测试专家、测试架构师,有15年的软件测试经验。
现就职于北京神州绿盟信息安全科技有限公司,任研发技术总监,主要负责产品技术研发工作;曾任高级研发经理、研发经理、产品经理和测试代表。曾就职于华为(华赛),先后任测试经理和测试架构师,专注于产品测试工作。除测试外,对安全技术也有深入理解和认识。
|
目錄:
|
第1部分 瓶颈:测试工程师该如何进行职业规划
第1章 测试工程师的“三年之痒” 3
1.1 软件测试发展简史 3
1.2 敏捷开发模式下的软件测试 4
1.3 测试人员面临的机遇和挑战 6
1.3.1 究竟是无用的测试,还是全能的测试 7
1.3.2 测试的困境和迷局 8
1.3.3 从质量守护者到产品赋能者 11
第2章 测试工程师的职业规划 14
2.1 测试人员的职业发展方向 14
2.1.1 测试人员在管理上的发展 15
2.1.2 测试人员在技术上的发展 16
2.1.3 角色和段位 17
2.1.4 测试人员在质量领域的发展 20
2.1.5 测试人员在研发工程效能领域的发展 22
2.2 测试工程师职业规划建议 25
2.2.1 做管理还是做技术 25
2.2.2 关于跳槽 27
2.2.3 不断提升影响力 28
第2部分 突破:向测试架构师的 目标迈进
第3章 测试架构师应该做和不应该做的事情 31
3.1 测试架构师需要关注和不需要关注的事情 31
3.1.1 在需求分析阶段 32
3.1.2 在测试分析和设计阶段 34
3.1.3 在测试执行阶段 36
3.1.4 在测试质量评估阶段 37
3.2 像测试架构师一样思考 39
3.3 测试管理者可以替代测试架构师吗 39
3.4 系统架构师可以替代测试架构师吗 40
第4章 测试架构师的知识能力模型 42
4.1 测试架构师的能力和知识体系 42
4.1.1 测试架构师的6个关键能力 43
4.1.2 测试架构师的知识体系 44
4.2 软件产品质量模型 46
4.2.1 为什么深入理解质量对测试如此重要 46
4.2.2 软件产品质量的8个属性 47
4.2.3 功能性 48
4.2.4 兼容性 50
4.2.5 安全性 51
4.2.6 可靠性 53
4.2.7 易用性 56
4.2.8 效率(性能) 59
4.2.9 可维护性 60
4.2.10 可移植性 62
4.3 基于质量的测试方法 63
4.3.1 理解测试类型 63
4.3.2 如何通过质量属性来探索测试方法 65
4.3.3 通过质量模型来确定测试深度和测试广度 66
4.4 功能性测试方法 66
4.4.1 什么是“运行” 66
4.4.2 单运行正常值输入法 68
4.4.3 单运行边界值输入法 68
4.4.4 多运行顺序执行法 69
4.4.5 多运行相互作用法 70
4.5 可靠性测试方法 71
4.5.1 异常值输入法 71
4.5.2 故障植入法 72
4.5.3 稳定性测试法 73
4.5.4 压力测试法 74
4.5.5 恢复测试法 76
4.6 性能测试方法 77
4.6.1 基线性能测试法 78
4.6.2 影响性能的因子测试法 82
4.6.3 场景性能测试法 86
4.7 易用性测试法 87
4.7.1 一致性测试法 88
4.7.2 可用性测试法 89
4.8 安全性测试方法 90
4.8.1 权限测试 91
4.8.2 参数校验测试 92
4.8.3 传输安全性测试 94
4.8.4 拒绝服务攻击安全性测试 95
4.8.5 安全性测试工具介绍 96
4.9 基于车轮图的测试分析方法 97
4.9.1 测试分析不等于测试设计 97
4.9.2 测试点不等于测试用例 98
4.9.3 产品测试车轮图 100
4.9.4 在MM图中使用车轮图 101
4.9.5 使用测试分析设计表来进行测试分析 102
4.10 基于模型的测试设计技术 103
4.10.1 测试设计四步法 104
4.10.2 对测试点进行分类 106
4.10.3 流程类测试设计——路径分析法 112
4.10.4 参数类测试设计——输入-输出表分析法 129
4.10.5 数据类测试设计——等价类和边界值分析法 135
4.10.6 组合类测试设计——正交分析法 140
4.10.7 错误推断法 145
4.11 控制测试用例的粒度 146
4.11.1 测试点的组合和拆分 146
4.11.2 策略覆盖 147
4.12 影响测试设计效果的因素 151
4.12.1 有效澄清和确认需求 152
4.12.2 有针对性的可测试性需求 153
4.13 基于场景的测试方法 157
4.13.1 场景和场景测试 157
4.13.2 使用场景测试模型来进行测试分析 160
4.14 探索式测试 166
4.14.1 什么是探索式测试 166
4.14.2 探索式测试的基本思想:CPIE思维模型 167
4.14.3 选择合适的探索式测试方法 168
4.14.4 开展探索式测试 171
4.15 自动化测试 174
4.15.1 关于自动化测试的经验和教训 175
4.15.2 自动化测试分层 181
4.15.3 自动化测试框架 184
4.15.4 如何有效开展自动化测试 189
4.15.5 如何评估自动化的收益 193
4.15.6 自动化测试成熟度模型 194
第5章 测试架构师的软能力修炼 197
5.1 沟通和协商 198
5.1.1 知识的诅咒 198
5.1.2 产品测试中的沟通原则 199
5.1.3 通过沟通来获得对产品测试有用的信息 204
5.2 写出漂亮的测试用例 206
5.2.1 统一测试用例编写风格 206
5.2.2 测试用例编写风格指导 207
5.2.3 如何编写测试用例案例集 208
5.3 组织和管理测试用例 215
5.3.1 测试用例模板 215
5.3.2 基于特性树组织测试用例 217
5.3.3 维护测试用例 220
5.4 持续学习和探索 222
第3部分 修炼:测试架构师的核心技能
第6章 如何制定测试策略 227
6.1 什么是测试策略 228
6.1.1 测试的核心是什么 228
6.1.2 测试策略与测试方针 229
6.1.3 测试策略与测试计划 229
6.1.4 测试策略与测试方案 229
6.2 四步测试策略制定法 232
6.2.1 基于产品质量的测试策略 232
6.2.2 基于产品特性价值的测试策略 232
6.2.3 四步测试策略制定法 233
6.3 产品质量评估模型 238
6.3.1 测试覆盖度分析 238
6.3.2 测试过程分析 240
6.3.3 缺陷分析 243
6.3.4 在测试全流程中使用产品质量评估模型 244
6.4 组合缺陷分析技术 245
6.4.1 组合缺陷分析模型 245
6.4.2 缺陷趋势分析 248
6.4.3 缺陷密度 253
6.4.4 缺陷修复率 254
6.4.5 缺陷年龄分析 256
6.4.6 缺陷触发因素分析 259
6.4.7 产品缺陷趋势预判技术 261
6.5 特性价值分析技术 265
6.5.1 你知道测试的产品是如何赚钱的吗 265
6.5.2 从价值角度来对特性进行分类 266
6.5.3 基于特性价值来确定测试重点 270
6.6 风险分析技术 272
6.6.1 风险识别 272
6.6.2 风险评估 275
6.6.3 风险应对 277
6.6.4 历史/继承特性分析 279
6.7 不同研发模式下的测试分层技术 285
6.7.1 瀑布模式 285
6.7.2 敏捷模式 286
6.7.3 DevOps 289
6.7.4 瀑布下的测试分层 293
6.7.5 敏捷模式下的测试分层 295
6.7.6 敏捷转型下的测试分层 297
6.8 测试方案模板 300
第7章 制定基于产品质量的测试策略 301
7.1 项目背景 304
7.2 制定总体测试策略 305
7.2.1 确定特性的质量目标 305
7.2.2 对项目整体进行风险分析 306
7.2.3 确定测试优先级 311
7.2.4 确定测试深度和广度 312
7.2.5 确定研发模式和测试分层 315
7.2.6 确定关键测试活动的出入口准则 322
7.2.7 预判产品缺陷趋势 324
7.2.8 回顾 325
7.3 制定测试设计策略 327
7.3.1 在测试设计时考虑测试深度和广度 327
7.3.2 给测试用例划分等级 329
7.3.3 有效的测试设计评审 331
7.3.4 回顾 333
第8章 产品质量评估和测试策略调整 334
8.1 确认和计划的偏差 335
8.1.1 尽量避免小瀑布迭代 336
8.1.2 如何补救延期、阻塞和返工等问题 338
8.1.3 如何处理实际交付的内容和计划的偏差 339
8.1.4 在适应变化的情况下依然保持版本迭代节奏 341
8.2 选择测试用例 343
8.2.1 选择接收测试用例的策略和原则 344
8.2.2 选择不同阶段的测试用例的策略和原则 344
8.2.3 选择回归测试用例的策略和原则 345
8.3 测试过程跟踪 347
8.3.1 测试执行顺序和策略覆盖 348
8.3.2 确定缺陷修复的优先级 350
8.3.3 非必现缺陷处理 352
8.3.4 缺陷预判和调整测试策略 354
8.4 产品质量评估 357
8.4.1 质量指标分析 358
8.4.2 建立特性质量档案 362
8.4.3 组合缺陷分析 362
8.4.4 非测试用例发现缺陷的原因分析 364
8.4.5 遗留缺陷分析 365
第9章 基于价值的测试策略 368
9.1 再谈测试策略 368
9.2 不同产品阶段下的测试策略 371
9.3 探索式测试策略 372
9.3.1 根据不同的特性选择适合的探索式测试方法 372
9.3.2 将基于价值的测试策略和基于产品的测试策略组合起来 372
9.3.3 启发式测试策略模型 375
9.4 自动化持续测试策略 375
9.4.1 持续测试和自动化测试 377
9.4.2 自动化持续测试策略 378
9.4.3 将自动化持续测试和产品发展阶段相结合 379
|
內容試閱:
|
【前 言】
【为什么要写第2版】
一转眼,《测试架构师修炼之道》的第1版已经出版5年了,并且重印超过10次,我也因此认识了很多读者朋友。非常感谢大家对我的肯定和支持。
在这些年里,我发现无论是公开的演讲、小型的讨论会,还是私下的沟通交流,“测试的价值”“测试人员该如何发展”“如何才能真正做好测试”依然是大家讨论多且让人困惑的话题。对于这些问题,第1版就给出了我的核心观点:要想做好测试,就要理解测试的核心。测试的核心不是产品业务,不是测试方法,不是工具、自动化,也不是测试管理,而是测试策略,即“测什么”和“怎么测”。这6个字又可以进一步表达为关于软件测试的6个问题:
测试的对象和范围是什么?
测试的目标是什么?
测试的重点和难点是什么?
测试的深度和广度是什么?
如何安排测试活动?
如何评估测试的效果?
按照这个思路,我在第1版中提出了“四步测试策略制定法”“产品质量评估模型”“测试方法车轮图”“风险分析检测清单”“组合缺陷分析法”等方法或模型,以求帮助大家制定适合当前产研状况的测试策略,进行“刚刚好”的测试。
在第1版出版后不久,我自己的工作角色也发生了变化。我做了一段时间的产品经理,随后又做了4年的研发经理,负责了多款产品的研发工作。在这段时间里,我学会了组建研发团队,以及与产品、支持、售前、销售等不同角色合作,完成用户交付的任务或解决用户反馈的问题。我负责的产品有创新型产品、发展型产品和成熟维护型产品,在此过程中我掌握了实践迭代、DevOps等。虽然这几年我没有工作在测试一线,但测试依然是我工作中的一个重要环节,而且工作角色的变化,让我有幸可以“站在测试之外来看测试”,对测试有了更加系统和全面的认识。
我切身体会到作为产品研发团队的负责人,对测试的期望到底是什么;
厘清了在整个研发过程中哪些测试工作是高价值的,会对整个产研有特别大的贡献和作用;
体会到在不断发展的研发体系下,测试人员该如何调整职业方向和向前发展。
在这段时间里,我多次参加公司的任职资格标准制定和评选工作,体会到公司高级管理者对高级测试人员的期望:除了完成日常测试工作外,还能站在更高的层面进行系统思考,形成测试体系,从根本上提升整个组织的测试水平。测试体系不是通过积累工作经验就可以形成的,这常常让测试人员陷入“测试技术和能力都很强,但是离测试专家的水准总是差那么一点”的窘境,而且测试人员又往往不知道应该如何获得这样的能力。
在上述背景下,我萌发了出版第2版的想法——我想把这几年在不同角色中对测试的理解和思考写下来,尤其是团队其他重要角色是如何看待测试的,对测试的期望是什么,在他们眼中,测试的核心价值是什么,以及测试人员在不断变化的新形势下应如何调整职业方向和向前发展,如何逐渐建立自己的测试体系等。这个想法也得到了机械工业出版社华章分社杨福川和孙海亮的肯定。在他们的支持和鼓励下,本书的撰写工作正式开始了。
我原以为撰写本书的工作量不会太大,但真正开始写才发现我错了。为了能在书中突出“测试的体系”,我对每一个知识点都力图从源头去讲,以清楚呈现知识背后的逻辑和脉络,所以后本书相较于第1版几乎是全部重构——整体修改量超过70%,新增内容超过30%。一方面,我参考读者的反馈并结合这几年测试工作中遇到的比较多的问题,系统梳理了第1版中的内容,去掉了书中使用率不高的内容,然后结合敏捷开发模式、DevOps更新了书中的方法、模型和案例;另一方面,本书从与测试相关的商业视角、产品视角、开发视角、架构视角、管理视角对测试进行了讨论,这些内容在其他测试类图书中少有涉及。这些内容虽然在测试之外,但和测试息息相关,理解这些内容有助于我们扩展视野,加强对测试系统性的理解,提升制定测试策略和解决实际测试问题的能力。
本书会是一本独特的测试书。你若能不局限于测试,而是站在系统的角度去看待和解决测试问题,我相信你处理问题的方式会发生一些变化,而这些变化有助于你形成系统性思维和个人影响力。我希望本书能够帮助你建立测试体系,并让你成长为测试架构师。
【本书的主要修改】
在整体结构上,本书力求和第1版保持一致,依然分为三部分:
瓶颈:测试工程师该如何进行职业规划。
突破:向测试架构师的目标迈进。
修炼:测试架构师的核心技能。
【相较于第1版,本书的主要修改如下】
第1章 更新了软件测试发展简史,新增了对敏捷开发模式下软件测试特点的介绍,新增了对测试人员面临的机遇和挑战的介绍,深度分析了测试在敏捷开发模式下的价值和机遇,讨论了当代软件测试的各种困境和迷局,讨论了测试人员如何适应从质量守护者到产品赋能者的定位转变。
第2章 在测试技术发展方面,增加了对测试开发及其技术栈的介绍;增加了测试人员在研发工程效能领域发展的内容;在测试工程师职业发展建议方面,着重增加了对提升测试影响力的讨论。
第3章 精简了文字,力求为大家更加清晰地描述测试架构师的定位和应有的能力。
第4章 这是全书修改多的一章,从第1版的6节内容,增加到15节。本章从测试架构师的6个关键能力开始,提出测试架构师需要具备的测试技术知识体系,这也是贯穿全书的主线。
本章更新了性能测试方法,新增了安全测试方法,这些测试方法都是非常重要的专项测试方法。
基于场景的测试也是新增的内容。基于场景的测试是指测试人员围绕产品是否符合当前用户的使用场景展开测试工作。尽管基于场景的测试没有办法像基于质量的测试那样面面俱到,但是其更加关注产品被用户使用的情况,更符合当前版本迭代、快速交付的市场需要。熟练运用场景测试能帮助大家在测试中把握测试重点,使得测试环境更有针对性。书中特别提出“场景测试模型”,帮助大家理解基于场景的测试需要考虑的维度,提升进行基于场景的测试的能力。
本章还特别新增了对“如何澄清和确认需求”和“如何提出有价值的可测试性需求”的讨论。这些内容可以帮助测试团队从源头上减少测试设计返工,提升测试效率。
自动化测试也是本章更新的一个重点,第2版从自动化测试策略的角度,增加了对自动化测试中一些典型经验和教训的介绍,增加了自动化测试分层、自动化测试框架和自动化成熟度模型等相关内容,帮助大家在实际项目中有效开展自动化测试,化自动化收益。
第5章 主要新增了对如何组织和管理测试用例以及如何获得持续学习和探索能力的介绍。
第6章 这也是修改量较大的一章。本章不仅对基于产品质量的测试策略进行了更新和修订,使其可以更好地适应敏捷开发模式和DevOps开发模式,还提出了基于产品特性价值的测试策略,讨论了如何理解产品的价值,如何根据产品价值来安排测试重点。这种测试策略的优势是能够聚焦测试重点,使测试在敏捷开发模式下变得特别高效。同时这套测试策略也能让测试人员真正理解业务,具备商业和产品视角,从而获得认可,建立影响力。
本章还更新了产品质量评估模型,提出了缺陷预判技术。这项技术能够将缺陷分析从“事后分析”(即只能对测试执行发现的缺陷进行分析评估)发展为“测试前可用于制定质量目标”“测试中可分析测试目标达成情况并更新策略”“测试后可对产品质量进行全面评估”的全流程质量评估,从而解决产品质量评估难题。
在测试分层方面,本章更新了敏捷、DevOps开发模式下的典型测试分层。由于很多公司处于敏捷转型下,故新增对敏捷转型过程中测试分层的详细分解,以帮助测试者从整体上理解当前的研发模式,合理安排测试活动。
第7章 对第1版中制定总体测试策略的过程进行了精简,将重点集中在“如何确定质量目标”“如何对项目整体进行风险控制”“如何确定测试优先级”“如何确定测试深度和广度”“如何确定研发模式和测试分层”“如何确定关键测试活动的出入口准则”和“如何预判产品缺陷趋势”这7个方面。在测试设计策略方面,重点增加了“如何划分测试用例的等级”和“如何进行有效的测试设计评审”等内容。
第8章 围绕如何进行产品质量评估进行描述,把内容聚焦到测试过程中经常遇到但又不容易解决的问题上,给出解决问题的思路和参考方案。本章主要的修改点包括:
如何确认提测版本和实际版本的偏差,出现偏差后应该怎么处理;
如何在测试过程中选择测试用例,例如接收测试用例该如何选择,不同测试阶段的测试用例该如何选择,回归测试用例该如何选择;
如何进行测试过程跟踪,如何安排测试执行的顺序;
如何确定缺陷的修复优先级,如何处理非必现的缺陷;
如何使用缺陷预判方法来评估产品过程质量并调整测试策略;
如何进行产品质量评估,包括质量指标的分析、建立特性质量档案、非测试用例发现缺陷原因分析和遗留缺陷分析。
第9章 这一章是新增的,主要围绕基于价值的测试策略案例展开。主要内容包括:
再谈测试策略。对测试策略再次进行分析,再谈对测试核心的理解——任何测试都不能穷尽所有的情况;掌握测试技术,拓展测试视野,做出适当的测试选择,才是测试的核心能力所在。
不同产品阶段下的测试策略。分析产品在探索阶段、扩张阶段、稳定阶段测试策略的差异。
探索式测试策略。介绍如何根据产品特性,选择合适的探索式测试方法。
自动化持续测试策略。介绍如何建设以自动化持续测试为中心的、分层的自动化测试策略。
|
|