测试报告的执行结果、缺陷和需求覆盖数据来自哪里

测试报告里的执行结果、缺陷和需求覆盖数据,分别来自测试用例执行记录、缺陷跟踪记录,以及需求条目与测试用例之间的追溯关系。三者依靠“需求—用例—执行—缺陷”这条追溯链关联:用例关联需求形成覆盖,执行记录挂在用例上产生结果,缺陷从失败执行或独立提交中产生并回指用例与需求,报告再按同一版本或测试轮次汇总。理解这条链路,有助于判断报告中的数字能否支撑当前版本的结论。



要点总览(TL;DR)


  • 执行结果来自测试用例执行记录,缺陷来自缺陷跟踪记录,需求覆盖来自需求条目与用例之间的追溯关系。
  • 三者通过“需求—用例—执行—缺陷”追溯链关联:用例关联需求形成覆盖,执行记录挂在用例上产生结果,缺陷回指用例与需求。
  • 报告应按同一版本或同一测试轮次统一汇总口径,否则覆盖、执行与缺陷数字无法对应。
  • 需求覆盖率衡量测试范围,用例执行通过率衡量已执行部分的稳定性,缺陷密度用于相对比较,三者不能互相替代。
  • 覆盖未执行、缺陷未回指用例、缺陷关闭未复测,是报告中常见的口径断裂点。


测试报告的三类数据分别是什么


测试报告通常围绕三类数据组织内容,它们回答的问题不同,在报告中的呈现形态也不同。先界定含义,才能准确判断数据该从哪里取。


执行结果:用例跑得怎么样


执行结果指测试用例在某一轮测试中的执行状态与统计。它至少包含用例或用例集的标识、所属执行轮次、通过、失败、阻塞、未执行等状态,以及执行时间和执行人。报告中常见的呈现形态是执行进度、通过率、失败用例清单和按模块或用例集分组的执行统计。执行结果描述的是“测试动作完成到什么程度、结果如何”,属于过程与结果记录。


缺陷:发现了什么问题


缺陷数据指测试过程中提交的缺陷单及其属性,包括严重程度、优先级、当前状态、所属版本、发现阶段、关联用例和责任人等。报告中通常以缺陷总数、按严重程度分布、按状态分布、按模块分布以及未关闭缺陷清单的形式出现。缺陷数据描述的是“产品存在哪些问题、处理到什么程度”,属于问题跟踪记录。


需求覆盖:测试是否触达需求


需求覆盖指需求条目与测试用例之间的追溯覆盖情况,按需求统计已覆盖、未覆盖,以及覆盖后对应用例的执行结果。报告中常见的呈现形态是需求覆盖清单、覆盖率以及未覆盖需求列表。它描述的是“测试范围是否覆盖了计划交付的需求”,属于范围与追溯信息。


三类数据合在一起,才能回答当前测试或版本的质量结论:测了什么、测得怎样、发现了什么问题、还有哪些需求没有被验证。缺少任何一类,结论都会偏向局部。



数据来源:记录与系统边界


三类数据在产生位置上并不相同,实际工作中可能分布在测试管理工具、缺陷跟踪系统和需求管理工具中,也可能由同一平台的不同模块承载。取数时需要先确认每类数据的原始记录在哪里。


数据类型 原始记录 常见承载位置 关键字段
执行结果 测试用例执行记录 测试管理工具的测试计划或执行轮次 用例标识、轮次、执行状态、执行时间、执行人
缺陷 缺陷跟踪记录 缺陷跟踪系统或测试管理工具的缺陷模块 缺陷编号、严重程度、状态、所属版本、关联用例
需求覆盖 需求条目与用例的追溯关系 需求管理工具、测试管理工具的用例关联字段 需求编号、关联用例、覆盖状态、执行结果

执行结果来自执行动作本身,没有执行记录就无法统计通过或失败;缺陷来自问题提交与流转,缺陷单的状态变化构成缺陷数据的更新来源;需求覆盖来自需求与用例之间建立的关联,关联关系不存在时,覆盖数据无从计算。三类数据可能由不同角色维护:测试人员执行用例并提交缺陷,需求负责人维护需求条目,测试负责人建立用例与需求的关联。取数前明确各字段的维护责任,可以减少报告口径不一致。


