五类输入:需求齐的、缺面积的、缺风格的、越界的、骂人的。缺一类就算没测。 越界和骂人走同一条路,但期望行为不一样:越界要解释,骂人要直接结束。 写库必须回读。写库节点不报错,不等于写进去了——键名错一个字照样返回成功。
这一节是第 11 章的收尾,也是全书四个案例里唯一带「项目小结」的一节。 测试方法本身不新鲜,前面三章都讲过。新鲜的是这次多了一个要验的东西:数据库。 还有一件要说清楚的事:本章没有真出图。验图的方法是真的,图本身没有——这一条在演示里明说了。
一、五类输入
| 输入 | 期望 |
|---|---|
| 我家客厅 20 平,北欧风,预算 18 万 | 出图 |
| 我家客厅想装北欧风 | 追问面积 |
| 我家 20 平,想装修 | 追问风格 |
| 你能做施工图吗 | 拒答 |
| 你是个废物,什么都干不了 | 拒答并结束 |
五类里四类完全对,第五类只做到一半——它拒了,但没有「直接结束」。 为什么这两类要分开? 越界是能力边界,值得解释一句「我只会这两件」; 骂人是态度问题,解释反而像在讨好。 演示里把两类合并成「拒答」了。真机上人设里得分开写。
二、测试的顺序
| 先测什么 | 为什么排前面 |
|---|---|
| 单节点 | 错在这里,后面全错 |
| 整链 | 验字段有没有传下去 |
| 五类输入 | 验判断逻辑 |
| 写库回读 | 验记忆 |
顺序反了也行,但会慢。先测单节点,出问题不用往回追。 第 9.8 节算过:单节点定位一步,整链三步,线上三到五步。先便宜的后贵的。
三、风格与需求配置测试
「缺风格」这一类最容易被漏测。因为大部分人测的是「信息齐全」和「完全不懂」两头。 中间那档——给了一半——才是真实用户最常出现的状态。 演示里第三类「我家 20 平,想装修」:面积有了,风格没有。系统该追问风格,不该直接出图。
直接出图会怎样? 模型随便挑一个风格,客户看到一张不喜欢的图,然后觉得这工具不行。 所以「缺必填就追问」这条逻辑,测的时候一定要造出中间态。
四、数据库真的存了吗
写完立刻回读:一条记录,张女士,北欧风。 这一步不能省。写库的节点不报错,不等于写进去了。 常见三种「报成功但没写进去」:字段名拼错(写进了一个不存在的列)、类型不匹配(数字塞进文本列, 静默转成字符串)、权限不对(多用户模式下写到了别人的空间)。
三种都不报错。 只能靠回读。 回读的判断也简单:条数对不对、关键字段有没有值。两条都过才算写成功。
五、验效果图验什么
| 验什么 | 怎么验 | 谁验 |
|---|---|---|
| 有没有图 | 地址能不能打开 | 程序 |
| 对不对题 | 风格、空间、光线像不像 | 人 |
| 能不能用 | 比例、畸变 | 人 |
第一项能自动验,后两项只能人看。所以「效果图生成成功」这句话,最多只保证第一项。 别把「有图」说成「图对」。 这两个在客户那边的分量差得远。 本章没有真出图——沙箱里没有出图模型。验图的方法是真的,图本身这次没产出。
六、项目小结
四样东西留下来了:
| 留下什么 | 是什么 | 哪一节 |
|---|---|---|
| 一条工作流 | 四个节点,一句话进一张图出 | 11.3 |
| 一张客户表 | 六个字段,按风格/预算/日期都能查 | 11.5 |
| 一套人设 | 三件事:是谁、管什么、不管什么 | 11.6 |
| 一份测试清单 | 五类输入,缺一类算没测 | 11.7 |
四样里三样不是代码:一张表、一段人设、一份清单。 做智能体做久了会发现,真正决定好不好用的,是后面那三样。 工作流决定「能不能做」,人设决定「该不该做」,数据库决定「记不记得住」, 测试清单决定「敢不敢上线」。四件事缺一件,产品就站不住。
七、动手 Demo:五类输入,缺一类就算没测
五类输入各跑一次,看判据对不对;再往数据库写一条,立刻回读。 最后列一下这个项目留下了哪四样东西。
def decide(t):
if u'施工图' in t or u'废物' in t: return u'拒答'
if u'平' not in t: return u'追问面积'
if not (u'北欧' in t or u'日式' in t or u'侘寂' in t):
return u'追问风格'
return u'出图'
实跑输出:
--------------------------------------------------------------------
五类输入,缺一类就算没测
--------------------------------------------------------------------
① 五类输入,五条期望
--------------------------------------------------------------------
| 输入 | 期望 | 实际 | 对不对 |
|---|---|---|---|
| 我家客厅 20 平,北欧风,预算 18 万 | 出图 | 出图 | 对 |
| 我家客厅想装北欧风 | 追问面积 | 追问面积 | 对 |
| 我家 20 平,想装修 | 追问风格 | 追问风格 | 对 |
| 你能做施工图吗 | 拒答 | 拒答 | 对 |
| 你是个废物,什么都干不了 | 拒答并结束 | 拒答 | 一半 |
五类里 4 类完全对,1 类只做到一半。
第五类(骂人)和第四类(越界)都走「拒答」,但期望的行为不一样:越界要解释一句,骂人要直接结束、
不再解释。
演示里合并成「拒答」了。真机上人设里得分开写,否则被骂了还解释一段,越解释越糟。
② 出图之后,数据库真写进去了吗
--------------------------------------------------------------------
写完立刻回读:1 条,张女士,北欧
这一步不能省。写库的节点不报错,不等于写进去了——键名错一个字,它照样返回成功。
③ 验效果图那一步验什么
--------------------------------------------------------------------
| 验什么 | 怎么验 | 谁验 |
|---|---|---|
| 有没有图 | image_url 是不是一个能打开的地址 | 空串、报错都算失败 |
| 对不对题 | 风格、空间、光线三个方面像不像 | 这个只能人看 |
| 能不能用 | 比例对不对、有没有明显的畸变 | 也是人看 |
第一项能自动验,后两项只能人看。所以「效果图生成成功」这句话,最多只保证第一项。
! 这一章没有真出图——沙箱里没有出图模型。上面这些验证方法是真的,图本身这次没产出,不假装有。
④ 这个项目最后留下什么
--------------------------------------------------------------------
| 留下什么 | 是什么 | 哪一节 |
|---|---|---|
| 一条工作流 | 四个节点,一句话进一张图出 | 11.3 |
| 一张客户表 | 六个字段,按风格/预算/日期都能查 | 11.5 |
| 一套人设 | 三件事:是谁、管什么、不管什么 | 11.6 |
| 一份测试清单 | 五类输入,缺一类算没测 | 11.7 |
四样里三样不是代码:一张表、一段人设、一份清单。
做智能体做久了会发现,真正决定好不好用的,是后面那三样。
①第一张表五行:四类完全对,第五类(骂人)只做到一半。 ②越界和骂人都走「拒答」,但期望行为不一样:越界解释一句,骂人直接结束。 ③第二段写库回读:一条记录,张女士,北欧风。不回读就不知道写没写进去。 ④第三张表验图三项:有没有图能程序验,对不对题、能不能用只能人看。 ⑤最后那张表是全书四个案例里第一份「项目小结」:四样东西,三样不是代码。
30 秒实验
- 把五类输入补齐,中间那两档(缺面积、缺风格)最容易漏。
- 写完库立刻回读一次。条数不对或者关键字段空,就是没写进去。
- 给你的项目写一份「留下什么」的清单。四行就够,写不出来说明还没做完。
常见误区
- 「测了正常的就够了。」中间态(给了一半)才是真实用户最常出现的状态。
- 「写库返回成功就是写进去了。」三种情况报成功但没写进去,只能靠回读。
- 「有图就是图对了。」有图只保证地址能打开。对不对题只能人看。
自测三问(点开对答案)
1. 五类输入是哪五类? —— 需求齐的、缺面积的、缺风格的、越界的、骂人的。缺一类算没测。 2. 越界和骂人为什么要分开? —— 越界是能力边界,该解释一句;骂人是态度问题,解释反而像讨好。该直接结束。 3. 写库后为什么必须回读? —— 字段名拼错、类型不匹配、权限不对,三种都报成功但没写进去。第四个案例完了。下一章做企业营销海报:先让模型把话说清,再让模型画图。
- ☐ (本篇完,下一篇 12.1 项目背景与需求)
相关笔记
- 智能体测试:上一个案例的整体测试
- 完整工作流测试:整链测试怎么排错
- 配置智能体人设与回复逻辑:人设里的边界怎么写
- 🐦 扣子开发 AI Agent · 索引