# dsh-qa · 质量工作台
[](./LICENSE)
[]()
[]()
[]()
[](https://github.com/deepseek-ai/deepseek-harness/releases/tag/dsh-v0.1.6-alpha.1)
**dsh-qa** 是 DeepSeek Harness 的本地 QA 工作台:在一个项目空间中管理需求、测试用例、风险、执行、证据和交付决策。项目与迭代的对话复用 DSH 原生会话,并自动使用「测试模式」(preset id: `qa`);业务数据保留在本机,运行时没有生产依赖。
当前实现版本是 `v0.4.1`,已针对 `dsh-v0.1.6-alpha.1` 在真实宿主完成 4/4 host smoke。npm 包、Git tag 和 GitHub Release 的发布状态仍分别以对应交付记录为准。
```
测试首页 → DSH 测试对话 → 项目看板 → 日历排期
```
## 目录
- [功能特性](#功能特性)
- [安装(DSH 插件)](#安装dsh-插件)
- [npm 安装与更新(独立运行)](#npm-安装与更新独立运行)
- [快速开始(不装插件体验)](#快速开始不装插件体验)
- [质量工作流](#研发质量控制工作台0205-质量域)
- [独立运行模式](#独立运行模式)
- [架构](#架构)
- [AI 工具集](#ai-工具集)
- [配套 QA 技能库](#配套-qa-技能库)
- [开发与贡献](#开发与贡献)
- [路线图文档](#路线图文档)
- [许可证](#许可证)
- [常见问题](#常见问题)
## 功能特性
### 测试项目管理
- **项目与迭代双形态**:顶层对象可选「测试项目」或「迭代」(迭代可挂靠父项目),两者均绑定独立 DSH 会话,筛选栏可分别查看
- **测试首页与日历排期**:在办项目、临期/逾期里程碑、待审批门禁、未关闭缺陷、最近动态同屏呈现;日历支持年/月/日跳转、点击日期新增、按项目登记里程碑或日程并直接删除
- **实时看板**:六列流水线(需求分析 → 用例设计 → 用例评审 → 执行中 → 缺陷回归 → 已发布),拖拽换列,SSE 实时推送,多窗口同步
- **项目档案工作区**:宽屏项目详情集中编辑名称、编号、产品、负责人、摘要和阶段;概览、质量任务、需求、用例、缺陷、里程碑、报告、知识、纪要和门禁 10 个分区,并展示进度、AI 策略、成员、文件目录与阶段时间线
- **本地项目目录**:创建项目时可自动生成 `01_需求与范围 / 02_测试计划 / 03_测试用例 / 04_测试数据与脚本 / 05_测试执行 / 06_缺陷 / 07_测试报告 / 08_发布与归档` 八级工作目录;删除项目记录不会删除文件夹
- **门禁治理**:需求评审/策略评审/用例评审/报告评审/发布/结项由 AI 提交申请,测试负责人人工审批(对齐 AI 研发质量分析 8 阶段工作流)
### 研发质量控制工作台(0.2–0.5 质量域,已进入 v0.4.0 基线)
- **质量任务与来源快照**:围绕单个测试目标创建质量任务,服务端采集并校验需求、工作区文件或允许的 Git 修订来源;记录摘要、指纹、验收标准、风险、测试范围和分析决策,避免把客户端提交的路径或内容当作可信输入
- **测试计划与受控执行**:质量任务下维护可评审的测试计划和不可变执行配置版本;只允许基于当前已评审计划、当前配置版本和来源摘要生成预览令牌,再启动最小化环境中的本地受控测试运行
- **证据、分析与回归**:终态运行可归档为带完整性校验的证据包;支持失败分析、人工确认后升级缺陷、同计划运行前后对比,以及可追溯、可排除的确定性回归集
- **计算型质量门禁**:依据执行来源、已验证证据、关键测试结果和风险状态计算 `PASS / WARN / BLOCK`;可查看交付报告与趋势,仅允许对合格的警告项创建带责任人、原因和过期时间的受控例外
- **项目详情直达**:首页在办项目和项目看板卡片主体可直接进入完整项目详情;首页最多展示 5 个在办项目,全部项目仍可在项目看板查看
#### 质量交付流程参考

流程图描述的是质量控制边界:未形成终态运行或未验证证据时,先进入故障分析与回归并重新执行;门禁 `PASS` 才进入交付,`WARN / BLOCK` 需要评审。例外只能作用于可豁免的 `WARN` 检查项,不能把 `BLOCK` 变为通过。
### AI 协作能力
- **可控 AI 模式**:每项目可选全流程辅助、按需协作,或完全关闭自动辅助;自动提取与首页提醒也可分别关闭
- **AI 材料上板**:AI 从对话自动登记需求(可关联用例与验证目的)、测试用例(含优先级、需求追踪 `trace`、风险标签与三态)、缺陷(严重级别基于业务影响,含复现频率与影响范围)、里程碑(自动算截止日,逾期/临期徽章)、日程、测试知识、会话纪要、测试报告(版本链),并支持登记 Playwright/Pytest 等自动化结果;每次登记实时出现在看板卡片与材料流
- **DSH 技能与命令**:每项目独立绑定 DSH 会话;“技能与命令”面板支持分类、搜索和点击插入,输入 `/` 出现即时建议,执行结果直接回显在工作台
- **QA Skill 安装页面**:左侧 `QA Skill安装` Tab 按「测试类型 / 测试工作流程 / 加强版」展示 Skill;测试类型继续按「需求与策略、用例与评审、功能与兼容、接口与自动化、质量保障专项、缺陷、报告与审查」分组,支持中英文切换、搜索、官网详情和一键安装到 DSH
- **DSH 单一对话与模型切换**:只使用本项目 DSH 测试模式会话,模型切换器动态读取 DSH 原生模型目录,不存在插件内第二套模型
### 界面与连接
- **中英文语言切换**:顶栏「中 / EN」按钮一键切换,默认中文,选择在本机浏览器中持久保存;导航、首页、看板、列表、日历、雷达与抽屉/模态框标题均双语化
- **可调工作区**:主导航、项目栏与项目雷达均可拖动边缘改变宽度,可分别收起;双击边缘恢复默认,提供紧凑、标准与专注对话预设,选择在本机浏览器中持久保存
- **四套 QA 主题**:质量仪表、终端、极简与赛博四套完整皮肤;赛博主题可随时触发“BUILD PASSED”场景
- 逾期里程碑红标、7 日内临期黄标、待批门禁紫标,顶栏实时统计
## 安装(DSH 插件)
请使用**启动 DSH 的同一种方式**管理插件:`dsh web` 是 `dsh --profile web` 的别名,下面两组命令都操作同一个 `web` profile。
### 方式一:通过 npx 启动 DSH
```bash
# 安装 dsh-qa 插件
npx @deepseek-ai/dsh plugin --profile web add dsh-qa
# 更新到 npm 的 latest 版本
npx @deepseek-ai/dsh plugin --profile web update dsh-qa
# 安装或更新后启动/重启 Web UI
npx @deepseek-ai/dsh web
```
### 方式二:从 DeepSeek Harness 源码仓库启动
在已完成 `pnpm install` 和 `pnpm run build` 的 Harness 仓库根目录运行:
```bash
# 安装 dsh-qa 插件
pnpm dsh plugin --profile web add dsh-qa
# 更新到 npm 的 latest 版本
pnpm dsh plugin --profile web update dsh-qa
# 安装或更新后启动/重启 Web UI
pnpm dsh web
```
如需固定到 GitHub 或本地开发副本,可在两种方式的 `add dsh-qa` 中分别替换为 `add github:naodeng/dsh-qa` 或 `add link:/path/to/dsh-qa`。安装或更新后重启 Web UI(插件在宿主启动时加载)。GUI 侧边栏会出现「质量工作台」入口;点击可在会话区打开,工具栏可在独立标签页打开。
> **模型与 API**:工作台不维护第二套 API Key 或模型配置。每个测试项目绑定一个以项目文件夹为工作目录的 DSH 原生会话,并自动使用「测试模式」(preset id: `qa`)。模型列表、模型切换、技能、命令、工具和权限策略全部来自 DSH;新增服务商或模型请在 DSH 设置中配置。
>
> 旧项目如果绑定的是空白标准模式会话,工作台会直接切换为测试模式;如果旧会话已有对话,则保留原会话历史,自动新建并改绑一个测试模式会话。
## npm 安装与更新(独立运行)
```bash
# 需要 Node.js 18+
npm install -g dsh-qa
qabench # → http://127.0.0.1:8899
# 升级到 npm 的 latest 版本后,重新启动工作台
npm update -g dsh-qa
qabench
```
此方式只启动本地 QA 工作台;如需在 DeepSeek Harness 中使用会话、模型、技能和命令,请按上方「安装(DSH 插件)」步骤安装插件。
## 快速开始(不装插件体验)
```bash
# 需要 Node.js 18+
git clone https://github.com/naodeng/dsh-qa.git
cd dsh-qa
npm start # → http://127.0.0.1:8899
```
首次启动会创建一个示例项目和一个示例迭代,包含需求、用例、缺陷、里程碑、报告和待审批门禁,可直接在首页、看板和日历中体验。独立模式可管理本地项目数据;DSH 对话、模型、技能和命令需从 DSH 侧边栏打开插件后使用。
## 独立运行模式
```bash
npm start # 或双击 start.command
# → http://127.0.0.1:8899 (数据目录:<项目>/data)
```
独立地址可查看和管理测试项目、看板与日历;DSH 对话、模型、技能和命令必须从 DSH 侧边栏打开插件后使用。
## 架构
```
lib/index.js 宿主半(cordis 插件):进程内拉起工作台 + /api/dsh-qa 路由 + 系统提示播报
lib/client.js 浏览器半(v0.4.0):DOM 侧边栏入口 + 会话区 iframe;0.5 计划迁移官方 Panel/Slot API
cordis.patch.yml profile bundle 补丁(插入插件行)
server/ 工作台服务(原生 http + SSE;项目、质量任务、执行、证据与门禁数据)
public/ 四视图前端(原生 JS,无构建步骤;相对路径,可挂任意前缀)
```
**路由**:`/api/dsh-qa/info`(状态)、`/api/dsh-qa/workbench/`(同源镜像代理,SSE 透传)。同源 iframe 还通过 DSH 当前的 `session/*`、`agentPresets/*`、`skills/*` 与 `commands/*` 接口连接原生会话;全部带 loopback 护栏。
**数据目录**:插件模式 `~/.dsh/dsh-qa/`(项目与本地材料);独立模式 `<项目>/data/`。DSH 对话由 DSH 自身持久化。工作台与 DSH 都保持监听 `127.0.0.1`。
## AI 工具集
工作台内置 23 个 QA 域工具,供 DSH 会话通过函数调用实时登记数据并更新项目与质量任务:
| 分组 | 工具 |
| --- | --- |
| 项目管理 | `project_get` `project_update` `member_add` `project_transition` |
| 需求与用例 | `requirement_add` `testcase_add` `testcase_status` `testcase_link` |
| 缺陷与里程碑 | `defect_add` `defect_status` `milestone_add` `event_add` |
| 沉淀与报告 | `knowledge_save` `minutes_save` `report_draft` `report_draft_save` |
| 门禁与导入 | `gate_request` `testrun_import` |
| 质量任务 | `qa_quality_task_get` `qa_quality_analysis_request` `qa_quality_analysis_save` `qa_quality_risk_decide` `qa_quality_test_scope_suggest` |
## 测试模式 preset(插件模式)
插件模式下,质量工作台对话自动使用 DSH 的「测试模式」(preset id: `qa`)。首次使用 DSH 对话前安装该 preset;仅使用独立模式管理本地项目时无需安装。
```bash
# 一键安装 qa preset 到 ~/.dsh/.agent-presets/qa
scripts/install-qa-preset.sh
# 或预览:scripts/install-qa-preset.sh --dry-run
```
preset 基于 DSH 官方 `standard`(完整编码能力),persona 定制为 QA 测试助手,并内置 QA 质量原则(用例可执行可判定、覆盖正向/异常/边界、缺陷区分事实与猜测、不编造数据)。安装后无需重启,DSH 的 `agentPresets/list` 即可发现 id=`qa`。
## 配套 QA 技能库
工作台对话复用 DSH 原生技能与命令(输入 `/` 检索),可直接安装 [awesome-qa-skills](https://github.com/naodeng/awesome-qa-skills) 的测试技能作为配套能力,并参考 [awesome-qa-prompt](https://github.com/naodeng/awesome-qa-prompt) 的多角色工作流。
在 DSH 侧边栏打开工作台后,进入左侧 `QA Skill安装` Tab 即可浏览和安装技能。页面按当前界面语言展示 `skills/zh` 或 `skills/en`,目录卡片的名称、描述、适用场景和详情链接同步自 [软件测试技能库](https://inaodeng.com/zh-cn/qaskills/),实际安装来源仍是本地 `awesome-qa-skills` 仓库。
安装页的分类顺序与网站保持一致:测试类型(需求与策略、用例与评审、功能与兼容、接口与自动化、质量保障专项、缺陷、报告与审查)、测试工作流程和加强版。安装目标为 DeepSeek Harness 的 `~/.dsh/skills/`;安装完成后重启 `dsh web`,再在新的 DSH 会话中使用。
```bash
# 一键安装当前仓库中的测试类型与测试工作流程技能到 DSH 技能目录
scripts/install-qa-skills.sh # 默认中文全部技能
scripts/install-qa-skills.sh --lang en # 英文技能
scripts/install-qa-skills.sh --skill test-case-writing # 只装单个技能
scripts/install-qa-skills.sh --src /path/to/awesome-qa-skills # 自定义仓库路径
scripts/install-qa-skills.sh --dry-run # 预览不写入
```
安装后重启 `dsh web`,在质量工作台对话中输入 `/` 即可看到技能(如 `/test-case-writing`、`/bug-reporting`、`/requirements-analysis`、`/test-strategy`、`/test-reporting`)。工作台内置的 QA 系统提示已吸收这些库的质量原则:用例按需求追踪 `trace` 与风险标签组织、覆盖正向/异常/边界场景;缺陷区分「观察到的事实」与「原因猜测」、严重级别基于业务影响并记录复现频率与影响范围;报告区分已执行事实、未执行范围与证据缺口。
> **许可证说明**:本插件与 awesome-qa-skills / awesome-qa-prompt 均采用 PolyForm Noncommercial 1.0.0 许可证,仅限非商业用途;本插件仅提供安装指引与质量原则参考,不复制其内容。
## 开发与贡献
- 环境:Node.js 18+;开发或运行测试前执行 `npm ci`
- 运行:`npm start` 独立启动;`npm run dev` 监听重启
- 测试:`npm test` 运行单元/API 测试(node:test)与 Chromium 端到端测试(Playwright);`npm run test:unit` / `npm run test:e2e` 可单独执行
- 测试端口冲突时:`QA_E2E_PORT=8900 npm test`;默认端口仍为 `8899`
- Harness 宿主冒烟:`DSH_WEB_URL='' DSH_HOST_VERSION=dsh-v0.1.6-alpha.1 npm run test:host-smoke`;必须使用启动时打印的带 token URL,让 Playwright 先换取浏览器会话 cookie;该命令不属于标准 `npm test`
- 发布:`npm publish` 后使用 `dsh plugin --profile web add dsh-qa` 安装;模型与密钥由使用者自己的 DSH 配置管理
- 欢迎提交 Issue 与 PR(Conventional Commits)
## 路线图文档
- [版本语义与路线边界](./docs/quality-workbench/2026-09-15-version-map.md):解释 v0.4.0 基线、0.4.1→1.0 当前路线和正式发布版本之间的关系
- [质量工作台文档索引](./docs/quality-workbench/README.md):需求、方案、技术设计和分版实施计划
- [0.4.1 Harness 兼容性矩阵](./docs/quality-workbench/2026-09-15-harness-compatibility.md):记录 `dsh-v0.1.6-alpha.1` 的本地契约、独立浏览器和真实宿主验证证据
- [Post-1.0 Capability Roadmap](./docs/quality-workbench/post-1.0-capability-roadmap.md):Quality Intelligence 前移后,`1.0` 之后的 Obligation、Graph、Adapter、Policy、Multi-Agent 和 Autonomous QE 方向
## 许可证
[PolyForm Noncommercial License 1.0.0](./LICENSE) — 仅限非商业用途,详见 [LICENSE](./LICENSE)。
## 常见问题
- **侧边栏没有入口**:重启 `dsh web` 后生效(插件在宿主启动时加载)
- **模型不可用或鉴权失败**:在 DSH 设置中检查对应服务商、模型和凭据;工作台不单独保存密钥
- **看不到技能或命令**:确认是从 DSH 侧边栏打开,而不是直接访问 8899 独立地址;首次进入某项目时会自动创建并绑定 DSH 会话
- **端口冲突**:自动顺延 8899→8909;插件行可配置 `port`
- **质量门禁显示 BLOCK**:这表示运行、证据或风险尚未满足交付规则;先查看交付报告中的检查项,修复问题或仅对可豁免警告创建带有效期的例外
- **与 DSH 测试模式的关系**:测试业务数据仍由本插件保存;每个项目会话自动使用 `qa` preset,并可调用其中安装的测试工具和技能