把功能要求写成验收项,核心做法是:先写清用户完成什么任务、在什么条件下完成、完成后系统留下什么可观察结果,再把这三部分拆成一条条可勾选的检查项。常见误解是“功能描述写得越细,验收就越清楚”,实际上细节堆得再多,如果没有可观察结果和判断标准,验收时仍然只能靠感觉争论。
功能要求通常描述的是系统“应该具备什么”,例如“支持用户上传头像”“提供搜索功能”“可以导出报表”。这类句子适合立项和沟通,但无法直接验收。原因在于它缺少三个要素:触发条件、操作路径、可观察结果。
比如“支持用户上传头像”,验收时会立刻出现分歧:支持哪些格式?多大算超限?上传失败提示什么?上传成功后头像出现在哪些位置?如果这些没有提前写进验收项,开发完成后双方只能各自解释,验收就变成谈判。
验收项不是把功能描述抄一遍再加个复选框,而是把功能翻译成“给定什么条件,执行什么操作,看到什么结果”。
可以按下面的结构组织每条验收项:
假设一个需求是“后台可以导出订单”。可以写成:
前置:以管理员登录,订单列表有3条已支付订单。操作:点击“导出CSV”。预期:下载文件名包含导出日期,文件含订单号、金额、支付时间三列,共3行数据。判断:用表格软件打开,核对行数与列表一致。
这样写出来,验收时不需要再讨论“导出”是什么意思。
把功能要求转成验收项时,常见两种处理路径。
方案一:从用户任务出发写结果。先写“用户要完成什么”,再推导界面和数据结果。适合需求还在讨论阶段、界面尚未定稿的项目。优点是验收项稳定,界面调整时不必重写;缺点是早期需要业务方参与确认任务描述。
方案二:从界面元素出发写操作。先确定按钮、字段、提示文案,再逐项写点击后的结果。适合界面已经过评审、改动成本较高的项目。优点是验收项具体;缺点是界面一改,验收项就要同步修改。
判断用哪种:如果需求方说不清界面但能说清业务目标,用方案一;如果界面已经冻结、只等开发实现,用方案二。两者也可以混用,但同一条验收项里不要一半写任务、一半写像素位置,否则执行时容易漏判。
执行验收时,按前置条件准备环境,严格按操作步骤执行,再对照预期结果逐项核对。判断结果只有三种:通过、不通过、条件不满足无法执行。第三种要记录缺少什么条件,而不是直接算通过。
如果实际结果与预期不一致,先确认是操作步骤错了、环境不对,还是功能本身没实现。不要因为“大体能用”就标记通过,否则验收项就失去了筛选作用。
下一步可以挑一条当前最模糊的功能要求,用四段式改写成验收项,再让另一位同事仅凭这条文字执行一次,看能否得出同样的判断。