训练目标:在 AI 无执行权限的条件下,把复杂需求转成高覆盖实现,并用对话质量、测试设计和静态验证控制风险。
一、每次模拟的固定规则
- 严格限定 90 或 120 分钟;
- AI 只能搜索、阅读和修改文件;
- AI 不得运行构建、测试或脚本;
- 允许考生手动运行测试的模拟,必须由考生操作并复制准确结果;
- 保存完整对话、Token、最终 Diff 和测试结果;
- 最后由另一套隐藏测试或人工参考实现评分;
- 不允许训练中途查看隐藏测试。
二、训练题 A:订单库存预占服务
题目骨架
在已有后端工程中实现订单库存预占:
- 创建订单时按商品预占库存;
- 同一个请求键重复提交只能得到同一订单;
- 任一商品库存不足时整个操作失败,库存不能部分扣减;
- 订单可以确认或取消,但每个状态只能执行允许的操作;
- 取消订单释放库存,重复取消不得重复释放;
- 支持查询商品可用库存和订单状态;
- 保持现有 API、错误结构和存储接口;
- 商品数和订单数达到题目上限时仍需满足性能要求。
训练重点
- 事务原子性;
- 幂等;
- 订单状态机;
- 重复、乱序和部分失败;
- 并发风险;
- 接口兼容和错误语义。
隐藏测试设计方向
- 第二个商品不足时,第一个商品库存不变;
- 相同请求键但请求体不同如何处理;
- 确认后取消、取消后确认、重复确认;
- 未知商品、数量为 0、负数和上限;
- 多行中重复出现同一商品;
- 订单创建失败后请求键是否被错误占用;
- 查询返回对象是否泄漏内部可变状态。
三、训练题 B:回合制技能结算引擎
题目骨架
在已有游戏工程中实现两名玩家的回合制技能系统:
- 玩家轮流行动,每回合有固定行动点;
- 普通攻击、治疗、护盾和中毒消耗不同点数;
- 护盾先吸收伤害,中毒在回合开始时结算;
- 生命值不能超过上限,也不能低于 0;
- 玩家死亡后游戏结束,不允许继续行动;
- 多个持续效果按照题目规定的优先级结算;
- 非法动作必须拒绝且游戏状态完全不变;
- 随机暴击通过已有随机数接口注入,测试必须可确定。
训练重点
- 状态转换和事件顺序;
- 不变量;
- 失败原子性;
- 回合边界;
- 叠加效果;
- 确定性和可测试随机数。
隐藏测试设计方向
- 中毒在回合开始直接致死时,玩家能否继续行动;
- 护盾吸收全部、部分以及刚好等于伤害;
- 治疗溢出;
- 行动点不足时所有状态是否不变;
- 多个效果同时过期;
- 游戏结束后的重复动作;
- 随机数边界值;
- 长序列后生命、护盾、效果持续时间仍满足不变量。
四、反馈闭环
完成后保存下面的训练记录:
# 模拟记录
## 结果
- 公开测试:
- 隐藏测试:
- 最终完成的 R 规则:
## 协作
- 总对话轮数:
- 有效推进轮数:
- 总 Token:
- 最大一次无效消耗:
## 失分
- 漏掉的题目限定词:
- 错误的假设:
- 最晚才发现的接口或状态问题:
- 哪个测试本可以更早发现:
## 下一次只改一件事
- …
有效推进的判断
一轮对话至少满足一项才算有效:
- 新确认一条仓库或需求事实;
- 完成一组明确的 R 规则;
- 用测试或手推证实一个缺陷;
- 排除一个有证据的根因;
- 消除一个高概率隐藏测试风险。
只产生长解释、重复扫描或无关重构,不算有效推进。
五、四周训练计划
第 1 周:需求编译
- 每天选择一道复杂工程题;
- 只做 10 分钟需求—测试矩阵,不写代码;
- 与标准答案或他人用例对照,统计遗漏限定词。
第 2 周:状态机和测试
- 练订单、库存、审批、回合制和棋盘规则;
- 为每题写状态转换表和不变量;
- 从一份有缺陷实现中设计至少 10 个杀伤性测试。
第 3 周:受限 AI 协作
- AI 禁止执行命令;
- 使用 AI Coding笔试Prompt速查 完成两次 90 分钟模拟;
- 记录每轮 Token 和有效进展,删除重复 Prompt。
第 4 周:完整模拟
- 完成两次 120 分钟后端题和一次游戏规则题;
- 引入未知隐藏测试;
- 只根据结果和对话轨迹复盘,不在评分前修改;
- 将最高频失误升级为个人检查清单。
六、自评表
下面是训练用自评分,不是任何平台的真实权重:
| 维度 | 检查问题 |
|---|---|
| 结果 | 核心路径和隐藏测试通过了多少 |
| 覆盖 | 每条题目规则是否有实现和测试 |
| 审核 | 是否发现 AI 的遗漏、幻觉和接口破坏 |
| 归因 | 每次修复是否基于具体证据 |
| 约束 | 是否考虑状态、并发、复杂度和失败语义 |
| 效率 | 是否存在无新证据的重复对话和扫描 |
| 接管 | 能否脱离 AI 解释关键状态机和代码路径 |
每次只选择一个最主要的失分原因进入下一周训练。一次同时改七个习惯,通常等于一个也练不牢。