Clipping 微信公众号

PRD怎么写,vibe coding能够减少50%以上的测试时间?

by gnash 原文 ↗
Created: 2026-05-16

公众号名称:gnash的AI实验室

作者名称:gnash

发布时间:2026-04-23 09:54

上周我看一份 PRD (产品需求文档),看到第 27 页的时候,有点坐不住。

不是它写得差。

恰恰相反,它很完整。背景、目标、页面、字段、流程,全都有。看起来像一份标准答案。

但我脑子里一直冒出一个问题:

这东西给 AI (人工智能)去开发,真的能少返工吗?

答案挺刺耳。

不能。

因为它写清楚了“产品长什么样”,但没写清楚“开发怎么判断做完了”。更麻烦的是,它也没写清楚“测试应该怎么证明没做偏”。

这就是现在很多人做 vibe coding (氛围编程)最容易踩的坑:以为把需求丢给 AI ,开发速度就会飞起来。结果代码是快了,测试却变成补锅现场。

你改一个页面,另一个入口坏了。

你修一个字段,三条边界路径崩了。

你让 AI 生成测试,它倒是生成了,问题是测的东西和真实需求隔着一层雾。

很烦。

测试时间为什么会被 PRD 吃掉?

我以前也以为,测试慢是因为测试用例写得晚。

后来发现,不对。

测试慢,很多时候是因为 PRD (产品需求文档)写得太“像文档”,不像“可执行约束”。

传统 PRD 经常写这些:

•​用户可以创建任务

•​支持编辑和删除

•​系统自动评分

•​展示统计结果

看着没问题。

但测试同学打开以后,心里会冒出一串问号:

•​创建任务要校验哪些字段?

•​删除后关联数据怎么办?

•​自动评分失败算失败,还是进入待处理?

•​统计结果按实时算,还是按缓存算?

•​用户没权限时,提示什么?

这些问题没有提前写,测试阶段就会变成大型问答节目。

PM (产品经理)补一句,研发改一版,测试重测一轮。来回三次,一下午没了。

所以我越来越觉得, vibe coding (氛围编程)真正节省测试时间的地方,不是“AI 帮你写测试”。

而是:PRD 写作阶段就把测试问题提前暴露出来

这才是那个 50% 的来源。

不是少测一半。

是少掉一半“测了才发现需求没说清”的时间。

一份适合 vibe coding 的 PRD ,必须拆成两层

如果只写一份巨大的 PRD (产品需求文档), AI 会很难受。

人也难受。

我的建议是拆成两层:一层是总体介绍,一层是单个 US (用户故事)。

总体介绍文档不负责展开所有细节,它负责当“地图”。里面要有产品背景、目标用户、业务闭环、功能地图、页面地图、 US (用户故事)索引、术语编号、非功能需求总则。

这件事有点像装修前先看户型图。

你得知道厨房在哪,水电从哪走,承重墙不能动。别一上来就讨论某个抽屉拉手用什么颜色。

单个 US (用户故事)文档才是施工单。

它要写清楚:

•​作为谁,我希望做什么,以便得到什么收益

•​前置条件是什么

•​业务规则是什么

•​字段类型、必填、约束是什么

•​状态怎么变化

•​页面线框怎么长

•​正常路径怎么验收

•​边界路径怎么验收

•​哪些明确不做

注意那个“不做”。

很多 AI 项目返工,坏就坏在这里。你没告诉 AI 不做什么,它就会热心过头,顺手给你加一堆“看起来很聪明”的功能。

整挺好。

但上线前全是债。

50%的测试时间,是从 US 文档里省出来的

我说一个很具体的写法。

每个 US (用户故事)都必须有两张表:正常路径验收标准、边界路径验收标准。

正常路径写什么?

写用户在满足前置条件时,做了某个动作,系统必须给出什么结果。

比如:

Given (给定)When (当)Then (那么)
教师已登录,班级存在发布包含 10 道题的任务系统创建任务并进入待作答状态
学生已收到任务提交全部答案系统保存答题记录并触发评分

边界路径写什么?

写那些最容易让系统发疯的情况。

比如:

Given (给定)When (当)Then (那么)
任务已发布教师尝试删除任务系统禁止删除,并提示先归档
评分服务超时学生提交答案系统保留提交记录,状态进入待评分

这两张表一写,测试时间会立刻变短。

为什么?

因为测试不用再猜 PM 想测什么,研发也不用猜 AI 生成的实现算不算对。每个 US (用户故事)从一开始就是一个可开发、可测试、可回归的小闭环。

我甚至会更狠一点:没有验收标准的 US (用户故事),不允许进入开发。

听起来官僚。

实际省命。

