把功能要求写成验收项,核心做法是:每一条需求都写成“谁在什么条件下做什么操作,系统应出现什么可观察结果”,并让这个结果能被第三方在不看代码的情况下判断通过或不通过。做不到这一点的句子,就还是需求描述,不是验收项。对于衡阳网站制作这类项目,客户方往往用“能留言”“能搜索”“后台好管理”来表达功能,这些词本身无法验收,必须先拆成操作、数据和显示三层。
需求句回答“要有什么”,验收句回答“怎么算做到了”。举例来说,“网站要有在线留言功能”是需求句;“访客填写姓名和手机号后点击提交,页面显示提交成功,后台留言列表在刷新后出现该条记录,且手机号为空时提交被拒绝并提示”才是验收项。后者包含操作路径、输入条件、预期反馈和异常分支,任何一条缺失,验收时就会变成口头争论。
判断一句话够不够格做验收项,可以问三个问题:操作者是谁,前置条件是什么,结果在哪里看到。三个问题有一个答不上来,就说明还需要继续拆。
可以直接套用一个句式:作为[角色],在[前提条件]下,执行[操作],系统应[可观察结果],当[异常条件]时,应[异常结果]。这个句式不追求文采,追求的是没有歧义。下面用几个衡阳网站制作中常见的功能做示范,例子均为假设,不是真实项目成果。
每条都包含正常路径和至少一个异常路径。异常路径是验收时最容易被漏掉、也最容易在上线后暴露问题的部分。
不是所有要求都值得写成同等严格的验收项。可以按代价和风险分三档:
分级的意义在于把有限的验收时间放在高风险项上。全部按最高标准验收,往往导致真正重要的项被草草带过。
同一套功能在不同环境下的表现可能不同,所以验收项里要写清在哪个地址、用哪个浏览器或设备、以哪个账号身份操作。至少约定三项:验收使用的域名或测试环境、浏览器及版本范围、使用的账号角色。判断口径也要提前统一,比如“页面显示正常”应改为“在常见桌面宽度下无横向滚动条,主要按钮可见且可点击”。
如果对方提出“后台要好用”,可以追问并转化为:编辑发布一篇带图文章需要几步,是否需要进入多个页面,保存后是否立即在前台可见。把感受词换成步骤数和可见结果,验收才有依据。
具体可以这样做:先把现有功能要求逐条抄进一张表,每条拆成操作、预期结果、异常结果、验证方式四列;然后按上面的三档分级标注优先级;接着在测试环境里逐条走一遍,通过的打勾,不通过的写清现象和复现步骤;最后把不通过项按“影响数据”“影响使用”“仅显示问题”排序,决定哪些必须修完再上线,哪些可以列入后续调整。这份清单同时也是后续修改和追加需求的对照基线,避免口头加功能后无法判断是否做完。
下一步,挑出你手上最模糊的三条功能描述,用本文的句式各改写一遍,再拿去和制作方逐条确认。改不出来的那几条,就是验收时最可能扯皮的地方。