dsh-qa-skills
Version:
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.
57 lines (42 loc) • 4.04 kB
Markdown
# 用例可执行性标准(Executability)
> "看似专业但不可执行"是当前最大质量问题。本标准是**框架级硬标准**,所有产出用例的 Skill(`test-case-writing`、`test-case-review`、`bug-analysis` 的回归用例建议)统一遵守。
>
> 本标准同时是评测的一票否决指标:不可执行的用例,覆盖再全也计零分。
## 1. 失败模式——AI 为什么会生成不可执行的用例
| # | 失败模式 | 典型表现 |
|---|---------|---------|
| 1 | 凭空想象系统 | 没见过真实页面 / 接口,凭 PRD 与通用经验虚构入口、字段、文案 |
| 2 | 写给评审者而非执行者 | 追求覆盖矩阵漂亮,不关心执行者下一步能不能操作 |
| 3 | 前置不可得 | 默认环境 / 账号 / 数据随手就有,不交代从哪获得 |
| 4 | 判定不可操作 | 预期结果写"功能正常"这类模糊判定;异步行为无判定时限 |
| 5 | 断言超出验证强度 | 两个样本就断言"全局唯一";UI 操作就断言数据库约束 |
## 2. 八条硬标准
1. **代码优先**——有代码必读代码,以实现为行为基线,杜绝凭文档想象(失败模式 1 的根治手段)
2. **执行模型判定**——有 UI 独立执行 / 无 UI 转"测试-开发协作清单",开工先判定
3. **具体数据**——操作步骤嵌真实编号 / 字段值,禁止占位符(`{xxx}`、`<xxx>`、`某某`)
4. **页面可达性**——每个入口写清从哪里到达;未知 → 澄清 + TODO
5. **判定时限**——异步行为必须写"多久不发生即判失败"
6. **断言范围 ≤ 验证强度**——用例名称与实际能证明的范围一致
7. **前置可得性**——环境 / 账号未知时列"TODO:向谁索取",不省略
8. **零上下文新人复述**——定稿自检:没读过需求、没人讲解的人只拿这份文件能开工
## 3. 定稿自检清单(逐条执行)
以"零上下文新人"(没读过需求文档、没人讲解、只拿到这份文件)为标准:
- [ ] 随机抽 3 条用例复述:验证什么、从打开什么系统开始怎么操作、怎么算通过——任何一步卡住(不认识某个词 / 不知道页面在哪 / 不知道怎么造前置状态 / 不知道等多久算失败)→ 修复正文或补导读区,而不是降低标准
- [ ] 导读四件套齐全:功能简介+角色表 / 环境与账号表(未知列 TODO 指明找谁)/ 术语表 / 图例
- [ ] 正文零代码内部:无 `文件:行`、SDK 符号、错误码常量、函数名(代码证据隔离在附录)
- [ ] 操作步骤嵌具体数据,无占位符
- [ ] 每个被测入口首次出现时写明到达路径
- [ ] 含异步预期的用例逐条有判定时限
- [ ] 用例名称断言不超出步骤实际验证强度
- [ ] 每条用例可独立执行(有 UI)或可整包交开发协作执行(无 UI)
## 4. 违反即不可执行的红线(Eval 判分依据)
以下任一命中,该条用例在 Eval 中判为不可执行:
1. 操作步骤或预期结果包含占位符(`{xxx}`、`<xxx>`、"某数据")
2. 第一步操作指向不存在的入口(虚构页面 / 未说明到达路径且无 TODO)
3. 预期结果为"功能正常 / 正常显示"等无判定信息的表述
4. 异步预期无判定时限
5. 前置条件不可获得且无 TODO 指引(需要不存在的账号 / 数据却未说明来源)
6. 用例名称断言超出步骤能证明的范围
## 5. 引用方式
各 SKILL.md 的用例产出 / 审查 / 定稿步骤标注"此时执行本文件全部检查项",相对路径 `../core/executability.md`。
第二个消费场景是**执行型 skill 的转换闸门**:`automated-e2e-testing`、`api-testing` 把存量用例转为自动化脚本前,对待转用例逐条过第 4 节红线——不可执行的用例直接翻译成脚本只会产出"幻觉自动化"(脚本能跑,测的不是真实系统行为);命中红线的用例先补齐再转,补不了的明确暂缓进遗留清单,不静默硬转。