把功能要求写成验收项,核心是先把“要做什么”改写成“在什么条件下、执行什么操作、看到什么可观察结果”。在已有页面或项目上改进时,不要直接写“优化表单体验”这类愿望,而要写成类似“用户在注册页输入未注册邮箱并提交后,页面在2秒内显示验证码输入框,且不刷新整页”的条目。这样开发、设计和验收三方对同一句话的理解才能一致。
功能要求描述系统应具备的能力,验收项描述这项能力如何被判定为完成。前者可以是“支持手机号登录”,后者必须补充触发条件、操作路径、预期结果和判断边界。例如:
如果验收项只写“登录功能正常”,它就无法判断边界情况,也无法在改动后做回归检查。
对已有项目,可以逐条把原需求改写成四段式:前置条件、操作步骤、预期结果、失败判定。写法不必追求固定模板,但四类信息缺一不可。
假设一个已有商品详情页要增加“加入购物车”功能,可以写成:前置条件为商品有库存且用户未登录;操作为点击加入购物车;预期结果为弹出登录引导,登录后商品进入购物车且数量为1;失败判定为未登录时直接加入成功、或登录后购物车数量错误。这里“假设”仅用于说明写法,不是真实项目结论。
在原有基础上改进时,常见三种写法各有代价,选择取决于改动范围和验收成本。
判断依据不是条目越多越好,而是这条要求一旦做错,代价由谁承担。若错误会导致数据错误或用户无法完成关键任务,就应写到边界;若只是文案位置微调,写清预期结果即可。
可以按以下顺序处理一份已有需求清单:
检查时重点看三处:操作步骤能否被另一个人照着执行;预期结果是否能在页面上看到;失败判定是否明确到可以打勾或打叉。若一条验收项需要口头补充才能理解,就应继续改写。
这套写法适用于已有页面或项目的改进,因为原有功能已经存在,验收项要同时防止改坏旧行为和漏掉新要求。若项目还处于概念阶段,功能边界尚未确定,可以先写粗粒度验收项,等交互确定后再补边界。判断结果时,如果一条验收项能直接转化为测试步骤,并且通过或不通过没有争议,就说明它已经达到可验收程度;如果仍需讨论“算不算正常”,就回到四段式继续补充条件与结果。
下一步,挑出当前项目中最容易产生分歧的一条功能要求,按前置条件、操作步骤、预期结果、失败判定改写成验收项,再让另一位参与者独立照做一次,用实际执行结果检验它是否足够明确。