最近总结测试经验,想针对迭代版本更新分享一些落地的做法。关于版本提测,我们有一套 5 步循环管着:
- 版本上完,测试先确认——确认环境和主要功能可用,确认完在群里通知大家;
- 严重问题当场抛群里——会挡路的问题第一时间反馈,一句话说清、尽可能附图、带编号;
- 定时汇总清单——测试每 15~30 分钟把当前问题汇成一份清单发出来;
- 修完再提测,验证后出清单——开发批量修复后再次提测,测试验证过的,从清单里去掉;
- 清零收尾——清单清零,测试确认版本可用,在群里更新一条完成情况。
比起分享这个流程,我更想说的是这套流程是怎么来的——它不是谁一拍脑袋设计出来的,是一次次乱出来的。几乎每一条规则背后,都对应着一场具体的乱子。把"乱"写出来,是因为我觉得对想抄流程的人,知道每条规则是堵哪个洞的,比拿到一套完整的 5 步有用得多。
最早其实没有"提测"这个说法。项目每周一个迭代版本,大家只管代码有没有上上去,版本上了就算完,没人确认过这个版本能不能用。结果呢,第二周真要测的时候,这也不行那也不行,只能边测边把开发拉来修。测试的安排全被打乱,开发也一肚子意见——当周任务被反复打断。两边都觉得自己委屈。
后来项目负责人、测试负责人、开发负责人坐到一起,定了一条最基础的约定:版本更新后,测试先确认环境和主要功能可用,确认完再通知大家。这条约定就是整个流程的源头。从它开始,规则是一条一条长出来的。
最早冒出来的是"反馈太杂 + 互相等待"。一开始是"有问题就在群里说",没多久群里的问题就乱成了一锅粥——大小问题混在一起,没重点也没优先级,处理安排跟着乱。同时还卡着一件更要命的事:测试在等开发改完上版,开发在等测试测完确认,两边常常互相等,一个迭代能拖很久。这事不是改一个地方就能完的,先后定了三条规则:
- 只反馈影响测试的严重问题。迭代期间只反馈严重问题,非严重的留到全量测试时提 BUG——这条把"迭代期"和"全量测试期"分开,是后面所有规则的地基。
- 测完主动反馈。测试测完要主动反馈,不能等群里有人问才说话。
- 更新时间尽早当场敲定。下一次更新迭代的时间,测试和开发尽早敲定,有任何疑问尽快提,谁都别等谁。
规则一条条落地之后,上版过程才慢慢顺了一些。
接着是"问题说不清,也没编号"。群里的反馈当时有两个毛病。一是问题描述不完整:常常只有一句话,还未必说得清楚;或者只甩一张截图,没有文字说明,不知道想表达什么。二是问题一多就乱:没有编号,想跟进都不知道该指哪一个。针对这两个毛病,又约定了两条:
- 问题要说清、尽可能附图,不能只有图没有描述——这样负责汇总的测试同学能快速把问题罗列出来,开发一眼能看明白,其他测试同学也方便协助验证。
- 群里的问题统一编号。不管谁提的,发问题的时候带上编号,顺序递增。哪个问题漏了编号,可以删了重发,或编辑原消息补上新编号。
暴露得最慢的,是"汇总清单"的问题。这个洞不是马上出现的,迭代了几次才慢慢显形。一开始靠人翻聊天记录:问题一多,得往上翻才知道哪些处理了、哪些还没有。问题少的时候还勉强应付得来,日常迭代问题一多就顶不住了。后来有人开始抱怨跟不上,才开始想办法,于是有了定时汇总的约定:测试每 15~30 分钟把当前问题汇一份清单发出来;开发处理完在群里回一句,版本再更新、测试验证过了也回一句。
清单的格式也调过几轮:最早是只罗列问题,没标注处理进度;之后改为所有问题都列出来、标注处理了没处理——问题少的时候还行,问题一多就又不好用了;一段时间后,才改成把验证过的直接从清单里去掉。那阵子还纠结过另一件事:旧的清单到底要不要删掉,只留最新一份?试下来发现不行——旧清单一删,这个迭代里问题处理的来龙去脉就全没了,回头想查"当时那个问题是什么情况"都没处看。所以最后定的是:旧清单都留在群里不动,只在最新一份里把新修复验证过的去掉。
清单机制里最坑的一次,是"编号要不要重编"。有段时间我们嫌列表编号越编越长,可能还会跳号,就重新从 1 开始编。一开始觉得这主意不错。结果——跟进的人开始对不上号,比它"解决"的那个问题还乱;麻烦的是为了重新编号,测试同学还得专门新开一个记事本重新整理,费时费事,事后回头看也理不清。后来定死一条:编号只增不减,用过的编号不复用,也不重编。
核对问题处理进度时,编号两头一对,这个迭代是不是在收敛,一眼就能看出来。至于编号过程中会跳也无伤大雅,能解决问题就行。这个好处不是谁事先设计好的,是用着用着才慢慢意识到的。
另外还有两个问题,一个关于记录,一个关于收尾。
关于记录:迭代里发现的问题,一开始只在群里有,系统里没记录。开发和测试流程倒是省事了,但一到质量分析时就发现不合适。于是规定:当周的问题统一汇总,提 BUG 单到缺陷平台存档。
这个做法是有代价的——问题埋在一到两张汇总单里,系统的统计会失真,想做数据分析还是很难。但"留痕、可追溯"的价值更大,我们选了留痕。
现在通过 AI 了解,行业里更成熟的做法一般是两种:一种是提测期的问题按优先级分流,高优先级的即时录入、低优先级的批量补录;另一种是给汇总单打上"提测期"标签,统计时单独归类,不污染日常的缺陷数据。我们没做到这一步,统计失真是实打实的代价。如果你正要建类似的机制,可以直接参考行业做法,少走我们走过的弯路。
关于收尾:迭代结束,有时口头说一句"没问题了"就放行,没留文字。这也是一种省事的做法,特别是迭代时间拖得长的时候,但并不规范。于是规定:确认完成后,测试在群里更新一条完成情况,明确迭代完成。
这是执行得不太理想的一条——不只是忙的时候漏,平时也会漏。说到底是大家没把"为什么必须留文字"形成共识,只觉得口头说过就行,过于随意了:规则立了,意识没立住。
以上这些乱子和规则收拢到现在,就是开头那套 5 步循环。但流程归流程——它管得住标准动作,管不住"资源"。人手不够的时候,确认和修复的时间都会拉长,冲突变多,有时要靠负责人出来协调;开发不配合的时候,得负责人出面;问题实在太多处理不完,迭代就完不成,第二天接着来。还有一个遗留问题——迭代期间"这个问题该不该现在优先处理",测试和开发时不时还是有分歧。现在回头看,根子不在谁的态度,还是在标准不够明确,待后面再总结一下。
另外说明一句:这篇讲的是提测这一个环节。测试过程中的协作——和开发的配合、跨角色的沟通——对效率和结果的影响不比流程小,我们也有不少没做好、还在改进的地方,那块值得单独再整理。
还有一点想单独强调:这套流程能成形,靠的不是哪个管理者高明。好几个调整,都是参与的测试同学、开发同学先说出"有问题"才启动。流程好不好用,天天用它的人最清楚——大家都憋着不说、改进全等着管理者来推,问题只会越拖越久;反过来,谁觉得别扭就主动提出来,问题才能越早得到改进。而且能发现问题、推动改进,这件事本身就是个人能力成长的机会,比闷头执行收获大得多。
所以如果你想在团队里推行类似的东西,个人建议是别整套搬。先找你团队最痛的那个点:是问题没编号没法跟?是群里刷屏没人汇总?还是测试和开发互相等、没人定更新时间?找到它,对症抄上面那条规则,先立一条就够,试用看看。流程这东西,别人给你一套完整的,你未必用得起来;自己乱过一次长出来的,才守得住。