如何根据需求或验收标准写出可判定的缺陷期望结果
缺陷期望结果要写到“换一个人也能按同一口径判断通过或失败”。写法上固定四要素:条件、操作、可观察结果、判定口径,并注明依据来自哪条需求或验收标准。本文按“搭骨架—取依据—记实际—定分工—看示例—做检查”的顺序,说明如何把需求文本转成可判定的期望描述,并让实际结果与差异对照使用同一口径。
Table of Contents
要点总览(TL;DR)
- 可判定的期望结果固定四要素:条件、操作、可观察结果、判定口径,并标注依据来自哪条需求或验收标准。
- 从需求与验收标准提取依据时,先定位原文条目,再把“及时”“正确”等模糊词改写为可比较的判定口径;依据缺失时回到需求方确认,不自行补写。
- 实际结果要在与期望相同的条件和操作下记录,差异用期望值与实际值逐项对照,并附截图、日志、接口返回等证据。
- 提交人起草、需求或产品角色确认依据、测试或复核人检查可判定性,缺陷记录需包含期望结果、实际结果、依据来源和证据附件。
- 提交前按清单核对四要素齐全、来源可回溯、实际结果同口径、差异逐项对照、无主观形容词。
可判定的期望结果由哪四要素构成
可判定的期望结果,本质是一句“在什么前提下、做什么、应当看到什么、按什么标准算符合”的完整陈述。四要素齐全时,提交人、开发人员和复核人看到的是同一组观察对象,判断结果不依赖个人经验。四要素与依据来源一一对应:条件和操作通常来自需求的使用场景与验收步骤,可观察结果来自需求中描述的系统行为,判定口径来自验收标准中的量化或状态约定。
| 要素 | 填写要求 | 常见依据来源 |
|---|---|---|
| 条件 | 写明输入数据、环境、账号权限、前置状态,例如“订单处于待支付状态、账户余额为100元” | 需求条目的使用场景、验收标准的前置条件 |
| 操作 | 写触发动作或步骤序列,可复现,不含“正常操作”这类笼统说法 | 验收标准的操作步骤、设计说明中的交互流程 |
| 可观察结果 | 指明观察位置:界面字段、数据库记录、日志行、接口返回体、消息通知 | 需求中的行为描述、接口文档、设计说明 |
| 判定口径 | 给出比较方式:等于某值、包含某字段、落在某范围、状态发生指定变化 | 验收标准中的量化指标与状态约定 |
填写时有两个容易遗漏的点。一是条件要写到能复现的程度,环境差异(如测试环境与预发环境)会改变观察结果,需要写明。二是判定口径要可比较,例如“金额显示为100.00元”比“金额正确”可判定,“接口返回HTTP 200且body中status字段为paid”比“支付成功”可判定。四要素不必凑成四句话,但每一项都应在描述中有对应文字,缺一项就会留下解释空间。
从需求与验收标准提取判定依据的步骤
期望结果的质量取决于依据是否被准确提取。建议按以下步骤操作,每一步都有明确的输入与输出。
- 定位原文。输入是需求文档与验收标准,动作是找到与缺陷场景对应的需求条目和验收标准条目,输出是条目编号与原文摘录。避免只凭记忆转述需求。
- 识别可观察的结果表述。在原文中圈出描述系统行为、数据变化、界面反馈、接口响应的句子。这些句子是“可观察结果”的直接来源;描述业务目的而非系统行为的句子,需要进一步追问对应的表现。
- 把模糊表述改写为判定口径。遇到“及时”“正确”“友好”“稳定”等词,回到验收标准找量化约定;找不到时,将其改写为可比较的形式,例如把“及时提醒”改写为“提交后5秒内出现提醒弹窗,文案包含订单号”。改写后的口径要能对应到具体观察位置。
- 标注依据来源。在期望结果后注明需求编号、验收标准条目或设计说明章节。来源标注让复核人可以回到原文核对,也让后续需求变更时能定位受影响的缺陷记录。
- 依据缺失时回到需求方确认。当需求与验收标准都未覆盖该场景,或原文存在两种合理解读时,处理方式是向需求方或产品角色确认,把确认结论和确认人记录在缺陷记录中。自行补写判定口径会让期望结果失去依据,后续容易引发争议。
完成标志是:每条期望结果都能指向一条具体依据,且依据原文与改写后的口径之间没有语义跳跃。若改写过程中发现验收标准本身缺少量化约定,这本身也是一条值得反馈的需求质量问题,可与缺陷记录分开提出。
实际结果如何按同一口径记录并与期望对照
实际结果只有在与期望结果使用同一条件、同一操作、同一观察位置时才能比对。记录时先复述执行条件与操作步骤,再写观察到的值,最后附证据。差异描述采用逐项对照,把期望值与实际值并列,避免用“不符合预期”“功能异常”作为结论。
| 对照项 | 期望结果 | 实际结果 |
|---|---|---|
| 界面字段 | 订单状态显示“已支付” | 订单状态显示“待支付” |
| 接口返回 | status字段为paid | status字段为unpaid |
| 数据记录 | 支付时间字段写入当前时间 | 支付时间字段为空 |
证据包括截图、日志片段、接口返回数据、数据库查询结果和可复现的步骤序列。证据要能支撑对照表中的每一项,而不是只证明“有问题”。截图应包含时间、环境标识和关键字段;日志应截取相关时间段并标注请求标识。
记录时还要区分两种情况:一种是“与期望不符”,即依据明确、实际观察与期望存在差异;另一种是“期望本身待确认”,即依据缺失或存在歧义,此时应把缺陷记录标为待确认,附上已确认的问题和待确认的问题,交由需求方给出结论后再判断是否构成缺陷。两种情况混写,会让开发人员无法判断该修代码还是该改需求。
角色分工与交付物
期望结果的可判定性由多方共同保证。提交人负责起草,需求或产品角色负责确认依据,测试或复核人负责检查表述是否可判定。分工清楚可以减少来回澄清。
| 角色 | 职责 | 完成标志 |
|---|---|---|
| 提交人 | 按四要素起草期望结果,按同一口径记录实际结果,附证据 | 缺陷记录中四要素齐全,证据可打开核对 |
| 需求或产品角色 | 确认依据来源与判定口径,处理依据缺失或歧义 | 依据编号明确,歧义场景给出书面结论 |
| 测试或复核人 | 检查期望结果是否可判定,实际结果是否同口径,差异是否逐项对照 | 按检查清单核对通过,或退回补充 |
缺陷记录应包含的交付物有:期望结果(含四要素)、实际结果(同条件同操作下的观察值)、依据来源(需求编号、验收标准条目或设计说明章节)、证据附件(截图、日志、返回数据、复现步骤)。这四项构成一条可复核的缺陷记录,缺项时复核人可以直接退回。
当缺陷记录需要在团队间流转时,把期望结果、实际结果和依据来源放在工作项的固定字段中,可以让复核人不必在评论里翻找上下文。ONES 的工作项支持自定义字段与附件,缺陷类型可配置期望结果、实际结果、依据来源等字段,状态流转时保留修改记录,便于需求方确认依据和测试复核在同一处完成。这一承载方式适用于缺陷记录需要多人协作确认的场景;字段如何设置仍应结合团队现有的缺陷模板。
示例:一条模糊描述如何改成可判定表述
以下为演示情景,用于说明改写过程,不对应真实系统。
改写前:“优惠券过期后仍能使用,优惠券状态不正确。”
依据定位:需求条目“优惠券管理”写明“优惠券超过有效期后不可用于下单”;验收标准条目写明“过期优惠券在结算页置灰,提交订单接口返回错误码COUPON_EXPIRED”。
改写后的期望结果:条件为“账户中存在一张有效期为昨日的优惠券,订单金额满足使用门槛”;操作为“在结算页选择该优惠券并提交订单”;可观察结果为“结算页优惠券选项置灰,提交订单接口返回体errorCode字段为COUPON_EXPIRED,订单未生成”;判定口径为“errorCode等于COUPON_EXPIRED且订单列表中无新增记录”。依据来源标注为需求条目“优惠券管理”与验收标准对应条目。
实际结果与差异对照:同一条件下,结算页优惠券选项可点击,提交订单接口返回HTTP 200,errorCode为空,订单列表新增一条记录。对照写法为:期望errorCode等于COUPON_EXPIRED,实际为空;期望订单未生成,实际新增一条订单。附结算页截图、接口返回体和订单列表截图。
可判定性的差别:改写前,开发人员需要猜测“状态不正确”指哪个字段、在哪个页面观察、什么算不正确;改写后,观察位置、比较值和判定条件都已明确,复核人可以直接按对照表判断缺陷是否成立,也能据此编写回归验证步骤。
提交前的完成检查
提交前按以下清单逐项核对,全部通过再流转给复核人。
- 条件是否写明输入数据、环境与前置状态,且足以复现。
- 操作是否为可执行的步骤序列,不含“正常操作”等笼统表述。
- 可观察结果是否指明观察位置(界面、数据、日志、接口返回)。
- 判定口径是否为等于、包含、范围或状态变化等可比较形式。
- 是否标注依据来源,且来源可回到原文核对。
- 实际结果是否在与期望相同的条件和操作下记录。
- 差异是否逐项对照呈现,而非笼统结论。
- 是否附有支撑每项对照的证据。
- 是否区分“与期望不符”和“期望本身待确认”。
- 是否残留“异常”“不正确”“体验差”等主观形容词或无法验证的表述。
检查中发现依据缺失时,回到需求方确认并记录结论,不自行补写判定口径。清单通过后,缺陷记录即具备可判定、可复核、可回归的基础。
常见问题
需求文档里只有业务目标、没有系统行为描述,期望结果该怎么写?
业务目标本身不能直接作为判定依据,需要先把它翻译成系统行为。做法是找到该目标对应的功能入口和交互流程,向需求方确认“用户在哪个页面、做什么操作、看到什么反馈”才算达成目标,再把确认结论写成条件、操作、可观察结果和判定口径。确认过程与结论要记录在缺陷记录中,并注明确认人。若需求方也无法给出明确口径,说明需求本身存在缺口,可单独作为需求质量问题反馈,缺陷记录先标为待确认。
验收标准里的量化指标和实际观察值单位不一致,怎么处理?
先把两者换算到同一单位再比对,并在缺陷记录中写明换算关系,例如验收标准写“响应时间不超过2秒”,实际日志记录的是毫秒值,就统一换算为毫秒后对照。换算后仍无法直接比较的,例如一方是平均值、另一方是单次采样,需要在期望结果中补充采样口径(采样次数、统计方式),或回到需求方确认验收标准的口径。换算和口径说明都应写入记录,避免复核人重复推算。
同一个缺陷涉及多个观察位置,期望结果要写几条?
按观察位置分别写,每个位置一条可判定的期望,并在同一条缺陷记录中并列呈现。例如支付场景下界面状态、接口返回字段、数据表记录是三个观察位置,各自有独立的比较值,合并成一句会失去可判定性。多条期望共享同一组条件和操作时,条件和操作写一次,各条期望只写可观察结果与判定口径,差异对照表也按观察位置逐行列出。这样开发人员能逐项修复,复核人也能逐项验证。
缺陷提交后需求变更了,原期望结果还有效吗?
需求变更后,原期望结果所依据的条目可能已失效,需要回到变更后的需求或验收标准重新核对判定口径。处理方式是在缺陷记录中保留原依据来源,补充变更说明和新依据条目,由需求或产品角色确认新的判定口径后再判断缺陷是否仍然成立。若变更导致原期望不再适用,应关闭或调整该缺陷,而不是让开发人员按旧口径修复。依据来源标注清楚,正是为了让这类变更能被快速定位。
团队刚开始推行这种写法,怎样降低提交人的负担?
可以先从高频缺陷场景入手,把四要素做成缺陷模板中的固定字段和填写提示,提交人按字段填写即可,不必每次从零组织语言。同时挑选几条典型缺陷做改写示范,作为团队内的参照样例。复核环节先重点检查依据来源和判定口径两项,这两项决定期望结果是否可判定,其余项随熟练度逐步收紧。模板和样例应随需求文档结构变化定期更新,避免字段与实际依据脱节。



