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.
333 lines (230 loc) • 13.5 kB
Markdown
# Markmap 测试用例模板
根据项目类型从以下模块中选取需要的,拼装为测试用例文件。不需要的模块直接删除。
> **编写说明**:默认使用**详细格式**。有 UI 功能用四段式(前置条件 / 操作步骤 / 预期结果,优先级标注在名称行);无 UI 后端功能用协作五段式(前置条件 / 操作步骤(请开发执行)/ 预期结果(请开发反馈)/ 验证方式,优先级同样标注在名称行,不单列字段)。每条用例唯一编号 `TC-{模块号}-{序号}` 写在名称前,P0 冒烟用例名称后追加 `(SMOKE-{序号})` 标注。模板内其余条目以紧凑占位 `- {操作},{结果}` 书写,**编写时请展开为对应详细格式并补 TC 编号**;同一子模块共享的前置在标题下用 `> 前置:...` 统一声明,单条只写特有前置。
>
> **正文零代码内部(硬约束)**:正文只用业务语言,禁出现 `文件:行`、SDK 符号、错误码常量、函数名;嵌入具体测试数据(真实编号/字段/值),不要占位符。
>
> **零上下文可执行(硬约束)**:文件头部导读四件套(功能简介+角色表 / 环境与账号表 / 术语表 / 图例);被测页面首次出现写明到达路径;异步预期写判定时限(等多久不发生算失败);用例名称断言不超出步骤实际验证强度。
>
> **代码模式**:文件顶部加测准声明(见下方范例);`代码依据: {文件:行}` **不写进正文用例**,统一放文件末尾附录;Cx 缺陷记录、Dn 风险点、文档偏离、改动文件映射全部放附录区(见文末),与正文用 `---` 分隔,标注"开发核查,非测试执行"。
### 详细格式范例
> **测准声明**(代码模式必加,文件顶部):本文件以 {仓库} {分支} 实际实现为唯一功能基线;需求/设计文档降为背景对照(偏离见附录)。代码级证据(`文件:行` 等)放文件末尾附录,不写进用例正文。
**A. 有 UI 功能 — 四段式**
> 前置:管理员已登录、项目已创建
- **TC-01-01 正常创建项目** [P0](SMOKE-1)
- 前置条件: 无额外前置
- 操作步骤: 1. 进入「项目创建」页 2. 填写名称+描述 3. 点击提交
- 预期结果: 创建成功,列表出现新项目卡片并回显名称/项目id
**B. 无 UI 后端功能 — 协作五段式**
> 前置:测试数据见附录 A(图片编号 fb1f2933...)
- **TC-05-01 写入单个文字字段,读回值一致** [P0]
- 前置条件: 已准备图片编号 fb1f2933f0e837b719d510a200dff31f
- 操作步骤(请开发执行): 1. 用 hbase.set 写入:编号=fb1f2933...,字段 lr_label_top="任务动作",数据类型=图片 2. 用读取功能读回该字段
- 预期结果(请开发反馈): 读回的 lr_label_top 值 = "任务动作",与写入一致
- 验证方式: 开发查 HBase 该编号的 lr_label_top 字段,反馈实际值
---
# {项目名} 测试用例
<!-- 导读区四件套(硬性产出,正文模块之前):以零上下文新人能直接开工为标准 -->
> **功能简介**:{一两句话:这是什么功能,解决什么问题}
>
> **角色**:{角色A} → {用它做什么};{角色B} → {用它做什么}
**环境与账号**(未知信息不省略,列 TODO 标注找谁拿):
| 项 | 值 |
|----|----|
| 管理后台入口 | {URL 或「TODO:向 {谁} 索取」} |
| App/客户端 | {测试包获取方式 或 TODO} |
| {角色A} 测试账号 | {账号 或 TODO} |
| {被测页面入口} | {导航路径,如 后台 → 营销中台 → 券工场} |
**术语表**(正文出现的每个内部系统名/英文字段名/状态代号,此处可查):
| 术语 | 中文名 | 说明 |
|------|--------|------|
| {内部系统名} | {中文名} | {一句话解释,如:风控系统,领取前校验用户风险} |
| {英文字段名} | {中文名} | {含义与界面对应} |
**图例**:P0=冒烟(失败则核心不可用)/ P1=常规(默认级别,未标注即 P1)/ P2=边界低频;`TC-{模块号}-{序号}`=用例唯一编号;`(SMOKE-{序号})`=冒烟用例序号标注(追加在 P0 用例名称后);`[需Mock]` 等标签见附录可测试性说明。
> 标准测试数据:{集中声明各用例默认复用的数据}
## 1. 基础配置/创建 <!-- 所有项目 -->
### 1.1 创建
<!-- 详细格式 inline 示范:占位条目编写时按此展开 -->
- **TC-01-01 正常创建(必填字段齐全)** [P0](SMOKE-1)
- 前置条件: 无额外前置
- 操作步骤: 1. 填写全部必填项 2. 点击提交
- 预期结果: 创建成功并生成记录id
- {创建后默认值},{默认配置正确}
### 1.2 配置
- {配置选项A},{配置生效}
- {配置锁定/不可变},{拒绝变更}
- {配置变更后已有数据的行为},{符合预期}
### 1.3 编辑/重提路径校验 <!-- 有编辑或重新提交入口的项目,二阶交叉高发区 -->
- {创建时的每条校验规则,在编辑路径重复验证},{同样拦截}
- {驳回/退回后修改为非法值重新提交},{同样拦截}
- {标识字段(名称/编号)重复提交},{唯一性行为明确}
## 2. 数据输入/导入 <!-- 有数据导入的项目 -->
### 2.1 正常格式
- {标准格式导入},{导入成功} [P0]
### 2.2 异常格式
- {字段缺失},{报错并提示}
- {字段格式非法},{行级错误}
- {字段映射/别名},{映射正确}
### 2.3 有效性校验
- {全部有效},{全部保留}
- {部分无效},{过滤后保留有效值}
- {全部无效},{拒绝/告警}
### 2.4 异步与缓存 <!-- 有异步导入的项目 -->
- {异步任务状态},{可追踪}
- {缓存一致性},{导入期间变更不影响已加载缓存}
## 3. 核心业务逻辑 <!-- 所有项目 -->
### 3.1 逻辑分支A
- {条件A},{走分支A} [P0]
### 3.2 逻辑分支B
- {条件B},{走分支B} [P0]
### 3.3 逻辑分支C
- {条件C},{走分支C} [P0]
## 4. 操作/交互 <!-- 有用户操作的项目 -->
### 4.1 正常操作
- {正确条件},{操作成功} [P0]
- {操作后数据变更},{符合预期}
### 4.2 异常操作
- {错误条件},{操作被拒绝}
### 4.3 逆向操作
- {释放/退回/取消},{状态恢复}
- {完整状态流转},{每步验证}
### 4.4 并发
- {多用户并发},{无重复无遗漏}
## 5. 数据处理/转换 <!-- 有数据处理的项目 -->
### 5.1 格式转换
- {输入格式A → 输出格式B},{转换正确} [P0]
### 5.2 聚合/分发
- {多源数据聚合},{结果正确}
- {单源数据分发},{各目标数据正确}
## 6. 搜索/筛选/分页 <!-- 有列表查询的项目 -->
### 6.1 搜索
- {精确搜索},{结果正确} [P0]
- {模糊搜索},{结果正确}
### 6.2 筛选与排序
- {多条件筛选},{结果正确}
- {排序},{顺序正确}
### 6.3 分页
- {首页/末页/中间页},{数据正确}
- {每页条数变更},{分页正确}
- {空结果},{友好提示}
## 7. 权限与角色 <!-- 多角色系统 -->
### 7.1 角色权限
- {普通用户},{正常操作} [P0]
- {管理员},{额外权限验证}
- {无权限用户},{拦截}
### 7.2 权限变更
- {角色变更后},{权限即时生效}
## 8. 工作流/审批 <!-- 有流程的项目 -->
### 8.1 正常流程
- {完整审批链},{流程通过} [P0]
### 8.2 异常流程
- {驳回},{回到上游}
- {超时},{超时处理正确}
## 9. 通知/消息 <!-- 有通知功能的项目 -->
- {触发通知},{通知发送成功} [P0]
- {通知内容},{模板变量替换正确}
- {发送失败},{重试机制生效}
- {重复触发},{消息去重}
## 10. 文件上传/下载 <!-- 有文件操作的项目 -->
- {正常文件上传},{上传成功} [P0]
- {文件类型限制},{非法类型拒绝}
- {文件大小限制},{超大文件拒绝}
- {文件下载},{内容完整}
## 11. 第三方集成 <!-- 调用外部服务;type_scope 轴 10 include standard+ 时选用,type: functional + [集成] 标签 -->
- {外部 API 正常},{处理正确} [P0]
- {外部 API 超时},{降级/重试}
- {外部 API 返回异常数据},{容错处理}
## 12. 多轮/链式流程 <!-- 有多阶段操作的项目 -->
### 12.1 第一轮
- {第一轮操作},{结果正确} [P0]
### 12.2 第二轮
- {第二轮操作,携带第一轮数据},{数据完整} [P0]
### 12.3 多轮(>2)
- {第三轮},{历史累积正确}
## 13. 标签/分类管理 <!-- 有分类体系的项目 -->
### 13.1 标签 CRUD
- {创建标签},{创建成功} [P0]
- {修改标签},{修改成功}
- {删除标签},{删除成功,关联数据处理正确}
### 13.2 分类层级
- {多级分类},{层级正确}
- {标签关联},{关联正确}
## 14. 配置管理 <!-- 有配置项的项目 -->
- {新增配置项},{配置生效} [P0]
- {修改配置项},{修改后即时生效}
- {删除配置项},{关联功能降级或使用默认值}
- {配置生效范围},{仅影响目标范围}
## 15. 边界与异常 <!-- 所有项目 -->
### 15.1 输入边界
- {空值},{按规则处理}
- {超大值},{处理正确}
- {特殊字符},{报错或转义}
### 15.2 数据一致性
- {级联操作},{关联数据一致}
- {幂等处理},{重复操作结果不变}
### 15.3 错误信息
- {错误信息},{含定位信息,格式符合规范}
## 16. 安全性 <!-- Web/API 项目;type_scope 轴 2 include 时 type: security + [安全] 标签用例(硬默认轴),越权功能正确性归模块 7(功能域 permission),域间裁决见 ../../core/test-type-matrix.md 第 2 节 -->
- {未认证访问},{拒绝} [P0]
- {越权访问},{拒绝} [P0]
- {SQL 注入/XSS},{拦截或转义}
- {数据隔离},{租户间数据不可见}
- {接口限流},{超限拒绝}
## 17. 前端展示 <!-- 有前端界面的项目 -->
- {页面展示},{内容正确}
- {交互限制}(防连点/防重复),{限制生效}
- {动态 UI}(条件展示/隐藏),{符合规则}
## 18. 兼容性 <!-- 跨平台项目;type_scope 轴 5 include standard+ 时选用,type: compatibility + [兼容] 标签 -->
- {目标浏览器A},{功能正常}
- {目标浏览器B},{功能正常}
- {移动端适配},{布局正确}
## 19. 国际化 <!-- 多语言项目;type_scope 轴 8 include standard+ 时选用,type: functional + [国际化] 标签 -->
- {语言切换},{文案正确}
- {时区处理},{时间显示正确}
- {多语言文案},{无溢出/截断}
## 20. 并发一致性 <!-- 测试策略 type_scope 轴 4(concurrency)include 且 standard 及以上时选用;type: concurrency,名称行加 [并发] 标签 -->
### 20.1 竞争写入
- {同一资源多端并发提交},{无重复无遗漏无死锁}
### 20.2 先查后写窗口
- {并发触发先查后写路径},{结果与串行执行一致}
> 性能(轴 1)为**脚本型**轴:不产手动用例——压测模型与执行物走专项脚本或移交(executor 如 k6,见 ../../core/test-type-matrix.md 第 12 节消费方式映射),本模板不设性能手动用例模块;可靠(轴 3,type: reliability + [可靠] 标签)的超时/重试/降级用例按需在本模块外另立子模块。
## 21. 数据迁移/升级 <!-- 存量系统迭代;type_scope 轴 9 include standard+ 时选用,type: functional + [迁移] 标签 -->
- {Schema 变更后老数据兼容},{数据可正常访问}
- {迁移完整性},{无数据丢失}
- {新旧版本共存},{行为一致}
- {回滚后数据可用},{数据完整}
---
## 附录:开发技术核查清单(非测试执行项)<!-- 代码模式按需追加 -->
> 以下供开发/评审核查与溯源,测试工程师不执行。代码级证据(`文件:行`)集中于此,**不写进正文用例**。
### 附录 A:缺陷记录 Cx
> 潜在 bug 记录,每条附证据与处置
- **C1 {现象描述}**
- 证据: {文件:行}
- 处置: 主线验证 / 专项验证 / 待实测确认 / 已证伪 / 后端范围
- **C2 {现象描述}**
- 证据/处置: ...
### 附录 B:高风险点 D1-Dn
> 代码审查识别的高风险回归点,每条映射一条正文回归用例
- **D1 {风险描述}** [等级:Critical/High/Medium/Low(Impact × Likelihood 评分,评级规则见 `../../core/risk-model.md`)]
- 证据: {文件:行}
- 覆盖用例: {正文用例 TC 编号}
- 通过判据: {明确判据}
- **D2 {风险描述}** [等级:...]
- 证据/覆盖用例/通过判据: ...
### 附录 C:代码证据清单(可选)
| 用例编号 | 代码位置 |
|---------|---------|
| {TC 编号} | {文件:行} |
### 附录 D:文档偏离对照
| 设计点 | 文档描述 | 实际实现(文件:行) | 偏离类型 |
|--------|---------|-------------------|---------|
| {设计点} | {文档原文} | {实现} | 字段/流程/默认值/... |
### 附录 E:改动文件映射
| 改动文件 | 影响模块 | 回归用例 | 分类 |
|---------|---------|---------|------|
| {文件} | {模块} | {TC 编号} | 🆕新建/✏️修改/🗑️删除/💀死代码 |
### 附录 F:可测试性说明
> 带 [需真机]/[需Mock]/[需专业环境] 标注的用例逐条列出,替代方案须可行动(平台/工具 + 操作入口)
| 用例编号 | 标注 | 替代方案 | 状态 |
|---------|------|---------|------|
| {TC 编号} | [需Mock] | {平台名与操作入口;未知则「TODO:向 {谁} 确认 {什么}」} | 待确认/已落实 |