SH

Soloharness

概念 · 辨析 · Agent

← 返回概念辨析

Concept Contrast Fable

任务成功率和步骤成功率

一个数告诉你整趟活儿干没干成,另一个数拆开看每一步有没有踩稳。只看任务成功率,会漏掉中间反复摔跤的代价;只看步骤成功率,又不知道最终交付的东西值不值。

寓言

两本成绩单

老林的自动化测试工坊接了一家大客户的订单,客户要求在三个月的试用期内把每条测试流水线的成功率做到百分之九十五以上。老林让团队堆人力、加容错、把重试次数拉满,月底交了一份漂亮的报表:任务成功率百分之九十七。

客户看了报表很高兴,决定续签年度合同。但续签之后第二个月,客户的运维主管找上门来,说你们的流水线虽然最终任务完成了,但每条任务平均重试了四遍半,单次任务动辄跑四十多分钟,后半夜还在排队。成本翻了三倍,下游团队天天加班等结果。

老林把原始日志翻出来重新算了一遍。数据不骗人:任务成功率确实有百分之九十七,但步骤成功率只有百分之六十二。一个典型的测试任务有八个步骤,平均要失败三个、重试三个,最后靠重试机制硬把任务兜住了。

老林把两条曲线画在同一张图上。任务成功率是一条平滑的上坡线,一路爬到百分之九十七。步骤成功率是一条锯齿线,冲到六十几就掉下去,再爬再掉,反复震荡。客户看着这张图沉默了三十秒,说:原来我们付了三倍的钱,买的是同一个结果。

老林跟客户一起把每条流水线的步骤拆开,逐项分析哪一步失败率最高、失败原因是超时还是资源不够、能不能在步骤层面修复而不是靠任务级别的重试硬扛。他们把超时的外部 API 调用改成了异步队列,把几个容易冲突的数据库锁操作拆到不同的时间窗口。

三个月后,任务成功率还是百分之九十七,但步骤成功率从百分之六十二涨到了百分之八十九。单条流水线的平均运行时间从四十分钟降到了九分钟。客户运维主管发来一条消息:昨晚所有流水线跑完,凌晨一点就全结束了。

老林在年终总结里加了一个新规矩:以后任何流水线评估,报表第一行写任务成功率,第二行必须跟步骤成功率。两个数字之间的缺口直接用红字标注,缺口越大,问题越严重。

他给同行讲这件事的时候说了一个比方:任务成功率是看终点线,步骤成功率是看整条跑道上摔了几跤。一个人如果能一口气跑完,另一个人摔了五次爬起来五次,两个人同时撞线,但体力和鞋底磨损完全不一样。

任务成功率

衡量一个完整任务从发起到最终交付是否成功的比率。它不区分中间步骤的得失,只关注终点状态。一个任务可能经历了多次失败和重试,但只要最终完成,就算一次成功。

步骤成功率

衡量任务内部每一步操作的独立成功比率。每一步失败后可能被重试、跳过或降级处理。步骤成功率低意味着系统在大量依靠容错机制硬撑,而非稳定执行。

故事对应

  • 任务成功率百分之九十七但步骤成功率百分之六十二:高容错掩盖了底层执行的不稳定。
  • 平均重试四遍半:步骤成功率低的直接后果,每一次重试都在消耗时间和资源。
  • 两条曲线的对比图:任务成功率平滑上升,步骤成功率反复震荡,暴露了隐藏成本。
  • 把超时 API 调用改成异步队列:在步骤层面修复根本问题,而不是依赖任务级别的重试兜底。
  • 两个数字之间的红字缺口:真实世界里最有价值的信号,缺口越大说明系统越依赖运气和重试。

落到项目里

验收报告上永远同时写两个成功率。任务成功率说清了交付结果,步骤成功率说清了执行成本。如果缺口超过十五个百分点,优先排查步骤失败根因而不是继续加重试。自动化程度越高、调用链越长,这两个数字的差距就越有诊断价值。