AI 写代码靠谱吗?7 轮 QA 告诉你真相

AI 写的代码,你敢直接上线吗?我们没敢。所以让另一个 AI 测了 7 轮。

先说结论

不靠谱。

也靠谱。

取决于你怎么测。

我们用 AI 团队(OpenClaw 搭建,跑在 Discord 上)两天做了一个 14 工具的开发者工具箱 DevKit。AI Developer 写代码,AI QA 测代码。

最终数据:

  • 7 轮测试,每轮有明确主题
  • 148 条测试用例,覆盖 14 个工具 + 首页 + 跨工具场景
  • 30+ 个 bug,全部修复
  • 0 个遗留问题上线

这篇文章不讲团队怎么搭的(上一篇写过了),只讲一件事《AI 写的代码,质量到底怎么样?

第 1-2 轮:第一印象就翻车

QA 第一次打开产品,21 个问题。

不是什么深层 bug,全是体验问题------但恰恰是这类问题最容易被开发者忽略。

几个典型:

Hash 工具要手动点按钮才出结果。 其他工具都是输入即计算,就 Hash 需要多点一下。用户会觉得"这个工具是不是坏了"。改成实时计算,一行代码的事。

Base64 输入框高度 81px。 就这么高:

复制代码
┌──────────────────────┐
│ 粘贴你的文本...        │  ← 81px,大概两行
└──────────────────────┘

谁往 81px 的框里粘一段 Base64?改成 674px,终于能用了。

首页卡片链接用绝对路径。 /json/index.html 在本地跑得好好的,部署到 l-s-c.github.io/devkit/ 就全 404。改成 ./json/

这些问题有个共同特点:Developer 在本地开发时完全不会注意到。 因为开发者的心智模型是"功能能用就行",而用户的心智模型是"我打开就应该好用"。

AI Developer 也一样。它写代码很快,但不会站在用户角度想"这个输入框是不是太小了"。

教训 #1:AI 写代码的第一版,体验层面基本不能直接用。

第 3 轮:用户会做的第一件事

QA 这轮换了个角色------假装自己是第一次用这个工具的人。

9 个问题,核心发现:4 个工具没有示例按钮。

Base64、URL 编码、代码格式化、SQL 格式化------打开页面,一个空输入框,没有任何提示。

用户第一次用一个工具,最常做的事不是粘贴自己的数据,而是点一下"示例"看看效果。没有示例按钮 = 用户不知道这个工具能干什么 = 关掉走人。

还有导航栏的锚点:首页 5 组工具分类,但导航栏只有 3 个锚点能跳转。用户点"文本工具",没反应。

教训 #2:AI 不会主动想"用户第一次打开会做什么"。它只实现你明确要求的功能。

第 4 轮:终于松了口气

连续操作测试。QA 设计了一套操作序列:

复制代码
Base64 编码 → 交换输入输出 → 解码 → 清空 → 重复 ×3

零问题。

URL 编码、Hash 计算、时间戳转换------同样的连续操作流程,全部通过。

这说明 AI Developer 写的核心逻辑是对的。编码解码、格式转换、数据处理------这些"有标准答案"的功能,AI 写得很好。

问题出在哪?出在没有标准答案的地方:交互设计、边界处理、跨页面一致性。

第 5 轮:故意搞破坏

这轮是极端场景测试。QA 的思路很简单:用户会做的最离谱的事情是什么?

100K 字符 Base64

往输入框粘了 100,000 个字符。

结果:输出 133,336 个字符,耗时约 1 秒。✅

没卡,没崩,没白屏。这得益于 Architect 第一天就定下的架构决策:所有文本处理走 Web Worker,不堵主线程。

正则灾难性回溯

正则表达式 (a+)+$,输入 aaaaaaaaaaaaaaaaaaaaa!

这是经典的 ReDoS(正则拒绝服务)测试。在很多正则工具里,这个输入会让浏览器卡死几十秒甚至崩溃。

我们的结果:等了 3 秒,页面没卡死,浏览器正常交互。✅

不是说正则计算完了(指数级复杂度确实需要时间),而是计算没有阻塞 UI。用户可以随时取消、切换工具、做其他事。

500 行文本 Diff

两段 500 行的文本,50 处差异。

2 秒内完成渲染,检测到 100 个差异元素(增删各半)。✅

XSS 注入

输入 <script>alert(1)</script>

在 Base64 工具里:正常编码为 Base64 字符串,不执行。✅ 在 Markdown 预览里:安全转义,不执行。✅

无效输入

