
Company News
Socket Joins New OpenJS Program to Fund Node.js Security Work
Socket is joining the OpenJS Security Stewardship Program to fund Node.js vulnerability research, maintainer remediation, and security releases.
dsh-qa-skills
Advanced tools
DeepSeek Harness (dsh) plugin: 10 testing skills (requirement analysis, test strategy, case writing/review, E2E/API automation, exploratory, regression, bug analysis) + shared core knowledge base — a full QA pipeline as agent skills.
让 AI 像资深测试工程师一样工作。
知识 × 工具 × 决策 —— 面向 Claude Code 等 Agent 的测试工程 Skill 框架。
每一个数字,都来自实测。
方式一:通用安装脚本(自动检测宿主 skills 目录)
git clone https://github.com/fishzjp/qa-skills.git
cd qa-skills
./install.sh # 交互式选择宿主目录(自动检测 ~/.agents/skills 等)
./install.sh --auto # 或全自动安装
方式二:skills.sh 跨 Agent 安装(Claude Code / Cursor / Codex / OpenCode 等 50+ 宿主)
npx skills add fishzjp/qa-skills # 交互式勾选,全装用 --skill '*'
方式三:DeepSeek Harness(dsh)插件(npm 包 dsh-qa-skills)
dsh plugin --profile web add dsh-qa-skills
dsh 原生兼容本仓库格式,走文件路径安装亦可(见下方安装细节);已在 dsh 0.1.0-rc.8 + deepseek-v4-flash 上完成两条安装路径的端到端验证。
core/是共享知识库依赖单元(不可执行任务):安装任一 skill 时必须一并安装,否则引用路径断裂。
cp -r skills/* <skills 目录>/——core/ 必须一起复制,各 skill 以相对路径引用它。ls <skills 目录> 应见 10 个 skill 目录 + core/ + qa-skills.VERSION。~/.agents/skills/(./install.sh --target ~/.agents/skills)或 ~/.dsh/skills/,重启 dsh 生效。./install.sh --target <目录> --link 用软链代替拷贝,git pull 后即更新。./uninstall.sh。Skill 是纯 Markdown 指令文件(frontmatter + 相对路径引用),不依赖特定宿主特性:
| 宿主 | 安装目录 | 状态 |
|---|---|---|
| Claude Code | ~/.claude/skills/ 或 <项目>/.claude/skills/ | ✅ 主要适配对象,评测基于此 |
| 跨宿主共享目录 | ~/.agents/skills/ | ✅ 多 Agent 共读一份,install.sh 默认推荐 |
| DeepSeek Harness (dsh) | ~/.agents/skills/、~/.dsh/skills/ 或 <项目>/.agents/skills/ | ✅ 实测通过(dsh 原生实现 Anthropic Skills 规范;deepseek-v4-flash 全链路验证:识别 / 触发 / 产出) |
| Codex CLI | ~/.codex/skills/ | 🔶 按约定应可用,未系统评测 |
| 其他支持 Skills 的 Agent | 各自的 skills 目录 | 🔶 同上 |
qa 流水线的"阶段间上下文隔离"依赖宿主的子会话 / 子代理能力;宿主不支持时自动退化为顺序会话 + 文件衔接,正确性不受影响(见 DESIGN.md 编排会话模型一节)。
装好后对 Agent 说一句:
帮我测试这个需求:{需求描述 + 仓库地址}
从需求理解、风险与类型决策,到测试报告——完整流水线就此跑通。只需要其中某个阶段(写用例 / 审查 / 转自动化 / 回归范围)时,直接描述需求即可,无需走完整流水线。
| 你说 | 框架做 | 产出 |
|---|---|---|
| "帮我测试这个需求" | qa 编排 9 阶段流水线,检查点等你裁决 | 全套测试资产 + 测试报告 |
| "根据这份 PRD 写用例" | 代码优先:索取仓库、读实现、审出潜在 Bug 再写 | 双轨用例:markmap(人)+ schema.yaml(机器) |
| "这个功能应该怎么测" | Risk Map(评级挂证据)→ 功能域 + 类型域两域决策(十轴全轴必答) | 测试策略.md(含 type_scope 与专项移交包) |
| "审一下这份存量用例" | 独立审查:可测点基准分母 + 覆盖 + 可执行性双线 | 直接修订用例文件 + 审查记录 |
| "把用例转成自动化" | Page Object 规范、监听先于操作、自建数据自清理 | 可运行的 Playwright / pytest 代码 |
| "这个 Bug 帮我定位一下" | 复现 → 读代码到行 → 影响三面分析 → 回归建议 | Bug 条目(根因 / 证据 / 回归) |
exploratory-testing(charter 驱动探索)、api-testing(接口级)、bug-analysis、regression-testing(diff → 回归范围)各自独立可用。
测试用例_markmap.md 是标准 Markdown(markmap 语法):VS Code 装 Markmap 扩展、npx markmap-cli 测试用例_markmap.md 生成交互式 HTML、或粘贴到 markmap.js.org/repl。
AI 写出的用例常常看似专业、实则无法执行——判定模糊、占位符、无判定时限、虚构入口。
同一个需求,本框架的产出长这样:
> 前置:运营账号已登录,进入「营销中台 → 券工场 → 活动列表」
- **TC-02-05 到期自动结束** [P1]
- 操作步骤: 1. 选一张结束时间为 2 分钟后的已发布券「满100减20-测试」 2. 等待到期
- 预期结果: 到期后 1 小时内状态自动变为「已结束」,超过 1 小时未变判失败
核心产出标准只有一条:没读过需求、没人讲解的人,拿着文件能直接开工。 这背后是 skills/core/executability.md 的 8 条硬标准;评测中它是一票否决项——不可执行的用例,覆盖再全也计零分。
把方法论、模板、规则全部塞进一个 SKILL.md,Agent 有效遵循的规则反而更少(Red Hat ACE 实践总结:指令超过 500 行后性能退化)。解法是三层架构:
L1 SKILL.md 头部 触发边界:什么时候用、什么时候不用、交给谁
L2 SKILL.md 正文 工作流:每次触发都要走的主干(≤500 行红线)
L3 references/ + core/ 方法 / 规则 / 模板:按需加载,工作流步骤里显式引用
SKILL.md 只装流程编排,方法细则全部下沉、按需加载——Agent 每一步只面对当前需要的指令。
未装 skill 的模型制定测试策略时,在跨两个模型段位的 30 次评测采样中零显式类型决策——输出里"提到"性能与安全,却从不决定哪些纳入、测多深、哪些明确不测。提到不等于决策;不可审计的策略等于没有策略。
解法是类型决策矩阵(决策层):性能 / 业务安全 / 可靠 / 并发等十个测试类型全轴必答——纳入必须挂信号(G 级信号由脚本扫描并生成预填表)、排除必须留痕(G+S 双清单)、full 档有预算上限,每条决策落盘为机器可校验的 type_scope(V1–V5)。实测:最弱模型类型查全率 0 → 0.88,需求未提、只存在于代码的可靠性/契约轴 0 → 8/9(详见实测效果一节的决策层注)。
文件即流水线状态——每个阶段产出落盘为文件,下一阶段只消费文件而非会话记忆;长流水线不依赖上下文,中断后新会话读文件续跑:
PRD / 代码
│ requirement-analysis
▼
需求模型.md ·················· ⏸ 澄清检查点
│ test-strategy(风险 → 两域决策)
▼
测试策略.md(Risk Map + 类型域十轴决策 type_scope)· ⏸ 预算裁决
│ test-case-writing
▼
测试用例 markmap(给人)+ schema.yaml(给机器)
│ test-case-review
▼
⏸ 执行策略裁决(手动 / Playwright / API)
│ automated-e2e-testing / api-testing
▼
执行产物 + Bug 证据 → bug-analysis → regression-testing
▼
回归清单.md → 测试报告.md
设计动机与关键决策(为什么是 10 个窄 skill、为什么 markmap 是唯一维护源、为什么评测先于扩容)见 DESIGN.md。
在 12 个评测任务上对比:同一模型、同一评测链路,唯一差异是是否注入本框架;数字以异构裁判复评轮为准,如实披露(含反向结果)。完整方法学、原始数据与研究报告在本地评测链路中维护、不随仓库分发;每版 Release 附跨模型增益矩阵快照(Releases),Skill On / Off 产出对照见 examples/:
| 指标 | 无 Skill | 有 Skill |
|---|---|---|
| 用例规格符合度 | 0.26 | 0.98 |
| E2E 代码真实执行(单任务 × 3 采样) | 0/3 可运行 | 1 全过 + 2×(2/3) |
| 植入 Bug 检出率 | — | 75% |
| 产出质量(LLM judge) | 0.70 | 0.76 |
| API 代码真实执行通过率 † | 100% | 99.2% |
| Token 成本 | 1× | 3.3× |
决策层首轮(2026-08-23,类别性判读,未进正式增益表):类型域决策任务(5 个任务,参考答案经双人独立标注复核)在最弱模型 deepseek-v4-flash 上(n=3,注入式上界口径):
- 无 skill 组零显式类型决策——宽容口径亦为 0:输出里"提到"了正确类型,但没有逐轴的纳入/排除决策。盲区在决策纪律,而非类型知识。
- 有 skill 组类型查全率 0 → 0.88(格式锤复验轮);其中需求未提、只存在于代码的可靠性/契约轴,从 0 提升到 8/9。
两个数字均待任务扩容与跨模型梯度轮后进正式增益表。
预注册门判定:同源裁判 4/7、异构裁判 5/8(两者构成不同,含 G1b 方向翻转)。覆盖类增益(异构裁判):用例编写任务口径 +8.7pp(CI[0.5, 15.4],显著)、全任务 +13.2pp(CI[2.8, 26.3],显著)、缺陷检出 +9.7pp(CI[3.3, 16.4],显著)——同源裁判口径为 +3.8pp(宽容偏差已量化并勘误,见 CHANGELOG)。早期单采样的 +29pp 表观增益经多样本复验证实为噪声。
口径边界:评测的注入通道将 skill 全部指令文件预注入(真实宿主为按需加载),"有 skill"一侧的数字是"指令全部在场"的上界——in-situ 探针(n=1)未观测到衰减;成对评审在三种裁判下平局率均超限,胜率指标作废(机制问题)。
skills/ 产品本体(10 个 skill + core 共享知识库)
qa/ 编排入口(薄,无领域知识)
core/ 共享知识库(SKILL.md 仅作安装依赖单元,不参与任务触发):evidence / risk-model /
executability / testing-principles / report-template / case-format /
coverage / schema-extraction / clarify-pattern / test-type-matrix
(类型决策矩阵)/ triage(失败分流规范)+ methods/(4 篇设计方法细则)+ scripts/
(Schema 校验器 + 类型信号扫描器)——被多 skill 消费的内容统一在此
requirement-analysis/ test-strategy/ test-case-writing/
test-case-review/ automated-e2e-testing/ api-testing/
exploratory-testing/ bug-analysis/ regression-testing/
.dsh/ dsh 插件三件套(cordis.patch.yml + plugins/qa-skills.js,清单见 package.json 的 dsh.bundle)
docs/ 设计文档(DESIGN / 决策层设计 / v2 规划)
examples/ Skill On / Off 产出对照
评测链路(黄金集 / harness / 单测 / 研究报告)本地维护、不随仓库分发;每版 Release 附跨模型增益矩阵快照(Releases)。
python3 scripts/validate_skills.py(与 CI 同一校验)FAQs
DeepSeek Harness (dsh) plugin: 10 testing skills (requirement analysis, test strategy, case writing/review, E2E/API automation, exploratory, regression, bug analysis) + shared core knowledge base — a full QA pipeline as agent skills.
The npm package dsh-qa-skills receives a total of 107 weekly downloads. As such, dsh-qa-skills popularity was classified as not popular.
We found that dsh-qa-skills demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 1 open source maintainer collaborating on the project.

Company News
Socket is joining the OpenJS Security Stewardship Program to fund Node.js vulnerability research, maintainer remediation, and security releases.

Security News
Two compromised GitHub Actions were re-enabled with malicious tags intact, exposing thousands of downstream repositories to Mini Shai-Hulud.

Research
/Security News
A malicious Firefox extension fetches its payload after installation to evade detection, steal Google session cookies, and automate account takeover.