Agent 产品更要写“判断”,不然测试会爆炸

如果你做的是普通 CRUD (增删改查)产品, PRD 写字段和流程还勉强能撑住。

但如果你做 Agent (智能体)产品,只写页面就完了。

Agent (智能体)真正难测的不是按钮。

是判断。

用户说“帮我整理一下会议纪要”,系统到底要生成摘要,提取待办,还是写成汇报材料?什么时候要追问?什么时候可以直接执行?什么时候必须停下来让用户确认?

这些不写,测试阶段会变成玄学。

同一条输入,今天算通过,明天又说不符合预期。

AI (人工智能)最怕这种湿漉漉的需求,抓不住,拧不干。

所以 Agent PRD (智能体产品需求文档)要额外写三块:

•​意图空间:用户可能真正想完成什么

•​工具调用规则:在什么条件下调用搜索、知识库、日历、工单系统

•​边界条件:信息不足、工具失败、高风险动作、多解冲突时怎么停

这三块不是高级配置。

它们就是测试用例的来源。

比如“创建任务”这种高风险动作, PRD 里必须写:责任人和截止时间不明确时,只能生成草稿,不能自动提交。那测试就很清楚:构造一个缺责任人的输入,看系统有没有停下来。

这比上线后用户来骂强多了。

vibe coding 的正确节奏:不是一口气生成全项目

我见过最糟糕的 vibe coding (氛围编程)姿势,是把一份大 PRD (产品需求文档)丢给 AI ,然后说:

“帮我实现整个系统。”

这不是提效。

这是开盲盒。

更稳的节奏应该是:

1.​写总体 PRD (产品需求文档),锁定业务闭环、角色、功能地图、页面地图。

2.​拆成 US (用户故事),每个 US 只处理一个最小业务闭环。

3.​给出 US (用户故事)构建顺序,遵守“先生产数据,再消费数据”。

4.​为每个 US (用户故事)写验收标准和边界路径。

5.​让 AI (人工智能)按单个 US 开发。

6.​每个 US 完成后,产出测试验收报告和独立检查报告。

7.​通过后再进入下一个 US 。

这套流程看着慢,其实快。

因为 AI 不再需要在一堆上下文里猜你的意图。它只要完成一个小闭环,然后用测试报告证明自己没跑偏。

这里有个关键原则:先做生产数据的 US (用户故事),再做消费数据的 US 。

比如先有学校、年级、班级、学生,后面才能发任务;先有任务和答题记录,后面才能做监控统计。你要是先做统计页,只能接假数据,后面每个底层能力一变,统计页都要返工。

这不是 AI 的错。

是施工顺序错了。

真正减少测试时间的,是“证据链”

我现在会要求每个 US (用户故事)带证据来源。

证据可以来自 PRD (产品需求文档)章节、用户调研、业务规则、接口文档、历史问题。格式不复杂,一张表就行:

证据编号来源文档原文摘要支撑内容
E-001PRD 第 3 章教师可向班级发布任务支撑任务发布入口
E-002业务规则已发布任务不可删除支撑删除边界

这张表有什么用?

它让测试和检查不再靠感觉。

AI (人工智能)做出来以后,检查报告可以直接问:这个功能是否覆盖了 E-001 ?有没有违反 E-002 ?如果没有证据,先别加功能;如果证据冲突,先回到文档修正。

这会显得有点冷。

但项目到了后半段,你会感谢它。因为每次回归都能追到源头,而不是靠群聊里那句“我记得当时好像说过”。

那句话太贵了。

如果你只记一件事: PRD 要写到测试能直接接手

所以, PRD (产品需求文档)怎么写,才能让 vibe coding (氛围编程)减少 50% 以上测试时间?

我的答案就一句:

把 PRD 写到测试能直接接手,而不是写到研发大概看懂

研发大概看懂,只能开始写代码。

测试能直接接手,才说明边界、状态、验收、范围、证据都已经被压实。

从这个角度看, PRD 不是文档。

PRD 是 AI 开发的轨道,也是测试回归的地图。

你轨道铺得直, AI 跑得快;地图画得清,测试走得少。

我不敢保证每个项目都能稳定省 50%。这个数字要看需求复杂度、团队习惯、 AI 工具能力。

但我敢说,如果你现在的测试时间大量花在“需求没说清、边界没写、返工重测”上,那把 PRD 拆成总体介绍 + 单个 US (用户故事) + 验收标准 + 证据链,省掉一半无效测试时间,并不夸张。

可能还不止。

就看你愿不愿意把文档写到那一步。


cover_image

gnash gnash的AI实验室


内容效果不满意?点此反馈

输入关键词开始搜索