dogfood
作者 vercel-labs通过结构化缺陷报告、截图和视频,自动化执行任意 Web 应用的探索式 QA。dogfood 会驱动 agent-browser 客户端探索目标站点,发现视觉、功能、UX、性能、console 和可访问性问题,并输出带有清晰复现步骤的、可直接分享的 QA 报告。
Overview
What the dogfood skill does
dogfood 技能使用 agent-browser 客户端自动化执行 Web 应用的探索式测试。它会有步骤地探索目标网站或应用,从视觉 UI、功能、UX、性能、console 到可访问性等多个维度寻找缺陷,并生成包含以下内容的结构化 QA 报告:
- 清晰的缺陷标题和分类
- 严重程度级别(critical、high、medium、low)
- 其他同事可以直接跟随的复现步骤
- 按步骤排列的截图
- 在需要时,为交互类问题生成复现视频
当你被要求去“dogfood”“做 QA”“exploratory test”“bug hunt”或“测试这个 app/site/platform”,并且需要可以直接交付给工程师、设计师或产品经理的证据时,dogfood 尤其有用。
Who dogfood is for
在以下场景中适合使用 dogfood 技能:
- QA 工程师和 SDET,希望有可重复的探索式运行和丰富的复现证据。
- 前端和全栈工程师,需要在发布前对改动做 sanity check。
- 产品经理和设计师,需要快速获得带实例的 UX 和 UI 反馈。
- 创业公司和小团队,没有专职 QA,但仍然需要系统化地发现问题。
When dogfood is a good fit
以下情况 dogfood 非常适合:
- 你的目标是一个基于浏览器的 Web 应用或网站(公网域名或
localhost)。 - 你希望端到端地探索关键流程,而不是只跑一条固定脚本用例。
- 你同样在意 UX 和 UI 打磨,而不仅仅是功能性 bug。
- 你需要可分享的输出(截图、视频和 markdown 报告),可以直接接入现有工作流。
以下情况则不太适合:
- 你的主要目标是纯后端 API,没有浏览器界面。
- 你只需要 unit test 或底层集成测试,而不是面向真实用户行为的检查。
- 你需要正式的压测或超出探索式交互能力范围的合成性能指标。
How dogfood works at a high level
在 vercel-labs/agent-browser 仓库中,dogfood 会用如下配置驱动 agent-browser 客户端:
- 在浏览器中要打开的 target URL
- 可选的 session 命名、scope 和 output directory
- 在需要登录时,可选的 authentication steps
- 用于保持发现结果一致性的参考 issue taxonomy(
references/issue-taxonomy.md) - 用于组织最终 QA 报告结构的 report template(
templates/dogfood-report-template.md)
随后,该技能会驱动浏览器走过关键用户流程,在发现问题的同时捕获截图和视频,并以统一的格式记录下来。
How to Use
Prerequisites
要高效使用 dogfood,你需要:
- 能访问
vercel-labs/agent-browser仓库中的agent-browser客户端 - 被测应用或站点的 URL,如
https://example.com或http://localhost:3000 - (可选)如果应用需要登录,则准备测试账号
该技能围绕上游文档中提到的直接 agent-browser binary 设计,而不是 npx agent-browser。这样可以充分利用 Rust 客户端的高性能。
Installing the dogfood skill
在你的 agent skills 环境中通过以下命令安装该技能:
npx skills add https://github.com/vercel-labs/agent-browser --skill dogfood
这会从 vercel-labs/agent-browser 仓库中的 skills/dogfood 拉取 dogfood 技能定义,包括:
SKILL.md– 主要说明和运行时预期references/issue-taxonomy.md– 如何对问题进行一致的分类templates/dogfood-report-template.md– 最终报告的 markdown 模板
安装完成后,在 Files 选项卡或本地仓库中打开这些文件,在首次运行前先行了解。
Core configuration: required and optional inputs
dogfood 技能提供合理默认值,方便你快速启动测试。
必填参数
- Target URL – 你想要 dogfood 的 Web 应用或网站
示例:vercel.com、https://example.com、http://localhost:3000
带默认值的可选参数
-
Session name
默认值:域名的 slug 形式(如vercel.com→vercel-com)
自定义示例:--session my-first-dogfood-run -
Output directory
默认值:./dogfood-output/
自定义示例:Output directory: /tmp/qa -
Scope
默认值:整个应用
自定义示例:Focus on the billing page、Only test onboarding and settings、Ignore marketing pages -
Authentication
默认值:无
自定义示例:Sign in to user@example.com(你再通过常用的安全渠道提供账号密码)
如果有人说“dogfood vercel.com”,该技能的目标是直接用默认配置启动,只有在需要登录但没有提供账号时,才会停下来询问补充信息。
Typical dogfood workflow
可以参考下面的流程来稳定地开始每一次 Web 应用测试:
1. Initialize a dogfood session
先决定本次要覆盖的范围,以及结果要存放在哪里。例如你可以:
- 选择一个 target URL(本地开发环境如
http://localhost:3000,或某个 staging 域名)。 - 可选地指定一个 session name,区分不同的运行。
- 如需将结果存入共享目录,可自定义 output directory。
然后在启用 dogfood 技能的前提下运行你的 agent,并按照 SKILL.md 中的说明在 prompt 或配置中提供上述参数。
2. Authenticate if needed
如果应用需要登录:
- 提供清晰指令,例如:
Sign in to qa-user@example.com。 - 确保通过你的常规安全流程提供测试账号。
dogfood 会将登录视为探索流程的一部分,从而在登录后的页面也能发现问题。
3. Explore key user journeys
在选定的 scope 内,dogfood 会驱动浏览器覆盖典型用户路径,例如:
- 新用户 onboarding 或注册流程
- 登录和账号管理
- 核心产品操作(创建、编辑、删除实体)
- 在主要模块之间导航
- 设置、计费或个人资料页面
探索过程中,它会使用 references/issue-taxonomy.md 中的 issue taxonomy,持续发现并统一归类问题。
4. Capture issues with evidence
对于每个发现的问题,dogfood 会尽量收集:
- 简明、清晰的 issue title
- Severity:critical、high、medium、low
- Category:visual、functional、ux、content、performance、console、accessibility
- 问题出现的 URL
- Repro video 路径(针对交互类问题),静态问题则为
N/A - Step-by-step screenshots,方便任何人按图操作
这些结构与 templates/dogfood-report-template.md 中的格式保持一致。
5. Generate the dogfood report
探索结束后,该技能会基于 templates/dogfood-report-template.md 输出一份 markdown 报告:
- 带有不同严重程度计数的 summary table
- 详细的 Issues 部分,每个问题都包含描述及带截图标注的复现步骤
你可以把这份报告放在代码仓库里、附到工单里,或直接分享给团队成员。
Customizing dogfood for your workflow
虽然默认配置开箱即用,你仍可以根据自己的 QA 流程对 dogfood 做一些适配:
- 使用团队统一的 output directory,如
/tmp/qa或共享网络盘。 - 收窄 scope,聚焦计费、checkout 或新功能等高风险区域。
- 通过阅读和引用
references/issue-taxonomy.md,将严重程度和分类定义与团队内 QA 标准对齐。 - 对生成的 markdown 报告做后处理:将单个问题复制到缺陷管理系统,或直接附上整份报告。
Files worth reviewing in the repository
如果想深入理解 dogfood 技能,建议优先查看:
SKILL.md– 权威说明文件,描述技能行为以及可调用的工具。references/issue-taxonomy.md– 定义严重程度、问题分类和探索检查清单,帮助多次运行之间保持一致。templates/dogfood-report-template.md– 展示最终报告中问题和 session 概览的具体格式。
FAQ
Is dogfood a unit test or end-to-end test framework?
不是。dogfood 技能主要面向 Web 应用的探索式、用户中心 QA。它通过 agent-browser 驱动浏览器,模拟人工测试者的行为,探索各种流程并记录带证据的缺陷。它不会取代unit test、integration test 或代码级测试框架,而是通过捕捉视觉、UX 和交互问题,起到互补作用。
What kinds of issues can dogfood detect?
Dogfood 围绕 references/issue-taxonomy.md 中定义的 issue taxonomy 设计,鼓励你记录如下问题:
- Visual / UI issues:布局错乱、文本重叠、响应式异常、颜色对比不足、图标或图片显示错误等。
- Functional bugs:链接失效、按钮无响应、表单提交失败、错误跳转、状态丢失、文件上传/下载异常等。
- UX issues:导航混乱、缺少反馈、标签不清晰、交互迟钝或无响应等。
- Content issues:拼写错误、术语不一致、文案过时等。
- Performance issues:探索过程中明显感知到页面或交互缓慢。
- Console issues:使用过程中浏览器 console 中出现的报错或警告。
- Accessibility issues:缺少 alt 文本、存在键盘陷阱、焦点管理不佳等可观察到的问题。
通过该 taxonomy,可以让不同 dogfood session 之间更系统、更可对比。
How do I start a quick dogfood run against a new site?
当有人说“dogfood example.com”时,你可以这样操作:
- 确认已从
vercel-labs/agent-browser安装 dogfood 技能。 - 调用你的 agent,启用 dogfood 技能,并仅提供 Target URL。
- 让技能使用其 默认设置:session name、scope(整个应用)和 output directory,除非你有特定的自定义需求。
这样就能立即开始测试,无需冗长的配置过程。
Does dogfood require authentication to work?
不需要。对于无需登录的公共站点和营销页面,dogfood 可以直接工作。
如果你的应用在关键流程中需要登录,你应该:
- 明确说明需要 authentication(例如:
Sign in to user@example.com)。 - 通过惯用的安全渠道提供账号凭据。
之后,该技能会把登录当作 session 的一部分,从而探索登录后的受保护区域。
Where can I see how issues are categorized and reported?
在 vercel-labs/agent-browser 仓库中,有两个关键参考:
references/issue-taxonomy.md– 解释 severity levels、issue categories,并提供 exploration checklist。templates/dogfood-report-template.md– 展示 Dogfood Report 的结构,包括概要表、以及每个问题块的字段,如 Severity、Category、URL、Repro Video、Description 和带截图的 Repro Steps。
在首次运行前阅读这些文件,有助于你理解并按需定制 dogfood 技能生成的报告。
When is dogfood not the right tool?
在以下场景中,dogfood 并不是理想工具:
- 你要测试的是 非浏览器系统(CLI 工具、桌面应用、后端服务),
agent-browser无法与之交互。 - 你需要的是压测或合成性能指标,而不是基于主观体验的性能观察。
- 你希望在 CI 流水线中嵌入高度细粒度、代码驱动的测试;这时应使用传统测试框架,并将 dogfood 作为补充。
在这些情况下,应将 dogfood 视为一个关注真实浏览器行为的可选补充层,而不是其他测试工具的替代品。
