自动化测试协同要解决的是执行结果如何被定位、分派和复核。做法是围绕“用例来源—脚本与数据准备—执行触发—结果判定—缺陷流转—回归与度量”建立一条有责任人和状态流转的协作链,让每次失败都有归属、每个缺陷都能追溯到用例。本文给出六步操作流程、角色交付物对照和完成检查清单,并以 ONES 作为协同记录载体的示例说明信息如何存放。脚本编写、AI 辅助用例生成与缺陷分析不在本文范围。
要点总览(TL;DR)
- 自动化测试协同的落地核心是让每次执行结果都能被定位、分派和复核,围绕用例来源、脚本与数据准备、执行触发、结果判定、缺陷流转、回归与度量建立有责任人和状态流转的协作链。
- 六步流程中每一步都要有输入、动作、输出和完成标志,缺少完成标志的步骤容易停在半途,责任随之悬空。
- 执行触发方式按用例特性选择:提交触发适合与变更强相关且执行快的用例,定时触发适合全量或稳定性回归,手动触发适合环境不稳定或需人工准备数据的场景。
- 失败结果应在提单前先分流为环境问题、脚本问题或产品缺陷,分流记录同样留痕,避免缺陷单被环境噪声淹没。
- 判断机制是否落地看记录完整性和责任闭合:失败有归属、缺陷回填用例、回归范围有依据、阻塞跳过有原因、缺陷关闭有复核。
先定协同边界:哪些环节纳入自动化测试协同
协同机制覆盖的是“结果怎么流转”,编码工作由自动化工程师在开发环境中完成。把边界划清,团队才不会把流程问题误当成脚本问题,也不会让协同制度侵入技术实现细节。
纳入协同管理的环节有五类:用例来源登记,明确哪些用例进入自动化范围;执行触发,约定何时、由什么事件启动执行;结果判定,统一通过、失败、阻塞、跳过的口径;缺陷流转,规定失败结果如何分流、提单与关闭;回归与度量,确定回归范围依据和统计口径。这五类环节共同构成一条从需求到质量反馈的链路。
排除在本文之外的环节包括:脚本编写与框架选型、测试环境搭建的技术细节、AI 辅助用例生成与缺陷分析。这些工作有独立的技术方法,协同机制只需约定它们的交付物和交接时点,例如脚本提交后由谁确认可纳入执行集。
与手工测试的衔接点在用例库:自动化用例与手工用例共用同一份用例来源,自动化标记只是用例的一个属性,回归时两类用例按同一范围决策。与 CI 流水线的衔接点在触发和结果回写:流水线负责执行,协同机制负责把执行记录带回用例和缺陷对象。边界清楚后,后续六步才有稳定的输入输出。
核心流程:从用例到回归的六步操作
六步流程按顺序执行,每一步都有明确的输入、动作、输出和完成标志。完成标志是判断该步是否真正结束的依据,缺少完成标志的步骤容易停在“做了一半”的状态。
| 步骤 | 输入 | 动作 | 输出 | 完成标志 |
|---|---|---|---|---|
| 一、用例来源与自动化标记 | 需求、用例库 | 测试负责人与自动化工程师共同筛选适合自动化的用例,在用例上标注自动化状态与优先级 | 可自动化用例清单 | 清单中的每条用例都有责任人和自动化标记 |
| 二、脚本与测试数据准备 | 可自动化用例清单 | 自动化工程师编写脚本、准备测试数据,建立脚本与用例编号的对应关系并纳入版本管理 | 脚本版本、数据版本、用例—脚本映射表 | 映射表中每条用例都能指向具体脚本版本 |
| 三、执行触发 | 脚本版本、执行环境 | 按用例稳定性选择提交触发、定时触发或手动触发 | 执行记录 | 执行记录包含触发方式、时间、环境、脚本版本 |
| 四、结果判定 | 执行记录、失败日志 | 按统一口径判定通过、失败、阻塞、跳过,阻塞与跳过需注明原因 | 带判定结论的执行结果 | 每条失败结果都有判定人和判定依据 |
| 五、失败分流与缺陷提单 | 失败结果、失败日志 | 区分环境问题、脚本问题、产品缺陷,产品缺陷提单并回填用例编号与执行记录 | 缺陷单或分流处理记录 | 每条失败都有归属对象,缺陷单字段完整 |
| 六、回归范围确定与结果复核 | 变更内容、用例覆盖关系、缺陷单 | 依据变更影响圈定回归范围,执行后复核结果并关闭缺陷 | 回归批次记录、复核结论 | 回归批次有范围依据,缺陷关闭有复核人 |
执行触发方式的选择需要结合用例特性。提交触发适合与本次变更强相关、执行时间短的用例,反馈快但可能受频繁提交干扰;定时触发适合全量或稳定性回归,节奏固定;手动触发适合环境不稳定或需要人工准备数据的场景。三种方式可以并存,关键是每种方式都在执行记录中可识别。
结果判定口径要在团队内统一。通过指断言全部满足;失败指断言不满足且可复现;阻塞指环境或依赖不可用导致无法执行;跳过指本次范围明确不执行。阻塞和跳过必须写明原因,否则统计口径会失真,回归范围也会失去依据。
角色与交付物:谁在什么节点交付什么
责任悬空通常源于交付物没有落到具体角色和时点。下表按角色列出职责、交付物和交接时点,团队可据此在项目管理工具中配置对应的工作项和状态。
| 角色 | 职责 | 交付物 | 交接时点 |
|---|---|---|---|
| 测试负责人 | 定义自动化准入与准出规则,决策回归范围 | 准入准出规则、回归范围说明 | 迭代开始前发布规则;提测后确定回归范围 |
| 自动化工程师 | 维护脚本与测试数据,保障执行环境可用 | 脚本版本、数据版本、用例—脚本映射表、环境可用性说明 | 提测前完成脚本与数据准备;执行失败后参与分流 |
| 开发 | 修复缺陷,按提交规范提交代码并完成自测 | 修复记录、自测结论 | 收到缺陷单后按约定时限响应;修复后回填自测结果 |
| 产品与需求方 | 确认验收口径,参与结果复核 | 验收口径说明、复核意见 | 需求评审时确认口径;回归复核时给出结论 |
交接时点比职责描述更容易执行。例如“提测前完成脚本准备”比“负责脚本维护”更能约束行为,因为它对应一个可观察的时间节点和一份可检查的交付物。团队可以把这些交付物直接配置为工作项字段或检查项,让交接在系统中留痕。
示例:一次提交触发的失败如何走完协同链
以下为演示情景,用于说明状态流转,不代表任何真实项目数据。某次代码提交触发自动化执行,执行记录显示三条用例失败。自动化工程师先看失败日志:第一条因测试环境数据库连接超时失败,判定为环境问题,标记阻塞并通知环境维护人,不提交缺陷单;第二条因页面元素定位失效失败,对照脚本版本发现是近期界面调整导致,判定为脚本问题,由自动化工程师修复脚本并重新执行;第三条断言业务计算结果不符,日志可复现,判定为产品缺陷。
缺陷单需要包含四类信息:用例编号,指向用例库中的原始用例;执行记录链接,包含触发方式、环境、脚本版本和失败日志;复现步骤,写明操作路径与预期结果;影响范围,说明涉及的模块和版本。开发修复后在缺陷单回填修复说明和自测结论,自动化工程师重新执行对应用例,执行通过后由测试负责人复核并关闭缺陷。若修复涉及其他模块,测试负责人依据变更影响扩大回归范围,并在回归批次中记录范围依据。
这个情景的关键在于分流发生在提单之前。环境问题和脚本问题如果直接进入缺陷单,会稀释缺陷列表的有效性,开发也难以判断优先级。分流记录本身也需要留痕,便于后续统计环境稳定性和脚本健康度。
承载与工具衔接:协同信息放在哪里
协同链上的信息至少需要四类记录载体:用例,承载自动化标记、责任人和脚本映射;执行记录,承载触发方式、环境、脚本版本和判定结论;缺陷,承载失败分流结果、复现步骤和修复结论;回归批次,承载回归范围依据和复核结论。四类对象之间需要相互可追溯,否则失败结果无法定位到用例,缺陷关闭也无法回溯执行证据。
字段设计上,用例应有自动化状态、脚本版本、责任人;执行记录应有触发方式、执行时间、环境、判定结论、失败原因分类;缺陷应有来源用例编号、执行记录链接、严重程度、修复版本;回归批次应有范围依据、包含用例清单、复核人。状态流转要与角色对应,例如缺陷从“待修复”到“待验证”由开发触发,从“待验证”到“已关闭”由测试负责人确认。
ONES 测试管理支持测试用例与需求、任务关联,测试计划与迭代关联,形成测试流程闭环;未通过的用例可快速创建缺陷任务,缺陷任务在测试与研发团队间流转;用例可分配执行人,便于测试计划内的分工协作;系统可自动生成测试报告并统计项目缺陷分布;还支持为用例库、测试计划单独配置权限。这些能力对应上述用例、缺陷和回归记录的承载需求。自动化执行结果与用例状态的自动同步方式,官方资料未给出具体说明,团队需要在选型或配置时结合实际环境确认,必要时先用人工回填保证流程跑通。ONES 也支持按需求场景集成 DevOps 工具链,具体集成方式与兼容范围同样需要查证。
完成检查:协同机制是否真的跑起来了
机制是否落地,看的是记录是否完整、责任是否闭合,而不是脚本数量或执行次数。以下检查项可逐项核对,每项都给出通过标准和证据来源。
| 检查项 | 通过标准 | 证据 |
|---|---|---|
| 失败是否都有归属 | 抽查执行记录,每条失败都对应环境问题、脚本问题或缺陷单之一,且有判定人 | 执行记录与分流记录 |
| 缺陷是否回填用例 | 缺陷单中用例编号和执行记录链接字段完整,可反向查到原始用例 | 缺陷单字段 |
| 回归范围是否有依据 | 每个回归批次都写明范围依据,范围扩大有变更影响说明 | 回归批次记录 |
| 阻塞与跳过是否有原因 | 阻塞和跳过记录均注明原因和责任人 | 执行记录 |
| 缺陷关闭是否有复核 | 关闭的缺陷有复核人和复核结论,对应用例重新执行通过 | 缺陷单状态历史 |
常见失效信号值得单独关注:长期阻塞未处理,说明环境或依赖问题没有责任人;失败无人认领,说明分流规则没有落到角色;回归范围随意扩大,说明范围依据缺失,回归成本会持续上升。出现这些信号时,优先回到六步流程中对应步骤补齐完成标志,而不是增加执行频率。机制稳定运行后,再用测试报告和缺陷分布统计评估效果,指标口径应与结果判定口径保持一致。
常见问题
团队刚开始做自动化测试协同,应该先建哪一部分?
建议先建用例与执行记录这两类载体,再补缺陷和回归批次。原因是协同链的起点是用例来源和自动化标记,没有这份清单,后续脚本准备、执行触发和结果判定都缺少对照对象;执行记录则是失败分流的依据,缺少它,缺陷单里的复现信息只能靠口头传递。
起步阶段可以先跑通一条最短链路:选一批稳定用例,标注自动化和责任人,约定一种触发方式,执行后按统一口径判定,失败先分流再决定是否提单。这条链路跑顺后再扩展回归批次和度量统计,避免一开始就铺开全部环节导致无人维护。
提交触发和定时触发可以同时用吗?会不会造成执行记录混乱?
可以同时用,前提是执行记录中能识别触发方式。提交触发适合与本次变更强相关、执行时间短的用例,反馈快;定时触发适合全量或稳定性回归,节奏固定。两类执行并存时,统计口径要分开,否则失败率会被不同触发方式混在一起,难以判断问题出在变更还是环境。
实际操作中建议给每类触发方式约定用途和责任人,例如提交触发由开发提交后自动启动,定时触发由自动化工程师维护执行集。执行记录里保留触发方式、时间、环境和脚本版本,后续复核时才能还原当时条件。
失败结果先分流再提单,会不会拖慢缺陷响应?
分流本身只需要判断失败原因属于环境、脚本还是产品,通常在看失败日志时就能完成,耗时有限。真正拖慢响应的是把环境噪声和脚本问题直接提成缺陷,开发需要逐条排查后才能判断优先级,缺陷列表的有效性被稀释。
为控制节奏,可以约定分流时限,例如执行失败后当个工作日内完成判定并标记归属;环境问题和脚本问题进入各自的处理记录并指定责任人,产品缺陷立即提单。分流记录保留原因和判定人,后续统计环境稳定性和脚本健康度时可以直接使用。
自动化执行结果能否直接同步到用例状态,减少人工回填?
这取决于团队使用的工具链和配置方式。ONES 测试管理支持测试用例与需求、任务关联,未通过的用例可快速创建缺陷任务,用例可分配执行人;自动化脚本执行结果与用例状态之间的自动同步机制,官方资料未给出具体说明,需要在选型或配置时结合实际环境确认。
在确认之前,可以先用人工回填保证流程跑通:执行结束后由自动化工程师把判定结论回填到用例和执行记录,再进入分流。流程稳定后再评估自动同步的可行性,避免因为等待工具能力而让协同机制停摆。
回归范围总是被要求扩大,怎么控制成本?
回归范围扩大通常是因为范围依据缺失,评审时只能凭感觉加用例。控制成本的做法是让每个回归批次都写明范围依据,例如本次变更涉及的模块、受影响的接口和对应的用例覆盖关系;范围扩大时补充变更影响说明,而不是直接追加用例清单。
测试负责人负责决策回归范围,产品与需求方在复核时确认验收口径。范围依据和执行结果一起记录在回归批次中,后续复盘时可以对照实际缺陷分布判断范围是否合理,逐步校准扩大范围的判断标准。
