模块 6 · 第 2

验收的手艺:在看起来完美的外表下认出隐藏的隐患

是什么

AI 交付的成果往往外表光鲜——页面漂亮、功能能用、代码能跑。但"看起来没问题"和"真的没问题"之间可能隔着巨大的鸿沟。验收的手艺,就是学会不被表面的完美所迷惑,用正确的方法去探查那些藏在深处的隐患。

解决什么问题

如果只凭直觉判断"看起来不错就行了",你就会放过那些 AI 埋下的隐患——安全漏洞、边界情况的崩溃、不合理的架构选择——直到它们在最不合时宜的时刻暴露出来。

AI 的产出为什么总是"看起来不错"

AI 有一个特点:它交付的成果几乎总是看起来很好。

页面布局工整、代码风格统一、功能在正常操作下流畅运行。如果你只是快速地点几下、看一看,你很可能得出"不错,可以了"的结论。

但这种"看起来不错"是有欺骗性的。AI 非常擅长处理典型场景——那些它在训练数据中见过无数次的"好天气"情况。然而,现实世界不总是好天气。用户会做出你意想不到的操作,网络会在关键时刻断开,数据量会在某一天突然暴增。

AI 不是故意隐瞒问题——它可能根本没有考虑到那些场景。而你,如果只测试了"好天气"路线,就等于替它做了担保,担保那些从未被检验过的角落也是安全的。

"豆腐渣工程"的体征

在建筑行业,有经验的监理能通过一些细微的迹象判断出一栋楼的建造质量——墙面是否有不正常的裂缝、承重结构是否符合设计、管线是否按规范铺设。

在软件中也有类似的"豆腐渣"体征。你不需要是专业程序员也能学会辨认它们:

功能只在最理想的条件下正常工作。 比如表单在正确填写时能提交,但什么都不填就点提交会导致页面崩溃。

错误被静默吞掉。 操作失败了,但页面上什么提示都没有,用户不知道发生了什么。数据可能已经丢失了,但没人知道。

同一个逻辑被复制粘贴到多个地方。 改了一处但忘了改其他地方,导致行为不一致。

代码越来越长,但功能并没有明显增加。 这通常意味着堆叠了大量的补丁和绕过,而不是解决了根本问题。

硬编码的数值散落各处。 比如把"10"直接写在代码里,但没人记得这个"10"代表什么、为什么是 10。

这些体征不一定每个都致命,但它们的积累意味着项目的地基并不像外表看起来那么牢固。

验收不是随便点点

很多人的"验收"过程是这样的:打开页面,看看能不能显示,点几个按钮,确认没有报错,然后就觉得"可以了"。

这不是验收,这是参观。

真正的验收需要你刻意去寻找问题,而不是确认一切正常。一个好的验收过程至少包含三个层面:

正常路径

这是最基本的:按照预期的方式使用功能,确认它能正常工作。大多数人做到了这一步。

边缘路径

刻意去尝试那些不寻常的操作:

  • 什么都不输入就提交表单会怎样?
  • 输入一段非常长的文字会怎样?
  • 快速连续点击同一个按钮会怎样?
  • 在页面还没加载完时就进行操作会怎样?
  • 在手机上而不是电脑上使用会怎样?

这些场景是 AI 最容易忽略的,也是真实用户最经常触发的。

恶意路径

如果你的应用面向公共用户,还需要考虑有人会故意尝试破坏它:

  • 在输入框中输入特殊字符或代码片段会怎样?
  • 未登录的用户能否访问需要登录才能看到的页面?
  • 能否通过修改网址来访问其他用户的数据?

你不需要成为安全专家,但知道这些可能性的存在,就能让你在验收时多问几个正确的问题。

让 AI 自陈薄弱点

一个非常有效但很多人不知道的技巧:直接问 AI 它自己方案的弱点。

"你刚才给的这个方案,最可能出问题的地方在哪里?" "这段代码有没有边界情况是你没有处理的?" "如果一个不怀好意的用户使用这个功能,他能利用什么漏洞?"

AI 不会主动告诉你这些——不是因为它想隐瞒,而是因为你没问。但当你问的时候,它往往能给出非常有价值的自我审查。

这就是验收手艺的核心:不是等问题来找你,而是主动去找问题。 你找到的每一个隐患,都是一个被提前拆除的定时炸弹。

指挥与验收

一边讲怎么让 AI 帮你做,一边讲怎么看出 AI 做砸了。

指挥怎么让 AI 帮你做

指挥

不要只测试"正常路径"。在验收时刻意尝试那些不寻常的操作——输入为空、输入超长、快速连续点击、断网状态下操作——这些边缘场景是隐患最喜欢藏身的地方。同时要求 AI 主动列出它认为当前方案的薄弱环节。

连接到