把功能要求写成验收项,核心是让每条要求都能被第三方按固定步骤操作,并得到“通过”或“不通过”的明确结论。做法是:先写清触发条件,再写操作路径,然后写预期结果,最后写判定标准。假设你正在改版一个岳阳本地服务类网站,原有页面已经上线,现在要加入“在线预约”功能,下面用这个假设例子说明具体写法。
模糊要求通常写成“用户可以方便地预约”。这句话无法验收,因为“方便”没有判定标准。改成四段式后可以写成:
这样写的好处是,测试人员不需要猜测意图,开发人员也知道边界在哪里。验收项不是需求描述,而是需求的可观测切片。
一个功能要求往往涉及多个层面,只写“能提交”会漏掉很多问题。建议按以下维度逐条拆分:
这些维度不需要一次写全,但每一条都要能回答“怎么操作、看到什么、算不算通过”。如果某条要求暂时无法判定,就把它标为待确认,而不是写成模糊的“体验良好”。
“使用AJAX提交表单”是技术实现,不是验收项。验收项应该描述用户可观察的结果,例如“点击提交后页面不整体刷新,按钮进入禁用状态,2秒内出现结果提示”。技术实现可以写在开发说明里,但验收时只认外部表现。
另一个常见错误是验收项之间互相依赖却没有说明顺序。例如“提交后发送短信通知”依赖短信通道可用,如果通道故障,验收就会卡住。这时应把验收项拆成两条:一条验证表单提交与记录生成,另一条验证通知任务被触发。前者不依赖外部通道,后者可以单独标记为受外部条件影响。
还有一种错误是只写“通过”不写“不通过”。验收项必须同时定义失败表现。例如“手机号格式错误时,输入框下方显示红色提示文字,且提交按钮不可点击”,这样失败时才有明确的修复目标。
已有页面或项目做改进,最怕新功能和旧逻辑冲突。可以按以下步骤执行:
假设原有页面已经有一个“联系我们”表单,现在要增加预约字段。验收时不能只测新字段,还要确认旧字段仍然可用、旧提交逻辑没有被破坏。这类回归检查项应和新增验收项写在一起,避免改完新功能弄坏旧功能。
写完一条验收项后,问自己三个问题:第一,一个不了解项目的人能否按步骤操作?第二,操作后能否得到唯一的通过或不通过结论?第三,如果结论是不通过,能否指出具体哪一步不符合预期?三个问题都能回答“是”,这条验收项才算合格。
如果答案是否定的,通常是因为缺少判定标准或操作路径不完整。回到四段式补全即可。验收项不需要写得漂亮,但必须写得可执行、可复现、可判定。
下一步,挑出你当前项目中最模糊的一条功能要求,按触发条件、操作路径、预期结果、判定标准四段改写,然后交给一位不参与开发的同事试读,看他能否独立判断通过与否。