检测正常而用户仍报故障,通常不是检测本身出错,而是检测条件与用户实际发生故障的条件不一致。构造复查条件的核心动作,是把用户报障时的设备、入口、账号状态和操作路径还原成可复现的一组变量,再用这组变量去跑检测,而不是在原有正常样本上反复加量。下面用一个假设情境把决策过程走一遍。
假设某业务用网络推广软件做落地页可用性检测,巡检结果连续正常,但客服接到零散用户反馈:点击推广链接后页面长时间空白,刷新后偶尔恢复。此时先别急着换工具,而要区分两种成因。
可区分的证据是:如果同一用户在同一网络下能稳定复现,偏向样本失效;如果用户自己也时好时坏、且与访问时段相关,偏向间歇性。前者的下一步是补条件,后者的下一步是加时间维度的重复采样。两者的动作不同,不要混着做。
用户口中的“打不开”几乎不能直接当条件用。需要把它拆成可勾选的字段,再决定哪些进检测、哪些先排除。
把这几项列成表后,先做一次筛选:如果用户故障只在“特定账号+特定入口”出现,那设备因素可以先放一边,优先复现账号与入口的组合。这一步的实际动作是缩小变量,而不是把所有字段都塞进检测任务,否则结果依旧是一堆正常,问题被稀释。
复查要能得出结论,必须一次只放开一个变量。假设上述业务怀疑是入口分流问题,可以这样安排:
这样做的结果是:一旦某一轮出现异常,就能把范围锁到那一组条件上,后续的修复验证也只需重复这一组,而不用重跑全部组合。反过来,如果一开始就同时变动设备和入口,即使复现了,也无法判断是哪个因素触发,下一步只能继续试错。
复查可能出现三种结果,对应三种不同的下一步。
结果一:用用户条件复现了故障。说明原检测的覆盖面不足,动作是把这组条件补进常规检测项,并记录触发变量。此时不要立刻宣布问题解决,还要确认该条件是否只影响这一部分用户。
结果二:用用户条件仍无法复现。这并不等于用户描述不成立。合理解释包括:故障已自行消失、用户环境存在检测无法覆盖的本地因素、或故障依赖某个尚未识别的并发条件。下一步是向用户索取更具体的时间点和操作录屏式描述,而不是反复跑同一批正常样本。
结果三:复现不稳定,时有时无。这时应把复查从单次验证转为带时间戳的连续采样,并标注每次采样的条件。需要注意的是,某段时间内抓取量或请求量归零,不能单独证明问题已修复,它也可能是流量本身下降或采样中断造成的,需要结合条件记录一起看。
判断标准可以归结为一句:如果用户故障能被一组稳定条件复现,就改检测条件,把这组条件纳入常规覆盖;如果始终无法稳定复现,就改排查方式,从“找复现”转向“收集现场证据”,例如让用户提供出现故障时的入口、账号和时间。
前者影响的是检测任务的配置,后者影响的是与用户的沟通和记录流程,两者投入的方向不同。把这条界线划清,才不会在检测一直正常的情况下,把时间全部耗在重复巡检上。