夜雨聆风学习资料网

ARTICLE · 1233306

老板不该当 AI 的人肉测试员

老板不该当 AI 的人肉测试员

做 Game Copilot 的前期,多次出现同一种低效循环。

代码看起来没问题。

APK 发给我。我装到手机上,闪退或者无反应才暴露出来。

我能说回去的,主要是口头反馈。这样的来回,前期出现过多次。

 

一、10月9日,执行端第一次自己做真运行检查

站在使用者的角度,我能说的往往只是出现了闪退或无反应。

前一晚,我让执行端自己下载了模拟器。2026年10月9日,Windows 笔记本上补齐了 Android Emulator 和 WHPX 运行环境。

这一天,执行端第一次自己做真运行检查。安装、启动、logcat、MediaProjection、FakeGame、HUD,都在这次检查里。

以前这些步骤不是它自己完成的。代码看起来没问题,APK 到了我这边,闪退和无反应才出来,我再用口头反馈把现象说回去。

这条真机链路一跑,马上抓出了三个缺陷。三个缺陷此前都靠我的口头反馈,很难定位。

 

二、第一个问题:只投递了一帧

第一个缺陷出在 `CaptureService`。

它只投递一帧,导致 `frameId` 不再推进。

识别器事实上不会持续工作。

帧只出去了一帧,`frameId` 就停住了。没有后续的帧,识别器也就不会持续工作。

 

三、第二个问题:安全确认写了,但实际上没有确认

`SceneRecognizer` 有一层二级确认,但它拿当前帧和当前帧自己比较,距离恒为 0。

代码里确实存在“二级确认”这套结构。

可一旦比较对象就是自己,距离恒为 0,确认就失去了意义,安全确认实际上形同虚设。

这个缺陷,此前靠我的口头反馈很难定位。这次程序实际跑起来,才看到它拿当前帧和自己比。

 

四、第三个问题:崩溃前先打出“显示 fixture”

第三个缺陷来自 FakeGame。

FakeGame 自身每次启动都会崩。

但旧日志在崩溃前,先打印了一句“显示 fixture”。

这句打印造成了假象,让过程看起来像端到端已经成功。FakeGame 自身的运行结果仍然是:每次启动都会崩。

 

五、模拟器的价值,不只是省下一台手机

这次经历之后,我们把问题提炼成了一句话:老板不该做人肉测试员。

这不是我一开始就设计好的方法论。我的原始判断更直接:如果前一晚没有让它自己下载模拟器,这些问题可能都会落到我的手机上,而我也不一定能反馈清楚。

复盘时,我们才把这次经历整理成“自验证闭环”:AI 开发需要自己的运行环境,也需要可观测的运行证据。

讨论后的关键认识,不是“模拟器很好用”。没有自己的运行环境,也没有可观测证据,大量本该由执行端自己发现的问题就会转嫁给 Owner,最后形成一种荒唐的组织结构:AI 写代码,老板做人肉测试员。

没有这两样东西,很多运行问题就会被转嫁给 Owner。至于装上以后会不会崩、服务有没有持续工作,它只能等老板试。

于是,老板的手机成了它的运行环境,老板的眼睛成了它的监控工具,老板的口头描述成了它的日志系统。很多本该由执行端先发现的问题,就这样被推到了最后一个人身上。

六、老板不是不测试,而是只守最后一道门

这并不意味着真实设备不重要。模拟器不能替代最终的 Real Environment Gate。

但真实设备应该是最后一道门,而不是日常开发的第一块试验田。

这次复盘后整理出的顺序是:

开发 → 自己运行 → 自己抓日志 → 自己定位 → 自己修复 → 自己回归 → Gate 通过 → Owner 做最终 Real Environment Gate。

顺序是讨论之后才整理出来的。

自己运行,是要执行端自己有运行环境。这次补上的,是 Windows 笔记本上的 Android Emulator 和 WHPX。

自己抓日志、自己定位,是要有可观测的证据。这次分开的三处是:只投递一帧而且 `frameId` 不推进,二级确认距离恒为 0,以及 FakeGame 崩溃前那句“显示 fixture”。

自己修复、自己回归放在 Gate 前面。Gate 通过,才交给 Owner 做最终的 Real Environment Gate。

执行端先把自己能够发现的问题消化掉,再把经过验证的结果交给 Owner。Owner 要判断的是:它在真实环境里是否可用。闪退和无反应如果还要我来发现,我也不一定能反馈清楚。

我把这条闭环再说成一句人话:代码写完,先在执行端自己的环境里跑起来,自己看日志,自己定位,自己修复,自己回归。Gate 通过之后,我再做最终的 Real Environment Gate。

七、这次可以直接带走的四条检查法

这四条是这次经历整理出来的用法。运行环境,就是 2026 年 10 月 9 日 Windows 笔记本上的 Android Emulator 和 WHPX。执行端自己做完的,是安装、启动、logcat、MediaProjection、FakeGame 和 HUD。Owner 最后仍要做的,是 Real Environment Gate。

第一,交任务前先问:执行端有没有可运行环境?没有,就不要把“代码看起来没问题”当成交付。

第二,看日志不要只搜成功关键词。成功日志之后有没有崩溃,状态有没有继续推进,要一起看。

第三,把“中间信号”和“最终结果”分开。“显示 fixture”发生过,不等于 FakeGame 端到端成功。

第四,把真实设备留给最终 Gate。日常能由执行端完成的安装、启动、日志检查和回归,不要先压到 Owner 身上。

我现在越来越觉得,AI 开发真正要减少的,不只是写代码的时间。

它还应该减少老板在低层故障之间来回传话的时间。

如果每一个 APK 都要等老板亲手点一下,AI 才知道自己写的东西能不能跑,那它只是把敲键盘自动化了,并没有形成真正的开发闭环。

老板可以做最后的真实验收,但不该成为 AI 唯一的运行环境。


说明:以上是基于2026年10月9日 Game Copilot 阶段性工程实践整理的公众号草稿。文中三个缺陷均按素材所载的运行检查结果表述,不代表其后续修复与最终真实设备验收已经完成;未经用户逐句审定,不代表已公开发表。

相关学习资料