视觉测试常见问题:20 个最常见问题的详细解答

视觉测试常见问题:20 个最常见问题的详细解答

你对自动化视觉测试有疑问吗?以下是我们收到最多的问题及解答,按主题分类整理。

基础问题

1. 什么是自动化视觉测试?

自动化视觉测试(即 visual regression testing)是一种通过自动比较应用程序截图来检测非预期视觉变化的技术。

视觉测试的步骤如下: 简化流程:

  1. 捕获参考截图(baseline)
  2. 代码修改后捕获新截图
  3. 逐像素对比
  4. 检测到差异时发出告警

2. 视觉测试和 E2E 测试有什么区别?

E2E 测试 视觉测试
验证功能行为 验证外观表现
"按钮能否提交表单?" "按钮位置是否正确?"
基于数据的断言 基于像素的断言
可能遗漏视觉 bug 检测所有视觉变化

最佳实践:将两者结合使用,实现全面覆盖。

3. 做视觉测试需要会编程吗?

答案完全取决于你选择的工具。市面上大多数解决方案都需要开发能力,这对 QA 团队来说形成了较高的准入门槛。

工具 所需技能 易用性
Playwright / Cypress TypeScript 或 JavaScript、项目配置、依赖管理 仅限开发人员
Percy / Applitools 集成到现有代码、CI/CD 配置 需要技术背景
Delta-QA 无需编程能力 全团队可用

基于代码的工具(Playwright、Cypress)提供了很大的灵活性,但要求测试由开发人员编写、维护和调试。这意味着 QA 需要依赖开发人员来创建或修改测试场景,导致测试流程中出现瓶颈。

Percy 或 Applitools 等 SaaS 解决方案简化了部分步骤,但仍然需要在源代码中进行集成和技术配置。

Delta-QA 采用了不同的方式:其图形界面允许团队中的任何成员——QA、产品经理、设计师——无需编写任何代码即可创建、执行和维护视觉测试。测试场景通过可视化方式构建,baseline 只需点击几下即可管理,结果一目了然。这让 QA 团队能够自主工作,不再依赖开发人员的排期来进行测试。

4. 搭建视觉测试需要多长时间?

方案 初始搭建 前 10 个测试 预计总时长
Playwright(代码) 1-2 天 1 天 2-3 天
SaaS + 代码(Percy) 4-8 小时 4 小时 1-2 天
免代码(Delta-QA) 30 分钟 2-3 小时 3-4 小时

5. 视觉测试能检测哪些类型的 bug?

  • 页面布局错乱(CSS)
  • 元素位置异常
  • 文字被截断或溢出
  • 颜色不正确
  • 图片缺失或尺寸错误
  • 响应式布局问题
  • 字体未加载
  • Z-index 错误(元素重叠)
  • 外边距/内边距错误
  • 依赖更新后的回归问题

技术问题

6. 什么是 baseline?

baseline(即参考基准)是被认为"正确"的截图,后续的截图都将与之进行对比。

baseline 的生命周期包含四个阶段:

  1. 首次执行 — baseline 自动创建
  2. 后续执行 — 每次截图都与 baseline 进行对比
  3. 预期变更 — 更新 baseline 以反映新版本
  4. 检测到 bug — 修复代码,baseline 保持不变

7. 如何处理动态内容?

动态内容(日期、头像、广告)会导致误报。主要有三种解决方案:

  • 排除区域:在对比时遮盖动态区域(日期、计数器),使其被忽略
  • Mock 内容:固定动态数据(固定日期、默认头像),确保每次执行时截图一致
  • CSS 遮盖:通过注入样式表,在截图时将动态元素设为不可见

8. 应该使用什么容差值?

场景 建议容差
关键页面(结账、支付) 0-0.5%
普通页面 1-2%
跨浏览器(Chrome vs Firefox) 2-3%
存在反锯齿 开启 antialiasing 选项,然后设为 1%

9. 逐像素对比是如何工作的?

基本算法分为五个步骤:

  1. 加载 baseline 图片(参考基准)
  2. 加载当前图片(测试截图)
  3. 逐像素比较颜色值(R、G、B、A),如果差异超过阈值则标记为不同
  4. 计算不同像素的百分比
  5. 如果该百分比超过设定的容差,测试失败

高级算法(pHash、SSIM)增加了感知容差,更接近人眼视觉的判断方式。

10. 可以测试多个浏览器吗?

可以,大多数工具支持同时在多个浏览器上进行测试。只需在工具配置中设定目标浏览器(Chrome、Firefox、Safari)即可。

注意:每个浏览器的渲染结果略有不同,因此需要为每个浏览器维护独立的 baseline。

11. 如何测试响应式布局?

只需定义要测试的视口(viewport)并为每个视口执行截图:

