为什么讨论这个话题
在质量与测试领域,有一个既老生常谈、又常谈常新的问题,“如何评估测试人员的绩效”,我每年都有机会见到它几次。与之相关的,还有以下问题可以一并思考:
- 如何评估测试效果?
- 如何评估质量能力?
- 如何评估测试人员的能力水平?
- 测试人员如何发展?
- 如何建设和发展质量团队?
- 研发效能大热了,测试能够做点什么?
这些问题频繁地出现在各种场合,被质量从业者、或与之密切合作的其他角色所关注着,我们会在不同时间、不同地点看到为解答这类问题衍生的如下误区:
- 以工作量来评价:提交缺陷的数量、完成测试的需求卡片数量、编写/执行的测试用例数量……
- 以工作效率来评价:一定周期内的缺陷数、编写/执行用例数、编写自动化测试用例数、复测并关闭缺陷数……
- 以测试覆盖率来评价:自动化测试覆盖率、手动测试的业务覆盖量/率……
- 以其他任务量来评价:对外支持、联调测试或开会的时长/次数
之所以说这些评价方式是误区,是因为有可能我们最终获得了想要的KPI,但并未看到测试效率因此变好,软件质量因此提升,团队协作因此获益。相反地,我们可能看到了由于不合理的评价方式,质量更加糟糕,团队更加割裂,工作体验进一步恶化。
于是,我想尝试给这类话题总结一个解读方式,由于这是基于个人实践经验和侧面观察的解读,有可能存在一定偏差,请大家按需酌情参考。
团队质量能力清单
在这之前我们聊过,质量体现的是团队整体的能力,而非单一角色的能力。只有每个角色都贡献专长,并且存在合理的质量管控机制,将各角色的能力有机地结合起来,团队才会对外体现出优秀的质量能力。这个观点在之前已经多次讨论过,我们姑且把团队的质量能力作为共识,来继续下面的讨论。
以往聊得较多的是质量理念,当它落到团队中时,所谓的质量能力到底会有哪些表现呢?根据我的观察,粗略整理了一份《团队质量能力清单》,具备高质量能力的团队大概率会有以下表现:
1. 质量全局观
- 以全局的视角看待质量,相比局部质量,更重视全局质量
- 以发展的眼光思考质量,相比阶段性的质量,更追求长期的高质量
2. 质量规划能力
- 能设计与软件特性、团队情况适配的质量策略,达成团队共识
- 能根据软件架构、测试需求、环境资源等因素设计有效的测试架构
- 能对质量任务进行统筹规划,制定和调整测试计划
- 对质量的思考应尽早介入产品设计和研发过程
3. 质量风险干预能力
- 能尽早预判和识别质量风险
- 利用合理的风险管理框架来进行质量风险管理
- 具备有效应对常见质量风险的能力
4. 质量干系人管理能力
- 能识别和管理质量相关干系人
- 能和干系人对质量预期、质量标准和质量需求进行充分的沟通和澄清
- 能将质量状态及时同步给干系人,并管理干系人预期
5. 良好的测试水平和测试效率
- 能根据测试需求和人员能力选择高效的测试方法和工具
- 能设计出有效发现缺陷的测试用例集合,并合理管理测试用例
- 能按需按时完成测试任务,保证版本质量
- 能提供保障质量所需的测试支持
6. 质量研发能力和基础设施支撑
- 具备常见测试工具的使用能力
- 具备测试所需的测试代码编写能力
- 具备保证质量所需的工具、脚本、平台的研发能力
- 具备保证质量所需的基础设施和其他资产
7. 质量观察和度量能力
- 全员具备质量观察意识,具备讨论质量所需的专业基础
- 具备保证质量所需的度量框架,度量方法和指标选取得当
- 具备度量数据采集和汇总能力
- 具备根据需求调整度量框架的能力
8. 质量分析与改进能力
- 具备质量分析能力,能针对质量数据进行整合、分析
- 能从质量数据中获得有效洞察和改进点
- 具备质量改进的能力和资源支持
- 具备质量改进效果的评估和调整能力
9. 质量适应性
- 当质量需求、标准或干系人预期变化时,能适时调整质量策略
- 当质量波动较大时,能分析原因,并调整团队情况以应对变化
- 当遇到外部突发影响因素,如政策法规、信息安全等相关的质量诉求,能迅速协调资源以应对变化
10. 质量内建和团队赋能
- 关心软件质量领域的重大事件,保持行业敏感度
- 能及时与团队同步质量状态及变化趋势、内外部期待、行业变化等信息
- 能从质量数据中挖掘出对业务价值、产品策略、研发效能、团队管理等有价值的洞察,并与团队分享
- 持续不断的提供质量所需的各种能力,包括但不限于:测试数据/脚本和工具等测试资产、质量理念和实践的宣讲、质量价值的回顾与反思
这些能力彼此之间可能存在依赖关系;对于不同团队来讲,这些能力的重要性不同;由于上下文和资源的差异,各个团队所能触达的能力上限也不同。因此,我们暂不约束这些能力的实现等级。
这份《团队质量能力清单》,可作为团队的自检列表:当质量堪忧时,它有助于帮助团队快速定位隐性问题;当我们自认为质量较好时,它有助于自评质量能力,识别改进点;当希望构建质量影响力时,它可以提供可能的思路和方向。
打造质量能力的意义
在阐述完对团队质量能力的理解后,我尝试将打造团队质量能力的意义与所需的主要能力映射起来,我发现这个映射关系很可能是不唯一的,以下是我尽可能少的连线示例,换句话说,这可能是为了实现左侧意义的最小能力集合:
由于前四个意义已经被广泛讨论,这里就不再赘述了,我重点想讨论“优化团队体验”这一项。尽管在大多数场景下,这可能不是我们尝试评价团队质量能力或测试人员绩效的初衷,它作为最后考量的因素,往往会被忽略。但当我尝试解构一些冲突时,会发现这世上只有人是最值得关注的,除人以外的其他概念如公司、团队、组织结构、方法论等等都只是概念而已,它们的存在理应促进人们彼此之间的联系,优化沟通场景;而另一些概念如产品需求、应用软件、甚至AI,其本质都是为人提供服务的。所以,在这里重点强调一下“优化团队体验”,如果团队中的个人不能在工作中感受到有意义和被关怀,那么我们简直可以断言,这个团队不会具备良好的质量能力。
小结 - 做质量的本质
在上次直播《质量改进怎么改怎么进》中我提到,做质量的本质是对外提供一种服务,这个服务可以被这样描述:让团队始终具备交付高质量软件所需的质量能力。为了保证干系人和客户满意,我们需要持续对齐预期,高效实施测试,以适应性来应对风险和变化,持续度量、分析和改进质量,始终强调业务价值,并坚持质量内建,力求让团队能以成本低、收益高、体验佳的方式来交付高质量的软件。
思考:
- 我当前的产品处在什么阶段?当下最重要的质量目标是什么?
- 在清单中提到的各项能力中,哪几项可以是目前的工作重点?
- 为了追求长远的高质量状态(至少不衰退),我们应该做什么?