本文聚焦当前测试或版本报告中的数据来源与关联机制。组织级质量趋势分析、发布决策门禁、具体工具的版本与价格信息,以及报告模板编写和数据治理的实施步骤,不在本文展开。



三者如何关联:需求—用例—执行—缺陷追溯链


三类数据能够汇总到同一份报告,依靠的是一条可追溯的关联链。链路上的每一段都有明确的关联键,缺一段就会造成口径断裂。


第一段:用例关联需求,形成覆盖关系


测试用例在设计或评审阶段与需求条目建立关联,关联键通常是需求编号与用例编号的对应关系。一条需求可以对应多条用例,一条用例也可以服务于多条需求。关联建立后,按需求统计其关联用例的数量与状态,就得到需求覆盖数据:有至少一条有效关联用例的需求视为已覆盖,没有关联用例的需求视为未覆盖。覆盖关系回答的是“这条需求有没有测试用例来验证”。


第二段:执行记录挂在用例上,产生执行结果


测试执行时,用例被放入某个测试计划或执行轮次,每次执行产生一条执行记录,记录状态、时间和执行人。执行记录的关联键是用例编号加执行轮次。由于用例已经关联需求,执行结果可以沿关联向上汇总到需求:某条需求下的用例执行了多少、通过多少、失败多少。这一步把“测了什么”变成“测得怎样”。


第三段:缺陷回指用例与需求


缺陷的产生有两条常见路径:一是用例执行失败后直接创建缺陷,缺陷自动带上关联用例;二是测试人员在探索测试中独立提交缺陷,再手动关联用例或需求。无论哪条路径,缺陷单上都应保留关联用例或关联需求字段,使缺陷能够回指到具体验证点。这样报告中才能回答“这条需求的失败用例对应哪些缺陷、缺陷是否已关闭”。


汇总口径:按版本或测试轮次统一


关联链建立后,还需要统一汇总口径。执行结果、缺陷和需求覆盖应限定在同一版本或同一测试轮次内统计,否则会出现用例执行于新版本、缺陷记录于旧版本、需求覆盖按全量需求计算的情况,数字之间无法对应。报告中常见的做法是先确定版本与轮次范围,再在该范围内沿追溯链取数。


关联缺失时,报告会出现典型的口径断裂:需求覆盖显示已覆盖,但关联用例从未执行;执行结果显示失败,但缺陷单没有回指用例,缺陷数无法归因到需求;缺陷已关闭,但对应需求下的用例仍显示失败。这些情况说明链路中某一段的关联字段没有维护,需要在取数前核对。


在工具承载上,ONES 测试管理支持测试用例与需求、任务关联,测试计划与迭代关联,形成测试流程闭环;未通过的用例可快速创建缺陷任务,缺陷任务在测试与研发团队间流转。这类关联方式为“需求—用例—执行—缺陷”链路提供了记录载体,报告中的覆盖、执行与缺陷数据可以沿同一关联关系汇总。具体统计口径与报告字段以实际配置为准。



与相邻概念的区别:覆盖率、通过率与缺陷密度


报告中的几个指标容易混用,它们依赖的数据来源不同,回答的问题也不同。把覆盖等同于质量结论,是常见的误读。


指标 计算依据 回答的问题 主要来源数据
需求覆盖率 已关联用例的需求数 ÷ 需求总数 需求有没有被测试用例覆盖 需求与用例的追溯关系
用例执行通过率 通过用例数 ÷ 已执行用例数 已执行的用例结果如何 用例执行记录
缺陷密度 缺陷数 ÷ 规模基数(如需求数、用例数或代码量) 单位规模内的问题集中程度 缺陷跟踪记录与规模数据

需求覆盖率衡量测试范围,不反映执行质量。覆盖率高只说明需求有对应用例,用例是否执行、执行是否通过,需要看执行结果。用例执行通过率衡量已执行部分的稳定性,分母是已执行用例,未执行用例不计入,因此通过率高可能伴随大量未执行用例。缺陷密度把缺陷数放到规模基数上比较,用于不同模块或版本之间的相对比较;缺陷数量本身只是绝对计数,不能直接说明质量好坏,因为缺陷数与测试强度、用例设计粒度都有关。


