mcpField
G
git-qa

git-qa

本地服务
meta-taro.github.io开发工具1今天更新

关于 git-qa

git-qa 是开源的人机协作 QA 测试运行器,支持 Android、iPhone、网页和桌面应用的测试表。AI Agent 执行用例时,由人员查看实时画面并签署判定,系统同时记录证据。

主要功能

  1. 01AI 驱动测试表执行
  2. 02实时画面审查
  3. 03人员签署用例判定
  4. 04记录姓名、时间和屏幕证据
  5. 05支持 Android、iPhone、网页和桌面应用

适用场景

  1. 01在发布检查中审查回归测试表
  2. 02记录每个用例由谁验证
  3. 03让 Agent 夜间运行测试以供审查
  4. 04通过 MCP 操作设备或应用

MCP 相关

AI Agent 可通过其 MCP 服务截图、读取屏幕、列出可按名称操作的控件,并按名称点击,覆盖所支持的目标。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

暂未收录安装方式

我们还没有获取到这个服务的安装包或远程地址,请按项目 README 中的说明安装。

代码仓库

工具

还没有获取到工具列表

本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。

详细介绍

git-qa

测试表会自行运行。你只需观看,并用一个按键确认每个用例。

git-qa 是一款开源的 人在回路中的 QA 执行工具。AI Agent 会在 Android、iPhone、Web 和桌面应用上执行你的测试表;你观看实时画面,并确认每个用例,证据会记录由谁验证了什么。AI Agent 也可以通过 MCP 驱动它。

日本語版はこちら / 日语版 · 下载

git-qa 正在运行测试表:左侧是用例,中间是实时画面,AI 正指向它发现的内容,右侧是单键判定

左侧:测试表中的用例。中间:AI 驱动页面、设备或应用时的实时画面——红色标记指向它发现预期文本的位置。右侧:每种判定对应一个按键——D 表示通过,F 表示失败。按下按键时,你的用户名会写入证据。(界面以日语显示;也支持英语。)

适用场景

没人想再手动点一遍的发布检查。 你有一份包含 30 行的回归测试表,涉及 Android 应用、网页和桌面应用。 与其手动逐项点击,不如让 AI 按照测试表执行,同时你观看实时画面,并为每个用例按下一个按键。只有出现变化或失败时,你才需要停下来仔细查看。

“到底是谁检查了这个?” 发生事故后,客户、审计员或你自己的团队提出了这个问题。证据会给出答案: 每个用例都会标记为 VERIFIED(有人查看并确认)或 AUTO_PASS(AI 判定通过,但没人查看),并记录姓名、时间以及当时的屏幕画面。

AI Agent 构建了这个功能——现在应该让它在真实设备上检查功能。 通过 MCP,Claude Code(或任何 Agent)都可以在 Android、Web、桌面应用或 iPhone 上截图、读取屏幕、列出可按下的内容并点击。 它可以在夜间无人值守地运行测试表(--no-ui);早上你再检查失败项。是否通过,仍由你来判定。 该服务已在官方 MCP 注册表中列为 io.github.meta-taro/git-qa;它直接从此克隆版本运行(没有 npm 包)。

试用

  1. 从分发页面下载应用(macOS、Windows x64 / ARM64),并安装 Node 22+
  2. 打开 git-qa。输入用户名(会作为“检查者”写入证据),选择要检查的目标——adb 设备、网页 URL 或按名称指定的桌面应用——以及测试表
  3. 开始运行、观看,并为每个用例按下 D / F

选择检查目标:网页 URL、按名称指定的桌面应用或 adb 设备

逐个用例运行——AI 执行每个步骤(按下按钮、重新打开页面、再次按下按钮),你按下 D,用例就会标记为 VERIFIED / qa,然后开始下一个:

运行过程:AI 按下按钮并找到结果,重新打开页面并发现页面已重置,再次按下按钮;每个用例都通过按下 D 得到确认

测试表是可以用任何电子表格编写的 TSV——示例位于 sheets/。 也可以从源代码运行:git clone … && pnpm install && pnpm app(参见安装)。

为什么这样设计

