跳到正文
ToolSimu

B2B、代理机构与运营 · 交互式模拟器

QA 与迭代瓶颈模拟器:当开发速度超过测试能力

开发人员完成功能的速度比 QA 验证的速度更快,二者之间的队列悄悄吞噬着价值。给等待、漏网的缺陷以及多招一名测试人员定价。

控制塔

构建功能的工程师。开发人员越多,产出越高,但测试速度不会随之提高。

8

一位开发人员每月完成并移交给 QA 的功能数。

2.5

在发布之前验证功能的人员。

2

一位测试人员每月能够完整测试、回归测试并签字确认的功能数。

7

一项功能触达用户之后带来的收入、留存或节省。

¥68,400

每项功能在队列中每多等一个月所损失的价值,以损失的收入或客户信任衡量。

¥5,760

对当前场景运行反向压力测试和 1,000 次蒙特卡洛模拟。

每月净结果

¥56,448

层层传导的多米诺流程

每个环节都会影响下一个环节。绿色表示安全,琥珀色表示预警,红色表示危急。

  1. 1

    开发产出

    20

    每月完成的功能数

    危急

  2. 2

    QA 负荷

    143%

    的 QA 产能被需求占用

    危急

  3. 3

    平均队列

    18

    项功能等待测试

    危急

  4. 4

    等待成本

    ¥20万

    每月的队列延迟与上下文切换

    危急

  5. 5

    流水线结果

    ¥6万

    每月净额

    预警

金额以CNY显示,采用示意性比例,并非实时汇率。

深度指南

QA 与迭代瓶颈模拟器:当开发速度超过测试能力

行业管理层分析

软件团队就是一条流水线,而流水线的发布速度不可能快过它最慢的环节。当开发人员完成的功能多于测试人员能够验证的功能时,多出来的工作不会消失,而是加入一个队列。管理者看到忙碌的开发人员和满满的迭代看板,就断定团队很有产出。但一项已经构建却没有测试的功能没有赚到任何东西,而且每多等一周,它的价值就减少一分。在这种情况下增加开发人员,只会同时提高薪资总额和队列长度,而已发布的产出原地不动。

这个问题的结构是两种速率之间的差距。开发产出是开发人员数量乘以每人完成的功能数。QA 产能是测试人员数量乘以每人能验证的功能数。已发布的功能是二者中较小的一个,两者之差就是队列增长的速率。由于队列月复一月地累积,它的成本不会保持不变,而是不断积累。一个略微超出产能的团队,在第一个迭代里看起来一切正常,到第六个迭代却明显出了问题,这就是为什么这个问题在变大之前很容易被忽视。

多米诺效应展示了这个序列。较高的开发产出让所需 QA 产能的占比超过百分之百。这种负荷使队列增长,拖延了排在它后面的每一项功能。等待直接损耗价值,同时还通过缺陷修复和疑问把开发人员拉回旧的工作中,使他们的时间消耗在上下文切换上。不堪重负的测试人员匆忙行事,更多缺陷漏网。每一环都推动下一环,所以第二格里的小幅过载,几个迭代之内就可能让最后一格变红。

冰山把薪资总额与瓶颈的成本区分开来。水面之上是开发人员和 QA 的薪资,人人看得见。水面之下是四项很少单独列示的成本:功能等待期间损失的价值、因测试仓促而流入客户手中的缺陷成本、开发人员因上下文切换损失的时间,以及测试人员在过载下的加班。它们合在一起,可能超过本可以消除这些问题的那一名额外测试人员的成本。用这个模拟器找出您的流水线无法回本的开发与 QA 比例,然后将其与增加一名测试人员作比较。

公式与方法论蓝图

模型按月、在稳态下计算。开发产出等于开发人员数量乘以每人完成的功能数。QA 产能等于测试人员数量乘以每人验证的功能数。已发布的功能是二者中较小的一个。队列每月按差额增长,六个月窗口期内的平均队列是该增长量乘以六的一半。延迟成本等于平均队列乘以延迟成本单价。每有一项排队的功能,开发人员就损失 1% 的时间用于上下文切换,上限为 20%。漏网缺陷随过载而增加。

开发产出
P = 开发人员 × 每人完成的功能数
每月完成并移交给 QA 的功能数。
已发布功能
S = 取较小值(P, 测试人员 × 每位测试人员验证的功能数)
流水线只能发布测试所验证过的内容。
队列
Q = 取较大值(0, P − 产能) × 3
六个月窗口期内等待的功能的平均数量,因为队列呈线性增长。
漏网成本
E = S × (3% + 15% × 过载) × 4,000
随着 QA 过载而增加、流入客户手中的缺陷,每个缺陷的成本为 4,000。
流水线结果
Net = S × 价值 − 薪资总额 − Q × 延迟成本 − E − 上下文切换税 − QA 加班
月度结果。盈亏平衡的负荷就是该值降为零之处。

层层传导的弹性

