从"开盲盒"到工程化:一个测试开发的 AI 工作流演进

33 阅读11分钟

从"开盲盒"到工程化:一个测试开发的 AI 工作流演进

这不是一篇 AI 工具安利。这是一个测试开发工程师,从把想法丢给 AI 就期待奇迹,到摸索出一套可复用工作流的过程。踩过的坑可能比方法论更有价值。


开头:我也曾经"开过盲盒"

年初公司开始推广 AI 提效,领导推荐使用TRAE,于是我兴奋地装上了它,打开一个项目,输入了一句话:

"帮我实现 xxx 功能。"

AI 确实生成了代码。我满怀期待地运行——报错。改了 prompt 再来——能跑了,但逻辑不对。再改——这次倒是对了,但把另一个模块搞坏了。

来来回回几轮下来,我的感受是:这东西像开盲盒。有时候惊喜,有时候惊吓,但你永远不确定下一次打开会是什么。

后来我想明白了一件事:问题不在 AI,在我。

我既没有给它明确的边界,也没有建立验证机制,更没有想清楚"我到底要它做什么"。我只是把一个模糊的想法丢出去,然后期待它猜对我的意思。

那之后,我开始调整使用方式。从"让 AI 自由发挥",到逐渐形成一套工程化的工作流。踩了不少坑,也总结出了一些真正有用的经验。


一、三个花了代价才想通的认知

1. AI 没有最好,只有适合场景的

这段时间我试了很多 AI 形态——Chat 对话、IDE 插件、命令行 Agent、各种集成工具。

最大的感受是:没有哪个 AI 是万能的,也没有哪种使用方式一定最好。

  • Chat 适合你方向不明确的时候,帮你梳理思路;
  • IDE 插件适合写代码时的即时补全和小修小补;
  • Agent 适合目标明确后,让它进入项目上下文做大块工作。

而且 AI 是"越用越好用"的——不是因为它在进步,而是因为你越来越清楚它的能力边界。你知道什么时候该信它,什么时候该自己判断。

这种边界感,才是使用 AI 最重要的能力。

2. AI 不怕你不会写,怕你不知道自己要什么

这是从"开盲盒"经历里得出的最核心的教训。

你可以不知道某个框架的 API 怎么调,AI 会帮你查。你可以不熟悉某种设计模式的写法,AI 会帮你实现。但有几样东西你必须自己清楚:

  • 业务流程是什么——整个系统的数据怎么流转,模块之间什么关系;
  • 为什么选这个技术栈——不一定要知道每行代码怎么写,但要知道选型理由和它的局限性;
  • 怎么判断 AI 的产出对不对——如果你自己都不知道"对"是什么样子,AI 给你什么你都分辨不出来。

你给 AI 的输入不可能覆盖所有场景,所以你必须有能力从它的产出中筛选和纠偏。 这需要的不是编码能力,而是工程判断力。

3. 用了 AI 之后,文档和版本管理更重要了

很多人觉得有了 AI 就不需要写文档了——恰恰相反。

AI 的上下文和记忆并不完全可见、也不完全稳定。你以为它记住了上一轮对话里你说的约束条件,但下一轮它可能就忘了。你以为它理解了项目的整体架构,但它可能只看到了当前文件。

文档是明确的、稳定的上下文。 关键想法、方案演进、技术约束和决策过程,都应该沉淀成文档。

版本管理也一样。让 AI 改代码时,如果没有 Git,改歪了就真回不来了。每完成一个小需求就提交一次,Git 就是你让 AI 放手干活时的安全绳。


二、我现在的 AI 工作流

踩完坑之后,我逐渐形成了一套相对稳定的工作流。不复杂,但有效。

