把功能要求写成验收项,核心是让每条要求都能被“操作—观察—判定”:谁在什么条件下做什么,系统应出现什么可观察结果,达到什么标准算通过。对已有页面或项目做改进时,先盘点现状,再把模糊描述改写成可执行、可复核的条目,最后按代价和风险决定先做哪些。
功能要求回答“要做什么”,验收项回答“做到什么程度算完成”。例如“增加在线留言”只是要求;“访客提交姓名、手机号、留言内容后,页面显示提交成功,后台列表出现该条记录,手机号格式错误时提示并阻止提交”才是验收项。后者包含输入、动作、输出和异常处理,测试人员不必再猜。
改写时可以套一个固定句式:在……条件下,当……操作时,系统应……,判定标准是……。这个句式不追求文采,只保证信息完整。
以表单为例,假设一个改进需求是“联系表单更好用”。可拆成:必填项为空时不能提交并逐项提示;手机号不符合规则时提示格式错误;提交成功后清空表单并显示成功提示;重复点击提交按钮只产生一条记录。每条都能单独测试,也能单独判断是否完成。
第一种是只写目标,如“优化表单体验”。开发快、沟通成本低,但验收时容易各说各话,返工风险高。第二种是写清操作和结果,如上面的拆分方式。前期多花时间,但测试和修改都有依据,适合已有项目的小步改进。第三种是把界面细节、字段长度、提示文案全部写死。看似最严格,但一旦业务调整就要同步改文档,维护代价高。
选择依据不是越细越好,而是看这项功能是否容易产生歧义、是否涉及数据写入、是否影响用户完成关键动作。涉及提交、支付、权限、数据删除的,应写细;纯展示文案和间距调整,可以只写范围和参考页面。
改完后做一次反向检查:只看验收项,能否在不问作者的情况下复现操作并判断通过?如果一条要求出现“等”“适当”“尽量”这类词,通常还不能验收。若两条要求互相冲突,例如一处要求提交后跳转、另一处要求原地提示,应先确定唯一结果。对于已有页面,优先把本次要改动的部分写成验收项,不必一次性重写全部历史需求。
下一步,挑一个当前最常出问题的页面功能,按上面的五要素改写成三到五条验收项,再拿给实际使用或测试的人试判一次;如果对方能独立判断通过与否,这套写法就可以继续用在其他改进项上。