把功能要求写成验收项,核心是让每条要求都能被“做没做、做到什么程度”直接判断。做法是先把模糊功能拆成可观察的动作或结果,再补上输入、预期输出和判断标准。例如“要有搜索功能”不合格;“首页顶部搜索框输入不存在的词,页面显示‘无结果’且不报错”才算验收项。时间和人手有限时,优先把影响上线和返工成本最高的功能写成验收项。
功能要求回答“要做什么”,验收项回答“做到什么算完成”。两者不能混在一起,否则开发说做完了,你却无法判断是否真的可用。
当一句话里出现“友好”“流畅”“合理”“尽量”这类词,它通常还不是验收项。你需要把它换成可观察的动作、页面状态或数据结果。
每条验收项至少包含四部分:操作入口、输入条件、预期结果、判断方式。按这个顺序写,读者和执行者都能看懂。
假设一个联系表单,功能要求写“表单要能提交”。验收项可以写成:在联系页填写姓名、邮箱和留言,点击提交后页面显示“提交成功”,后台能查到这条记录;邮箱格式错误时,提交被阻止并提示“邮箱格式不正确”。例子只用于说明写法,不代表任何具体项目的真实结果。
时间和人手有限时,不要平均用力。先写那些一旦出错就会导致上线失败、数据丢失或大量返工的功能。
判断依据是“失败代价”而不是“开发难度”。一个按钮颜色错了可以上线后改,但订单金额算错、用户看不到自己的数据,代价高得多。把高优先项先写成验收项,再决定是否继续补低优先项。
验收项写完,逐条问自己下面几个问题,任意一项答不上来就说明还需要改。
如果一条验收项需要争论“这算不算通过”,它就不够具体。把它拆成两条,或者补上判断标准。
不要一开始就写几十条。先选一个最关键的主流程,比如“用户提交联系表单”,把它写成三到五条验收项,覆盖正常提交、必填缺失、格式错误和重复提交。跑通这个流程后,再按同样方法处理下一个功能。这样每一步都能实际执行,也不会因为一次写太多而卡住。
下一步:打开你正在做的网站,挑出最影响上线的那个功能,按“操作入口、输入条件、预期结果、判断方式”写成一条验收项,再补上异常情况。