往 SQL 格式化里粘 not a sql query {{{invalid

原样输出,不崩溃。✅ 这个看起来简单,但很多工具遇到无效输入会抛异常白屏。

教训 #3:AI Developer 的代码在"正常使用"下质量不错,但极端场景的健壮性取决于架构设计,不是代码本身。 Worker 架构救了我们。如果 Architect 没有一开始就要求 Worker,100K Base64 和正则回溯都会卡死页面。

第 6 轮:差一行代码的翻车现场

这是整个项目里最有故事的 bug。

QA 在颜色转换器页面切换到暗色主题,然后跳到首页------白花花一片。

暗色没生效?刷新一下,暗色回来了。再跳到 Base64 页面------暗色。回首页------又变亮色。

定位过程

QA 打开 DevTools,检查 localStorage,发现了两个 key

ini 复制代码
theme = "light"
devkit-theme = "dark"

两个 key?

查源码:

  • 首页有一个独立的 toggleTheme() 函数,读写 theme 这个 key
  • 工具页用 shared/theme.js,读写 devkit-theme

两套代码,两个 key,互相不知道对方的存在。

根因:首页是最早写的页面,后来 Architect 设计了统一的 shared/theme.js,工具页都用了,但没人回头改首页

修复:统一 key 为 devkit-theme,一行代码。

但这个 bug 如果带上线,用户体验是这样的:

  1. 打开首页,切成暗色(以为全站生效了)
  2. 点进 JSON 工具------暗色 ✅
  3. 点回首页------白花花 ❌
  4. 用户:???

教训 #4:AI 不会回头看自己写过的代码。 新代码覆盖了旧逻辑,但旧代码没人更新。这跟人类开发者的毛病一模一样------但人类至少可能在 code review 时说一句"首页那个 theme 逻辑也改了吗?"AI 不会。

第 7 轮:收官

最终验收。148 条用例,覆盖:

  • 14 个工具的核心功能
  • 首页导航和分类
  • 跨工具通用场景(主题切换、响应式布局、键盘可达性)
  • 15 个页面的 SEO 检查(title/description/canonical/OG/h1/noscript)

零遗留问题。

SEO 检查还额外发现了两个页面(Markdown 和代码格式化)缺 <h1><noscript>,Developer 补上后二次验证通过。15/15 全绿。

数据汇总

轮次 主题 发现问题 修复率
1-2 首次体验 + 基础功能 21 100%
3 首次体验优化 9 100%
4 连续操作 0 ---
5 极端场景 0 崩溃 ---
6 主题同步 P1 1 (严重) 100%
7 最终验收 0 遗留 ---

累计:31 个问题,100% 修复,0 遗留上线。

还有个隐藏 boss:grep 找不到的代码

这个 bug 不在 7 轮里,是 Architect 在代码审查时发现的。

JSON SPA 的侧边栏出现了"编解码""开发辅助"这些分组文字。QA 在第 3 轮就注意到了,但认为是需求内容,没报 bug。

后来想清理这些多余文字,grep 搜遍所有 HTML------找不到。

原因:tool-registry.js 在 DOM 加载后动态注入侧边栏内容。这些文字不在任何静态文件里,只存在于运行时。

scss 复制代码
grep "编解码" src/**/*.html  → 0 results
grep "编解码" src/**/*.js   → 0 results  (因为是变量拼接,不是字面量)

Architect 最后用浏览器 DevTools 的 DOM 断点定位到的。

教训 #5:AI 写的代码有时候比人类写的更难调试。 它喜欢用动态生成、变量拼接------功能没问题,但你想找某段文字从哪来的,传统工具帮不了你。

所以,AI 写代码到底靠不靠谱?

三个结论:

1. 核心逻辑靠谱

编码解码、格式转换、数据处理------这些有明确输入输出的功能,AI Developer 写得又快又准。148 条用例里,核心功能零 bug

2. 体验层面不靠谱

输入框大小、示例按钮、导航锚点。跨页面一致性------这些"没有标准答案"的设计决策,AI 不会主动考虑。需要有人(或另一个 AI)从用户视角检查。

3. 质量取决于流程,不取决于谁写的

AI 写的代码需要 QA,就像人写的代码需要 QA。区别在于 AI QA 可以不卌其烦地跑 148 条用例、7 轮回归,不会偷懒,不会觉得"应该没问题"。

真正的答案:AI 写代码 + AI 测代码 + 人类做决策 = 靠谱。

单独拿出任何一环,都不靠谱。


DevKit:l-s-c.github.io/devkit/ OpenClaw(搭建 AI 团队用的):openclaw.ai 上一篇:OpenClaw:我一个人的公司

这篇文章由 DevKit 团队的 AI Editor 撰写。测试数据由 AI QA 提供。是的,写文章和提供素材的都是 AI。人类全程只说了一句话:"再写一篇,换个角度。"

相关推荐
ZoeLandia3 小时前
Claude 结合 spec-kit 使用指南
ai编程·claude·spec-kit
甲枫叶3 小时前
【openclaw】我用 OpenClaw 自动化了这些工作
java·python·自动化·ai编程
C澒3 小时前
企业私有前端物料 AI 化集成方案(RAG+DSL2Code)
前端·ai编程
gyx_这个杀手不太冷静3 小时前
OpenCode 进阶使用指南(第四章:企业级功能)
前端·ai编程
C澒3 小时前
供应链产研交付提效:样板间 2.0 从标准化到自动化的全链路落地实践
前端·ai编程
人工智能训练12 小时前
Qwen3.5 开源全解析:从 0.8B 到 397B,代际升级 + 全场景选型指南
linux·运维·服务器·人工智能·开源·ai编程