UI Regression 是一个用于验证 UI 变更的回归测试技能。当用户要求“验证 UI 变更”“测试每个屏幕和操作”“运行回归 QA”“检查已部署的 UI”或“验证……”时,应使用该技能。
用途
该技能用于验证所请求的 UI 从入口到结果是否正常工作,覆盖变更面及其依赖,同时避免把一个小编辑扩大成无关的产品审计。
使用方式
使用当前环境中可用且被允许的浏览器工具。当使用 agent-browser CLI 时,先阅读其技能说明。该工作流不要求特定的浏览器驱动或本地源码访问。
范围与证据
识别目标 URL 或扩展构建、环境、受影响的屏幕、操作、角色、语言区域和尺寸。在可用时检查源码和 API 契约。对于仅部署环境的 QA,从可见导航和所请求的工作流推导覆盖范围。
在工作笔记或现有工件中维护一个紧凑的覆盖台账:屏幕/操作、语言区域/账户状态、预期结果、观察结果、证据以及通过/失败/阻塞/不适用。测试前先盘点,结果到达后更新。截图不能覆盖其上的按钮。
在可观察时记录测试的修订版本或部署版本、浏览器、视口、数据源和构建模式。明确标记未知修订版本。当存在基线时,用匹配的内容、状态和尺寸比较视觉。
当被要求测试每个功能时,要覆盖每个已盘点的操作。不要静默省略被阻塞的检查,也不要强加任意的 bug 数量停止点。
真实行为与安全边界
在授权环境中,将实际 UI、API 和持久化一起演练。模拟的 UI 测试加上直接的端点测试并不能证明它们的集成。
使用夹具或隔离的测试环境来复现加载、空、失败和恢复状态。不要向生产环境注入故障。将夹具结果与实时集成和打包扩展结果分开。永远不要将模拟播放呈现为真实的第三方播放。
对于副作用,使用专用测试账户和测试模式资源。现有任务授权仍然适用。仅 QA 本身不授权支付、电子邮件、生产变更或更广泛的访问。除非所请求的工作流授权更多,否则优先进行只读的部署检查。
如果凭据、浏览器能力、源码访问或外部依赖阻塞了某项检查,记录确切的边界。继续独立的检查。永远不要绕过浏览器保护或用模拟替代来声称通过。
操作与恢复
在授权的副作用边界内,点击每个受影响的按钮、链接、菜单项、开关和提交控件。验证其目标或持久化结果。对于新标签页链接,检查新标签页和重定向,而不是判断未更改的打开者。
演练适用的加载、空、成功、失败和重试状态。检查忙碌控件是否防止重复提交、重试是否恢复、成功是否在确认之后。故意失败的请求不应让页面卡在加载状态。
对于表单/偏好设置,测试验证、保存失败/重试、取消和 Escape、重新打开、重新加载持久化以及无关值的保留。在支持时覆盖默认值和全部取消选择。
对于认证变更,覆盖已登出、已登录、会话过期、登出失败/重试和账户切换。验证受保护操作是否强制执行访问权限,以及账户变更是否不会重用另一个用户的数据。
对于变更的信用、配额或请求行为,验证所有权、新操作与重复操作、耗尽、无限制访问和重复提交。使用隔离的测试后端进行故障注入和访问控制探测。不要枚举或更改真实用户的记录。
检查相关的直接入口、刷新、后退/前进导航、中断和重复操作。一旦理解了失败就停止重试,尤其是当请求可能产生副作用时。
语言、布局与反馈
在每个支持的语言区域中测试每个范围内的屏幕,包括临时标签和错误。检查语言检测/回退、本地化目标、自然文案和混合语言字符串。
选择适合该表面的窄、中、宽尺寸,包括扩展的实际弹出尺寸。检查换行、溢出、滚动访问和长标签。
比较截图中的布局、间距、排版、颜色、品牌资产和媒体。在受影响时检查媒体加载、状态/类型、尺寸、宽高比和播放。
演练键盘顺序、焦点可见性、可访问名称、对话框焦点包含/恢复、Escape,以及在支持时进行自动化可访问性扫描。检查按下/加载/成功/错误反馈和减少动态效果。将扫描限制与手动检查分开报告。
检查控制台和网络错误、失败的资产、重定向和意外的 4xx/5xx 响应。区分有意失败和回归。在将过时 UI 归因于代码缺陷之前,验证浏览器已加载当前候选版本。
浏览器扩展
仅对受影响的扩展行为应用这些检查。
在支持的浏览器中加载生产构建。演练涉及的 popup、后台/service worker、内容脚本、消息传递、存储和主机权限。localhost 组件预览不能验证扩展 API 或浏览器权限。
在相关时检查 popup 关闭/重新打开、扩展重新加载、service-worker 重启和账户变更消息。验证监听器、计时器和注入的 UI 不会重复。
对于播放器 UI,测试站内标题导航、视频元素替换、全屏进入/退出、关闭和预期重新打开、对话框暂停/恢复以及跨标题/账户保存的过滤器。在可访问时验证实际播放器中的播放效果。
检查发布归档中的预期版本、本地化元数据、根清单、引用的资产和生产来源。排除 QA 夹具、凭据、嵌套归档、开发加载器和 localhost 引用。
针对测试候选版本完成
对于有源码访问的本地更改,运行仓库的干净安装、适用的测试/lint/类型检查和生产构建。当打包、依赖、环境或渲染发生变化时,测试生产输出。仅部署环境的 QA 不需要本地检出或重新构建。
修复后,针对最终候选版本重新运行失败的用例和受影响的相邻流程。将证据与该版本关联。不要重用早期的截图作为后续更改的证明。
在授权范围内修复,否则报告可复现的发现,包括预期/实际行为和证据。检查已部署 UI 的请求本身不授权编辑或部署。
如果请求部署,先解决发布阻塞性失败,然后验证部署的修订版本、相关路由和服务健康。当更改或托管升级影响持久化存储/域绑定时,检查它们。仅推送或健康的根页面不是部署证明。
报告覆盖计数,将阻塞检查分开,关键发现、运行的命令、版本、语言区域/视口、证据链接和剩余风险。未知的真实工作流不是通过,成功的构建不是完整的 QA。
将证据保留在发布资产之外。从发布输出中排除任务创建的 QA 夹具,而不删除现有的源夹具,并仅重置为此工作创建的浏览器覆盖/会话。保留用户标签页和无关工作。