把功能要求写成验收项,核心是让每条要求都能被第三方复现并判定通过或失败。做法是:把“要做什么”改写成“在什么条件下,执行什么操作,观察到什么结果”。例如“联系表单要能用”应改为“访客填写姓名、手机号并提交后,页面显示提交成功,后台列表新增一条记录”。多人协作时,验收项就是交付标准,写不清就会反复返工。
拿到一份需求文档,先逐条检查能不能回答三个问题:谁在什么场景下操作、操作后看到什么、什么情况算不通过。如果一条要求出现“友好”“快速”“合理”“兼容主流”这类词,且没有补充可测量的条件,它就是无法验收的。常见现象是开发按自己理解做完,测试按另一种理解提缺陷,双方都没错,但返工已经发生。
判断标准是“可观察、可复现、可判定”。可观察指结果能从页面、接口返回、日志或数据记录中看到;可复现指换一个人按同样步骤能得出同样现象;可判定指结论只有通过或不通过,不存在“基本可以”。
把要求拆成四段写,通常就能落地:
涉及页面结构时,可以把验收点写成可核对的对象,例如“页面只有一个<h1>,标题文字与栏目名一致”。这样测试不需要猜测,开发也不会漏做。
改写时保留原需求编号,另起一列写验收项,避免丢失上下文。每条验收项尽量只验证一件事,便于定位问题。下面的对照示例为假设场景,用于说明写法。
写完一条就自问:如果我是没参与讨论的测试,能不能照着执行并给出结论?不能,就继续补条件和结果。适用条件是需求已经相对明确;如果业务规则本身还在讨论,先记录待确认项,不要用模糊措辞蒙混过去。
复查不是重读文档,而是按验收项逐条执行并记录结果。建议至少两个人参与:一人按步骤操作,另一人核对预期。发现“通过但不放心”的条目,说明验收项还缺少边界,应补上反例再执行。
复查通过后,验收项可以直接作为交付附件。后续出现争议时,以验收项记录为准,而不是凭记忆争论“当时说的是什么意思”。
下一步:挑出当前项目里最常返工的三条功能要求,按“前提—操作—预期—边界”改写成验收项,交给另一位协作者试执行;如果对方无法独立判断通过与否,就继续补充条件。