graph LR
    A[Chat 梳理思路] -->|明确方向| B(文档沉淀)
    B -->|明确约束与标准| C{Agent 分步执行}
    C -->|局部代码产出| D[Review 验证]
    D -->|未对齐预期| B
    D -->|代码符合要求| E((Git 小步提交))
    
    style A fill:#2A2D34,stroke:#4CAF50,stroke-width:2px,color:#fff
    style B fill:#2A2D34,stroke:#2196F3,stroke-width:2px,color:#fff
    style C fill:#2A2D34,stroke:#FFC107,stroke-width:2px,color:#fff
    style D fill:#2A2D34,stroke:#FF9800,stroke-width:2px,color:#fff
    style E fill:#2A2D34,stroke:#9C27B0,stroke-width:2px,color:#fff

第一步:Chat 梳理方向

如果对一个事情还比较模糊,我不会一上来就让 AI 写代码,而是先跟它聊。

这个过程更像是在找一个陪你梳理思路的人。你说出粗略的想法,AI 帮你补充技术方案、提出你没想到的边界情况、拆解实现路径。聊着聊着,方向就逐渐清晰了。

Chat 的价值不是给你答案,而是帮你把问题想清楚。

第二步:文档沉淀

想清楚之后,我会把目标、约束条件、技术方案和验收标准写成文档。

这一步很多人会觉得多余——"我脑子里清楚了直接干不就行了?"但我的经验是:写给 AI 看的文档,其实是在逼自己想清楚。 如果你没办法用结构化的语言描述清楚你要什么,那大概率你自己也还没想透。

比如:以前我可能是让 AI“写个解析协议的函数”;现在我的文档里会明确写“输入是 Hex 字符串,输出是 JSON,需处理粘包异常,且绝对不能改变原数组对象”。 一点点具象的约束,就能让 AI 的产出从“薛定谔的状态”变成“极度可控的组件”。

这份文档同时也是后续 Agent 执行的输入和 Review 时的校验基线。

第三步:Agent 进入项目

目标明确后,我会让 AI Agent 读取项目代码。

关键是不要一上来就说"帮我重构"。我的习惯是分三步走:

  1. 先让它总结当前项目的实现方式——看它理解得对不对;
  2. 再让它分析需要改动的点——和你自己的判断做对比;
  3. 最后列出改造计划,确认后再分步执行。

这样做的好处是:每一步你都有校验点,不至于到最后才发现它理解错了需求。

第四步:Review

Review 不能只看 AI 的文字解释。我一般会做两件事:

  • 看 AI 给出的修改说明,和我的预期是否一致;
  • 直接打开关键文件,看实际代码变更是不是合理。

有些 AI 的解释写得很漂亮,但实际代码里可能有遗漏或硬编码。所以必须看代码本身。

第五步:Git 提交

每完成一个小功能、一个小模块,就提交一次。不要攒着一把梭。

这不只是好习惯,更是和 AI 协作时的风控手段——如果 AI 在第三步把某个模块改坏了,你可以直接回退到上一个正确的提交,而不是花半天去找它到底改了哪里。


三、一个真实案例:IoT 设备模拟器重构

理论讲完了,来看一个完整的实战案例。

背景

我所在的团队负责 IoT 智能表计系统的测试。团队有一个内部工具——设备模拟器,用来模拟各种表计设备的协议报文,这样测试时就不用依赖真实的硬件设备。

这个项目已经被多人迭代过好几轮,技术栈混乱、依赖冲突频繁、没有统一规范。我接手的时候,光搭本地开发环境就花了两天——这还是在有人指导的情况下。

如果连维护者自己都要花两天才能跑起来,那新人接手的成本只会更高。这个项目的问题不在代码逻辑本身,而在工程化程度极低

我的判断

梳理完现状后,我确定了重构的优先级:先治理,再扩展。

不是急着加新功能,而是先做三件事:

  1. 统一技术栈、理清依赖——做到一键安装部署,消灭"环境地狱";
  2. 抽象协议公共类——把各协议的重复代码提炼成可复用模块,让后续接入新协议从"写一遍"变成"配一下";
  3. API 化——把模拟器从"手动操作的工具"变成"可以被自动化脚本调用的服务"。

执行过程

