SuperAPI AI 工具集

dogfood

测试与质量

查看项目

更新于 10-16 07:31

技能介绍

Dogfood 是一个用于系统化探索和测试 Web 应用的工具,目标是发现 bug、UX 问题及其他缺陷,并为每个发现生成带完整复现证据的报告。

用途

当被要求进行「dogfood」、「QA」、「探索性测试」、「查找问题」等任务时,可使用该工具。它会像真实用户一样操作浏览器,系统性地遍历应用的主要导航和核心功能,寻找异常。

主要能力

  • 仅需提供目标 URL 即可开始,其余参数(会话名称、输出目录、范围、认证方式)均有默认值。
  • 支持按需登录,包括邮箱/密码表单填写及 OTP/邮件验证码(需向用户询问)。
  • 可保存登录状态以便复用。
  • 自动生成带注释的截图、录制复现视频、捕获浏览器控制台错误。
  • 为每个问题记录编号、严重程度、复现步骤及对应截图/视频证据。
  • 探索过程中增量写入报告,避免会话中断导致发现丢失。

工作流程

  1. 初始化:创建输出目录(screenshots、videos),复制报告模板并填写头部字段,启动命名会话并等待网络空闲。
  2. 认证:若应用需要登录,通过快照识别表单引用,填写凭据并提交;成功后保存状态。
  3. 定位:截取初始带注释截图和快照,识别主导航并规划要访问的区块。
  4. 探索:从主导航开始逐层访问各区块,测试交互元素(点击按钮、填写表单、打开下拉/模态框),检查边界情况(空状态、错误处理、边界输入),尝试端到端工作流,并定期检查控制台错误。
  5. 记录问题(复现优先):发现问题后立即记录,不批量处理。交互/行为类问题需录制视频并按步截图;静态/可见类问题(错别字、占位文本、裁剪、错位、加载时控制台错误)仅需一张带注释截图。每个问题分配编号(ISSUE-001、ISSUE-002……)。
  6. 收尾:目标找到 5-10 个记录充分的问题,更新摘要严重性计数,关闭会话,并向用户汇报发现总数、严重性分布及最关键项。

使用方式与命令要点

  • 始终直接使用 agent-browser,不要使用 npx agent-browser,因为直接二进制使用快速的 Rust 客户端,而 npx 通过 Node.js 会明显更慢。
  • 初始化命令示例:mkdir -p {OUTPUT_DIR}/screenshots {OUTPUT_DIR}/videos、cp {SKILL_DIR}/templates/dogfood-report-template.md {OUTPUT_DIR}/report.md、agent-browser --session {SESSION} open {TARGET_URL}、agent-browser --session {SESSION} wait --load networkidle。
  • 认证:snapshot -i 查找登录表单引用,使用 fill 和 click,等待网络空闲,并用 state save 保存状态。
  • 录屏:record start 开始,record stop 结束。视频中填写表单建议使用 type(逐字符输入)而非 fill。
  • 截图与快照:screenshot --annotate 生成带注释截图;snapshot -i 用于查找可点击/可填写元素,不带标志的 snapshot 用于读取页面内容。
  • 滚动使用 agent-browser --session {SESSION} scroll down 300,不要使用 key 或 evaluate。
  • 检查控制台:agent-browser --session {SESSION} errors 和 agent-browser --session {SESSION} console。
  • 当命令互相独立时,可在单个 shell 调用中批量执行以提升效率。

适用场景

适用于对 Web 应用进行探索性测试、质量保证、用户视角的 bug 挖掘,尤其适合需要在报告中附上可复现证据(视频、分步截图)的团队。

限制与注意事项

  • 不阅读目标应用的源代码(HTML、JS、配置文件),所有发现必须来自浏览器中观察到的现象,以用户身份测试而非代码审计。
  • 收集证据前需先验证问题可复现(至少重试一次),无法稳定复现的不算有效问题。
  • 静态问题不应录制视频。
  • 复现视频需控制节奏:动作间加 sleep 1,最终结果截图前加 sleep 2,确保 1x 速度可观看。
  • 禁止删除输出文件,不要中途关闭并重启会话,应向前推进。
  • 找到 5-10 个记录充分的问题即可收尾,证据深度比数量更重要。

参考资料与模板

  • references/issue-taxonomy.md:会话开始时阅读,用于校准查找目标、严重性级别和探索清单。
  • templates/dogfood-report-template.md:复制到输出目录作为报告文件。