覆盖率高不等于质量好:需求有对应用例但用例设计粗糙,或覆盖后从未执行,覆盖率数字仍然好看。缺陷数少也不等于质量高:可能是测试范围不足或缺陷记录不完整。判断质量结论时,需要把覆盖率、执行结果和缺陷数据放在同一版本口径下一起看。



一个具体例子与常见误解


假设某版本有一条需求“订单支持部分退款”,测试团队为其设计了四条用例:正常部分退款、退款金额超过可退金额、退款后订单状态更新、退款记录查询。执行轮次为第一轮回归。


取数与关联过程如下:需求条目关联这四条用例,需求覆盖状态为已覆盖。执行记录显示三条通过、一条失败,失败用例是“退款金额超过可退金额”,执行结果按需求汇总为执行四条、通过三条、失败一条。测试人员从失败用例创建缺陷单,缺陷关联该用例,严重程度为高,状态为待修复。报告中这条需求下同时呈现:覆盖状态已覆盖、执行通过率 75%、关联缺陷一条且未关闭。缺陷修复后进入第二轮执行,该用例通过,缺陷关闭,报告按第二轮口径更新执行结果与缺陷状态。


这个例子说明三类数据如何在同一条需求下汇总,也暴露两个常见误解。


第一个误解是把缺陷数直接当质量结论。缺陷数受测试范围、用例粒度和记录习惯影响,单看数量无法判断质量;需要结合覆盖情况、执行结果和缺陷严重程度分布。第二个误解是把覆盖未执行也算作已覆盖的质量证据。覆盖只说明关联关系存在,未执行的覆盖用例不产生执行结果,报告中应把“已覆盖未执行”单独列出,避免覆盖率虚高。


此外,缺陷关闭后对应用例是否复测通过,也应在报告中体现。缺陷状态与执行结果是两类记录,只有通过复测执行记录确认修复有效,缺陷关闭才具备质量证据。报告按轮次汇总时,保留每轮的执行与缺陷状态变化,比只呈现最终快照更能支撑版本结论。



常见问题


需求覆盖率高,是否说明这个版本质量好?


不能直接这样判断。需求覆盖率只说明需求有对应用例,回答的是测试范围问题。用例是否执行、执行是否通过、失败后是否产生并关闭缺陷,需要看执行结果和缺陷数据。覆盖后从未执行的用例不产生执行结果,覆盖率数字仍然可能很高。判断版本质量时,应把覆盖率、执行通过率和缺陷分布放在同一版本口径下一起看。


缺陷单没有关联用例,报告还能把缺陷归因到需求吗?


可以补建关联,但需要额外核对。缺陷回指需求的路径通常是通过关联用例:用例关联了需求,缺陷关联了用例,缺陷才能沿链路汇总到需求。如果缺陷单缺少关联用例字段,报告中的缺陷数无法按需求拆分,只能按模块或版本粗略统计。取数前应检查缺陷单的关联字段是否完整,探索测试中独立提交的缺陷尤其容易遗漏这一步。


用例在旧版本执行、缺陷记录在新版本,报告数字为什么对不上?


这是汇总口径不一致造成的。执行结果、缺陷和需求覆盖应限定在同一版本或同一测试轮次内统计。如果用例执行记录属于上一轮,缺陷单挂在新版本,需求覆盖又按全量需求计算,三类数字之间就缺少共同范围。常见做法是先确定版本与轮次范围,再在该范围内沿追溯链取数,并在报告中注明统计口径。


缺陷关闭后,还需要在报告里体现复测结果吗?


建议体现。缺陷状态和用例执行结果是两类记录,缺陷关闭表示问题单已处理,复测通过才说明修复在测试侧得到验证。报告中保留每轮的执行与缺陷状态变化,可以说明缺陷关闭对应的验证动作。只呈现最终快照时,读者难以判断缺陷关闭是否有复测执行记录支撑。


三类数据分散在不同系统里,关联关系怎么建立?


关键是保留统一的关联键。需求条目、测试用例、执行记录和缺陷单之间,通常依靠需求编号、用例编号和版本或轮次标识建立对应关系。数据分散在需求管理工具、测试管理工具和缺陷跟踪系统时,需要在取数环节按这些键做匹配,或者由承载测试流程的平台统一维护关联字段。ONES 测试管理支持测试用例与需求、任务关联,未通过的用例可快速创建缺陷任务,为这条链路提供记录载体;具体统计口径与报告字段以实际配置为准。