把功能要求写成验收项,核心是让每一条要求都能被“做出来、看得见、判得了”。做法是把模糊描述改成“操作—预期结果—判定标准”三件套,并写清前提条件。比如“联系表单要能用”不是验收项,“访客填写姓名、手机号并提交后,页面显示提交成功提示,后台列表出现该条记录”才是。适用前提是需求已确定、不涉及未定的视觉风格争议;判断结果是开发、测试和客户三方对同一句话理解一致,减少返工。
功能要求回答“要做什么”,验收项回答“做到什么程度算完成”。前者可以是“支持文章发布”,后者要写成“编辑在后台新建文章,填写标题和正文,点击发布后,前台文章列表出现该文章,详情页可正常打开”。
验收项通常包含四个部分:
缺少任何一项,验收时就容易变成“我觉得不行”和“我觉得可以”的争论。
假设需求是“网站要能收集客户留言”。可以按下面步骤处理:
这样一条需求就变成若干条可逐项打勾的验收项。对于第一次接触的人,建议先从主流程写起,再补异常和边界,不要一上来就追求覆盖所有情况。
写完验收项后,用下面几个问题自查:
如果一条验收项无法让两个人独立操作后得出相同结论,就还需要继续拆细。例如“上传图片要正常”可以改成“选择一张小于2MB的JPG图片上传,页面显示缩略图,后台媒体库出现该图片;上传超过限制的图片时,页面提示文件过大且不保存”。
合格的验收项在测试时会呈现这些信号:测试人员按步骤操作,能明确标记通过或不通过;开发人员能根据描述定位要改哪里;需求方看到结果后能判断是否符合预期。反之,如果验收时频繁出现“这不是我要的”,往往不是执行问题,而是验收项写得太粗。
常见误区有三个:一是把技术实现写成验收项,比如“用某框架实现”,这属于实现方式,不是功能结果;二是把多个结果塞进一条,失败时不知道哪部分没通过;三是只写正常流程,不写异常提示,导致上线后才发现问题。
下一步,挑出当前需求里最模糊的三条功能要求,各拆成一条包含角色、动作、前提和预期结果的验收项,再找开发或测试人员确认能否据此判断通过与否。