这不是一种把验证工作交给 AI,再让它宣称“一切通过”的工具。出了问题时,负责人仍要承担责任——“是 AI 做的”不是任何人会接受的解释。

因此,git-qa 将工作拆分开来:

  • AI 负责操作设备、浏览器或桌面应用,并按照测试表执行
  • 人负责观看,并用一次按键给出判定
  • 证据记录由谁查看了什么,以及查看时间
词汇才是关键
值含义
VERIFIED有人署名确认了
AUTO_PASSAI 判定通过。无人查看
FAIL未通过
BLOCKED无法运行——未满足前置条件
SKIP未运行

简单的 PASS 会把前两种情况合并成一个值。防止这种合并,正是这个工具存在的意义。

你可以在没有查看的情况下标记 VERIFIED。这是一个特性,不是漏洞。 你按下按键的那一刻,你的用户名就会写入证据。这是签名,不是锁。这里没有反作弊机制——加入这类机制会让这个旨在节省精力的工具变得难以使用。

它可以驱动什么

Android 设备通过 adb 操作真机和模拟器——点击、滑动、输入
网页Chrome / Edge / Firefox / Safari。每次运行都使用相同的视口,便于比较
桌面应用macOS(辅助功能 + Vision OCR)和 Windows(UI Automation)
iPhone / iPad通过 USB 查看、读取和录制。通过 WebDriverAgent 点击、输入、滑动和启动应用;你需要自行签名并安装到设备上(指南)。已在真机 iPhone(iOS 17.5.1)上试用
移动浏览器通过 adb forward + CDP 操作 Android Chrome。通过上述 iPhone 路径操作 iOS Safari。尚未试用
通过 AI Agent 操作通过 MCP——截屏、读取屏幕、列出可点击的名称、按名称点击。支持 Android、网页、桌面应用或 iPhone / iPad

git-qa 驱动真机 iPhone:通过 WebDriverAgent 打开了 Clock 应用并点击了 Stopwatch 标签页,AI 判定结果为 AUTO_PASS

通过 WebDriverAgent 驱动的真机 iPhone:git-qa 启动了 Clock 应用并点击了“Stopwatch”。测试用例正在等待人工判定。

证据的内容

每次测试运行对应一个文件夹。若要将测试本身纳入版本控制,请提交整个文件夹。

<workspace>/
  git-qa.json        marks this folder as one test project
  sheet.tsv          the test sheet
  runs/
    20260914-100000/
      run.json       verdicts, steps, who placed them and when
      case-001/
        screen.webp  the screen at the moment the verdict was placed
        screen.webm  video of the run — **only when asked for** (`--record`)

证据中不会包含任何关于你机器的信息:路径都相对于工作区,因此任何人的机器上,同一次运行都会呈现相同内容。

要求

  • Node 22 或更高版本——必需。应用会启动一个运行器进程
  • Android 需要 adb,网页需要浏览器——仅在使用时需要
  • ffmpeg / cwebp——可选。没有它们时,证据会保持捕获时的格式,不进行压缩

安装

从分发页面下载,或从源代码运行:

git clone https://github.com/meta-taro/git-qa.git
cd git-qa
pnpm install
pnpm app

macOS 版本经过签名和公证。Windows 版本未经签名——你会看到“Windows 已保护你的电脑”;选择运行前,请先检查源代码。

若要了解这台机器实际能做什么——这是实测结果,不是猜测:

pnpm doctor

应用也会在启动界面显示自身版本(“This git-qa is v0.2.0-beta.20”)。请在错误报告中粘贴这一行——它能确定你说的是哪个构建版本。有更新版本时,同一位置也会显示提示;git-qa 绝不会自行替换自己。

状态

Beta 版。目前有三款产品正在使用。各版本的说明中列出了尚待完善之处,而且任何失败都不会悄无声息——如果某个步骤无法运行,系统会记录为“需要人工完成”,而不是判定通过。

错误报告和功能请求:Issues。 请在遇到问题后立即用自己的话写下来。 总结会丢失真正让你感到不便的部分。

许可证

MIT——请参阅 LICENSE。

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。