把功能要求写成验收项,核心做法是让每一条要求都能被第三方独立判定为“通过”或“不通过”。具体来说,就是把“要有搜索功能”改写成“在搜索框输入已存在的标题关键词,点击搜索后,结果列表在3秒内显示至少1条匹配记录,且每条记录包含标题和链接”。适用于已有页面或项目需要在原有基础上改进的场景,判断标准是:不看代码、不询问开发,只按验收项操作一遍,就能得出明确结论。
功能要求回答“要做什么”,验收项回答“做到什么程度算完成”,验收信号回答“用什么现象证明”。三者混在一起,是需求反复返工的常见原因。
只有功能要求时,开发可以交出一个“能点但没反应”的按钮;只有验收项时,双方对“完成”的理解才一致。适用条件是:项目已经存在页面或功能,需要在原有基础上改进,而不是从零讨论创意。
“优化”“完善”“友好”“流畅”“美观”这类词无法验收。改写时按“操作—输入—输出—边界”四段拆解:
例如原要求“联系方式要显眼”,可改写为:在桌面端页面宽度1280像素下,联系方式区域位于首屏可见范围内,文字与背景对比度满足正文可读要求,点击后能复制或跳转到对应联系方式。这里的“显眼”被拆成了位置、对比度、可操作三个可检查项。
验收项不是一句话清单,而是一段可执行的检查说明。建议每条包含:前置条件、操作步骤、预期结果、不通过的表现。
以“文章页要能分享到社交平台”为例,可写成:
这样写的好处是,测试人员不需要理解业务背景,也能按步骤复现。判断结果是:全部步骤通过则该项通过;任一步骤出现不通过表现,则该项不通过并记录现象。
已有页面或项目改进时,验收项要额外说明“改前行为”和“改后行为”,避免把旧问题当成新需求。例如原搜索只能匹配完整标题,改进要求是支持部分匹配,可写成:
改前:输入完整标题可搜到,输入标题中的任意连续两个字符搜不到。改后:输入标题中任意连续两个字符,结果列表显示包含该字符序列的文章,且结果数量不少于1条。检查时分别用完整标题、连续两字符、不存在的字符各测一次,记录三次结果。
适用条件是:改动范围明确、原有功能仍可访问。如果旧功能已经无法运行,应先记录当前实际行为,再写改进后的验收项,不能凭记忆描述改前状态。
写完验收项后,用三个问题自检:
下一步:从现有需求文档中挑出三条最模糊的功能要求,按“操作—输入—输出—边界”各改写成一条验收项,再请一位不参与开发的人按步骤操作一遍,记录他卡住的位置,那就是还需要继续细化的地方。