视口 分辨率 用途
桌面端 1920×1080 标准显示器
平板端 768×1024 iPad、平板电脑
移动端 375×812 iPhone、智能手机

每个视口会生成独立的 baseline,从而能够检测特定屏幕尺寸下的问题。

工具相关问题

12. 主流的视觉测试工具有哪些?

工具 类型 特点
Percy(BrowserStack) SaaS 面向 CI,非常流行
Applitools SaaS 高级 AI,企业级方案
Chromatic SaaS 专注 Storybook
Delta-QA SaaS/桌面端及私有部署 免代码
Playwright 开源 框架内置,免费
Cypress 开源 通过专用插件
BackstopJS 开源 专注视觉测试
reg-suit 开源 轻量简洁

13. 如何选择合适的工具?

场景 推荐工具
零预算 + 经验丰富的开发人员 Playwright 或 BackstopJS
预算有限 + 混合团队(开发和非开发) Delta-QA
企业级预算 + 需要 AI Applitools
团队完全使用 Storybook Chromatic
高级 CI/CD + 技术型开发人员 Percy

14. 需要多少个视觉测试?

应用类型 建议场景数量
展示型网站(10-20 页) 15-30 个场景
中型电商 40-60 个场景
SaaS 应用 50-100 个场景

黄金法则:从覆盖关键路径开始——80% 用户会访问的页面、转化路径(结账、注册)以及高业务价值的功能。

15. 应该由谁来管理视觉测试?

团队规模 职责分工
初创团队(小型团队) 开发人员负责一切,从创建到维护
成长型团队(中型团队) QA 创建和维护测试,开发修复检测到的 bug
企业级团队(大型团队) QA 负责人制定策略,QA 工程师创建测试,开发将其集成到工作流中,产品经理验证预期变更

实践问题

16. 如何更新 baseline?

baseline 的更新方式因工具而异:

  • 使用图形界面(Delta-QA):只需对每个变更点击"接受为新 baseline"即可
  • 使用命令行工具:通过专用命令一次性重新生成所有 baseline

重要提示:在接受新 baseline 之前,务必审查视觉变更,以免无意中将 bug 也纳入基准。

17. 如何在团队中管理 baseline?

团队管理 baseline 的四个最佳实践:

  1. 将 baseline 与代码一起版本控制 — 提交到同一个仓库中,保持代码和视觉参考的一致性
  2. 按分支工作 — 每个 feature 分支拥有独立的 baseline,避免与主分支冲突
  3. 审查 baseline 变更 — 像对待代码一样对待 baseline 的修改:将其纳入 pull request 进行评审
  4. 指定区域负责人 — 为每组测试指定一个负责人,避免更新冲突

18. 可以测试需要登录的应用吗?

可以,有以下几种方式:

  • 程序化登录 — 测试在每次截图前自动填写登录表单进行登录
  • 保存认证状态 — 将会话状态保存一次,后续所有测试复用,显著加快执行速度
  • 测试环境专用 Token — 在测试环境中,使用专用的认证 Token 绕过登录流程,同时不影响安全性

19. 视觉测试能替代手动测试吗?

不能,它们是互补的:

自动化视觉测试擅长检测回归问题、与已知参考基准进行对比,并提供快速可重复的验证。但是,它们无法发现用户体验方面的问题,也无法判断设计是否符合设计师的"意图"。

因此,手动测试在以下场景中仍然不可或缺:探索新功能、可用性测试、复杂边界用例以及验证应用的整体观感。

20. 视觉测试的未来趋势是什么?

人工智能无疑是当前 QA 市场上最强劲的趋势。然而,有一个重要的细微差别值得关注:AI 代理的非确定性可能与 QA 工程师的核心使命相矛盾——他们的使命是确定性地保证应用程序的正确行为

回归测试必须是可复现和可预测的。如果将非确定性的 AI 直接集成到视觉回归检测流程中,就会在本应追求可靠性的环节引入不确定性变量。测试结果可能因每次执行而异,这与部署流水线所要求的绝对信任是不相容的。

我们认为,真正的趋势是将 AI 用在上游环节:不是用来执行测试,而是用来改进工具的算法。换句话说,AI 应该用于打造更具确定性、更加可靠的测试软件,帮助 QA 团队确信所部署的软件是高质量的。

这正是 Delta-QA 的理念。Delta-QA 没有将 AI 集成到测试循环中,而是持续投入于对比算法的稳健性。数千种 HTML 页面配置组合——复杂结构、深度嵌套、动态内容、跨浏览器渲染差异——都经过系统性测试,以增强检测的可靠性。算法的每个版本都会通过覆盖超过 425 个真实页面的压力测试矩阵进行验证,目标明确:零误报,零漏报。

这种方法确保 QA 工程师拥有一个在每次部署中都值得信赖的工具,没有意外,没有不确定性。


免费试用 Delta-QA ->


延伸阅读