把功能要求写成验收项,核心是让每条要求都能被“做没做、做到什么程度”判断出来。做法是先把模糊愿望拆成操作、输入、输出和判断标准四部分,再写成“谁在什么条件下做什么,系统返回什么结果,达到什么状态算通过”。下面用一个假设的衢州网站开发项目说明具体步骤。
功能要求回答“网站要有什么”,验收项回答“怎么证明它已经可用”。例如“要有在线留言”是功能要求,而“访客填写姓名、手机号、留言内容并提交后,页面显示提交成功,后台可查到该条记录,手机号为空时不允许提交”才是验收项。前者无法判断完成度,后者可以逐条勾选。
第一次接触这个问题时,建议先不要写页面清单,而是把每个功能按用户动作写一遍。动作写不出来,通常说明需求本身还没想清楚。
假设项目需要“产品展示与询价”功能,可以这样拆:
把这四要素连起来,就得到一条可验收的表述:“访客在产品详情页点击询价,姓名和联系电话为空时不能提交并提示对应字段;填写合法内容提交后,页面显示提交成功,后台列表出现该条记录,字段内容与填写一致。”
“界面美观”“加载要快”“操作方便”“兼容手机”都属于形容词式要求,不同人判断结果不同。改法是把它们换成可观察的条件:
注意,这里不是追求绝对精确,而是让双方对“通过”有同一个判断依据。数值和机型清单应在项目开始时确认,而不是验收时临时补。
推荐用表格或编号清单管理,每条包含:编号、功能模块、前置条件、操作步骤、预期结果、实际结果、是否通过。示例(假设):
每条验收项只验证一件事,避免一条里塞多个判断,否则失败时难以定位原因。涉及后台的功能,要同时写清前台表现和后台结果,两者都符合才算通过。
这套写法适合需求还在沟通阶段、双方对功能理解不一致的情况。如果项目已有成熟原型或详细设计稿,可以在此基础上补充异常路径,例如网络中断、重复提交、权限不足时的表现。若功能涉及第三方服务或外部接口,验收项要写清依赖方不可用时的降级表现,而不是假定它一直正常。
下一步:挑出当前最不确定的三个功能,各写一条包含操作、输入、输出和判断标准的验收项,发给开发方确认。对方能复述出同样的判断结果,说明这条要求已经写清楚;对方提出反问,说明还需要补充条件。