开发产出与 QA 产能之间的差距是弹性最大的因素,因为它同时驱动队列、延迟、上下文切换和漏网缺陷。每项功能的价值直接放大已发布的产出。薪资总额是线性的,起到门槛的作用,这就是为什么多招一名测试人员往往能带来数倍于其成本的回报。

三个真实案例研究

白手起家的初创者

三人的产品团队

三名开发人员和一名测试人员负责一个小型产品。开发人员每月完成六项功能,测试人员可以验证七项,所以没有任何排队。加载这个案例,看看一个均衡的小团队:发布等于构建,没有需要解决的瓶颈。

处于扩张期的中型市场企业

拥有 24 名开发人员的均衡组织

一个大型组织为 24 名开发人员配备了七名测试人员,并投资于自动化,使 QA 产能略高于开发产出。队列极少,已发布的价值很高。加载这个案例,看看为什么健康的比例能让大团队保持盈利。

黑天鹅危机

十名开发人员与两名超负荷的测试人员

十名高效的开发人员每月完成 30 项功能,但两名测试人员只能验证 10 项。队列每月增长 20 项功能,缺陷漏网,开发人员不断回到旧代码中。加载这个案例,看看比例问题如何把庞大的薪资总额变成亏损。

行业基准矩阵

指标危险区行业平均前 10% 的佼佼者
每位测试人员对应的开发人员数高于 8:13–5:1借助自动化约为 2–3:1
QA 负荷(开发产出相对于产能)高于 130%90–105%低于 90%
等待测试的平均队列超过 10 项功能2–4 项功能少于 2 项
每次发布漏网到生产环境的缺陷高于 10%3–6%低于 2%
从完成到发布的周期时间超过 4 周1–2 周少于 3 天

变量与杠杆

开发人员

构建功能的工程师。开发人员越多,产出越高,但测试速度不会随之提高。

杠杆: 在测试能力提升之前不要增加开发人员;限制在制工作量,让团队完成得更少,却发布得更多。

每位开发人员每月完成的功能数

一位开发人员每月完成并移交给 QA 的功能数。

杠杆: 把每个迭代启动的功能数限制在 QA 能验证的范围内,因为完成了但没测试的工作不会带来任何收益。

QA 测试人员

在发布之前验证功能的人员。

杠杆: 增加测试人员,或把测试工程师嵌入团队,因为每多一名测试人员,就能释放一批目前正在等待的功能。

每位测试人员每月验证的功能数

一位测试人员每月能够完整测试、回归测试并签字确认的功能数。

杠杆: 自动化回归测试并提前写好验收标准,让测试人员验证新工作,而不是重复旧的检查。

一项已发布功能的价值

一项功能触达用户之后带来的收入、留存或节省。

杠杆: 按价值为功能排序并舍弃低价值的功能,因为测试能力会被花在任何进入队列的东西上。

每项功能每月的延迟成本

每项功能在队列中每多等一个月所损失的价值,以损失的收入或客户信任衡量。

杠杆: 更频繁地发布更小的增量,这会缩短每项功能的等待时间,并降低延迟成本。

如何使用本模拟器

  1. 1输入开发人员的数量以及每人每月完成的功能数。
  2. 2设定测试人员的数量以及每人能验证的功能数。
  3. 3估计一项已发布功能的价值,以及每项功能每月的延迟成本。
  4. 4查看五张多米诺骨牌,留意 QA 负荷何时超过百分之百。
  5. 5在“平行宇宙”标签页中与增加测试人员的方案作比较,并分享链接。

应避免的错误

  • 用完成的功能数来衡量开发人员。等待测试的工作是库存,而不是产出。
  • 对很长的时期取平均值。每月增长的队列,早期看起来很小,后期却很大。
  • 把测试人员当作要削减的成本。在瓶颈状态下,测试人员的产能是流水线中最有价值的产能。
  • 只计算延迟成本。漏网的缺陷和上下文切换的损失,往往超过它。

常见问题

为什么增加开发人员并不能提高已发布的产出?

因为发布速度受限于最慢的环节。额外的开发人员只会增加 QA 前面的队列,抬高成本,却不会提高发布速率。

仅凭开发与测试人员的比例就够规划了吗?

这只是个开始,更有用的比较是产出与产能。自动化、需求的质量以及产品类型,都会大幅改变这个比例。

延迟成本是如何估算的?

按每项等待中的功能每月的损失来估算,以损失的收入、留存或信任衡量。这是一个假设,所以请测试一个较低和一个较高的数字,看看哪个占主导。

为什么缺陷会在过载时增加?

被催促的测试人员会跳过用例,减少复查。模型根据需求超出产能的程度按比例增加漏网缺陷。

多招一名测试人员的情景说明了什么?

它显示了多招一名测试人员并实现回归自动化的回报,这会提高 QA 产能,通常能清空队列。24 个月标签页会显示何时回本。

这个结果有多准确?

这是一个用于教育和规划的模型,其假设已在上文列出,不构成工程或财务建议。请用您自己的吞吐量和成本数据替换输入。

这是一个带有明确假设的教育性规划模型,不构成财务、税务或法律建议。请将输入替换为您自己的数据,并就重要决策咨询合格的专业人士。