这次重构完整走了上面的工作流:

  1. Chat:先和 AI 讨论了整个项目的技术栈现状和可能的重构方向。AI 帮我补全了一些我不熟悉的前端框架升级路径;
  2. 文档:列出了重构目标、优先级、技术约束(服务器资源有限、不能停服太久)和验收标准;
  3. Agent:让 Agent 先读取项目、总结现有实现,然后分模块执行——后端 API 重构、前端现代化改造、依赖清理、部署脚本编写,逐个推进;
  4. Review:每个模块改完后我都会检查关键文件,尤其是协议解析相关的核心逻辑——这部分 AI 容易遗漏业务细节;
  5. Git:每完成一个模块就提交,最后整个重构过程有清晰的版本记录。

结果

维度重构前重构后
环境搭建~2 天一键 install
前端流畅度明显卡顿提升约 80%
历史 Bug长期存在修复 ~10 个
新协议接入从头开发基于公共类适配
部署方式手动多步一键打包 + 一键部署
开发周期组内预估 20-25 天约一周完成

这里最值得说的不是"快",而是为什么能快

不是 AI 替我做了所有事。而是因为我在 Chat 和文档阶段就想清楚了重构的优先级和边界,Agent 执行时不需要反复修正方向。再加上小步提交和实时 Review,返工率非常低。

AI 加速的不是编码,而是"从判断到落地"的整个链路。


四、一个框架:AI 可以介入测试研发的 5 个位置

从上面的实践中,我总结出一个通用框架。AI 在测试研发工作流中,可以在 5 个层面产生价值:

1. 理解层 — 读代码、读需求文档、读日志

接手一个陌生项目时,让 AI 先帮你读懂现有实现,比自己一行行看要快得多。但记住,它的理解需要你验证。(💡 特别提醒:作为测试开发,如果日志中包含真实生产数据,在交给云端大模型分析前务必做好数据脱敏,安全红线不能碰。

2. 生成层 — 脚本、测试用例、接口定义、文档

AI 最直观的提效点。重复性的编码工作让 AI 生成初稿,你负责审查和调整。

3. 执行层 — 自动化运行、并发策略、CI/CD 集成

当 AI 帮你生成了测试脚本,下一步是让它们自动跑起来——接入 CI/CD 流水线,提交代码就自动触发测试、自动推送结果。

4. 分析层 — 测试报告分析、失败归因、风险摘要

这是我正在探索的方向。AI 不只是帮你跑测试,还应该帮你理解测试结果——哪些失败是环境问题,哪些是真正的 Bug,风险集中在哪些模块。

5. 沉淀层 — README、项目规范、知识库、团队模板

AI 可以帮你快速生成文档的初稿,但更重要的是:这些沉淀下来的文档反过来可以让 AI 读取,形成正循环。项目规范越清晰,AI 的产出越符合预期。

真正有价值的不是一次 AI 对话,而是把 AI 放进工作流的关键节点。


结尾:回到起点

回到最开始"开盲盒"的问题。

现在回头看,从"开盲盒"到现在,中间差的不是一个更好的 AI 模型,而是一套工程化的使用方式:想清楚再动手,给明确的边界,分步执行、逐步验证,过程留痕、可以回退。

说白了,这些方法论并不新。它们就是软件工程的基本功——需求分析、方案设计、分步实现、代码审查、版本管理。

AI 改变的不是方法论本身,而是每一步的效率。但前提是,你得先有这套方法论。

有人说 AI 变化太快,学不过来就不学了,等等再说。

我的看法恰恰相反:AI 变化快,才更应该现在就开始用。 因为工具会变,但"先想清楚再动手"的习惯不会变。"人来判断、AI 来加速"的协作模式不会变。越早建立这种工作方式,后面换任何工具都能快速上手。

最好的开始时机,就是现在。


本文是"AI 质量工程"系列的第一篇。后续会分享大模型驱动 UI 自动化探索、测试资产技术债治理等更深入的实践。欢迎交流。