编程

测试领域建模

试用

通过构建状态机、数据流图和服务依赖图来理清复杂的业务逻辑和系统边界。当需求文档复杂、涉及多个子系统交互、或者你搞不清楚数据在不同模块之间怎么流转的时候,应当使用此技能。领域建模不是为了画图而画图——它帮你发现那些"需求文档里没写的"隐式业务规则和系统边界。适用于复杂业务流程的测试范围可视化。 本技能属于 QA Test Skills 技能集(49 个技能之一),完整工作流体验需安装全套:npx skills add Kokxi/qa-test-skills

它能做什么

通过构建状态机、数据流图和服务依赖图来理清复杂的业务逻辑和系统边界。当需求文档复杂、涉及多个子系统交互、或者你搞不清楚数据在不同模块之间怎么流转的时候,应当使用此技能。领域建模不是为了画图而画图——它帮你发现那些"需求文档里没写的"隐式业务规则和系统边界。适用于复杂业务流程的测试范围可视化。 本技能属于 QA Test Skills 技能集(49 个技能之一),完整工作流体验需安装全套:npx skills add Kokxi/qa-test-skills

技能文档

领域建模

核心原则

不只是画流程图,而是画出状态机、数据流向、一致性约束点。

三种建模视图

视图1:状态转换图

用途:跟踪关键对象的状态变化

状态机要素:
1. 状态:对象可能处于的状态
2. 事件:触发状态变更的事件
3. 转换:状态变更的路径
4. 守卫:状态转换的条件
5. 动作:状态转换时执行的操作

绘制方法:
1. 识别关键对象:什么对象有状态?
2. 列举状态:这个对象有哪些状态?
3. 标注转换:什么事件触发什么转换?
4. 标注条件:转换需要满足什么条件?
5. 标注动作:转换时执行什么操作?

示例(订单状态机)

┌─────────┐    用户下单    ┌─────────┐
│  待支付  │──────────────→│  已支付  │
└─────────┘               └─────────┘
     │                          │
     │ 超时未支付               │ 商家发货
     ▼                          ▼
┌─────────┐               ┌─────────┐
│  已取消  │               │  已发货  │
└─────────┘               └─────────┘
                               │
                          用户确认收货
                               ▼
                          ┌─────────┐
                          │  已完成  │
                          └─────────┘

视图2:数据流图

用途:追踪数据在模块间的流转

数据流要素:
1. 数据源:数据从哪里来?
2. 数据处理:数据经过什么处理?
3. 数据存储:数据存储在哪里?
4. 数据消费:数据被谁使用?
5. 数据一致性:各处数据是否一致?

绘制方法:
1. 识别数据对象:什么数据在流转?
2. 追踪数据路径:数据经过哪些模块?
3. 标注数据操作:CRUD在哪里发生?
4. 标注一致性检查点:哪里需要验证数据一致?
5. 标注数据转换:数据格式在哪里变化?

示例(订单数据流)

用户下单
    │
    ▼
┌─────────┐
│ 订单服务 │──── 创建订单 ────→ ┌─────────┐
└─────────┘                    │ 订单表  │
    │                          └─────────┘
    │ 扣减库存                       │
    ▼                               │
┌─────────┐                         │
│ 库存服务 │←──── 查询库存 ──────────┘
└─────────┘
    │
    │ 发起支付
    ▼
┌─────────┐
│ 支付服务 │──── 创建支付单 ────→ ┌─────────┐
└─────────┘                      │ 支付表  │
    │                            └─────────┘
    │ 支付回调
    ▼
┌─────────┐
│ 回调处理 │──── 更新订单状态 ────→ 订单表
└─────────┘

视图3:服务依赖图

用途:识别服务间依赖关系和故障影响

依赖图要素:
1. 服务节点:有哪些服务?
2. 依赖关系:谁依赖谁?
3. 调用方式:同步/异步?
4. 故障影响:挂了会怎样?
5. 降级方案:怎么容错?

绘制方法:
1. 识别服务:系统有哪些服务?
2. 识别依赖:服务间怎么调用?
3. 标注调用方式:同步/异步/MQ?
4. 标注故障影响:挂了影响什么?
5. 标注降级策略:怎么容错?

示例(电商服务依赖)

┌─────────┐     同步      ┌─────────┐
│ 订单服务 │──────────────→│ 库存服务 │
└─────────┘               └─────────┘
     │                          │
     │ 同步                     │ 同步
     ▼                          ▼
┌─────────┐               ┌─────────┐
│ 支付服务 │               │ 商品服务 │
└─────────┘               └─────────┘
     │
     │ 异步(MQ)
     ▼
┌─────────┐
│ 通知服务 │
└─────────┘

建模输出格式

状态转换表

当前状态触发事件目标状态守卫条件执行动作
待支付用户支付已支付金额正确扣减库存
待支付超时已取消超过30分钟释放库存

数据流表

数据对象源模块目标模块操作一致性检查点
订单订单服务订单表创建订单创建后
库存库存服务库存表扣减扣减后验证

服务依赖表

服务依赖服务调用方式故障影响降级策略
订单服务库存服务同步下单失败返回库存不足
订单服务通知服务异步通知延迟重试+补偿

视图选择速查

业务特征推荐视图目的产出物
有明确状态流转状态转换图跟踪关键对象状态变化状态转换表
数据跨模块流转数据流图追踪CRUD和数据一致性数据流表
多个服务协同服务依赖图识别故障影响和降级服务依赖表
三者均有三种视图全建完整模型三表联动

输出示例

场景:电商订单状态机建模 → 状态识别:待支付→已支付→已发货→已签收→已完成/已取消/已退款 → 转换分析:正向流转(支付→发货→签收→完成) → 异常转换:支付失败、发货失败、退款申请 → 输出:状态转换表 + 数据流图 + 服务依赖图

场景:用户注册流程 → 数据流建模:注册表单→用户服务→数据库→消息队列→邮件服务

检查清单

建模完成后检查:

  • 是否识别了所有关键状态?
  • 状态转换是否完整?
  • 数据流是否清晰?
  • 服务依赖是否明确?
  • 故障影响是否分析?
  • 降级方案是否设计?

常见建模误区

  1. 只画图不建表:画了漂亮的状态图但没输出状态转换表 → 图用于理解,表用于测试,缺一不可
  2. 状态遗漏:只画了主路径状态,忽略了中间态和异常态 → 逐一检查每个对象的"非法状态"分支
  3. 依赖单向:只画了A→B的调用,没画B→A的回调 → 同步调用必须标注返回路径
  4. 数据流断链:数据流出后没画终点 → 每条数据流必须标注终点(存储/消费/丢弃)
  5. 忽略降级:只标注了故障影响,没标注降级方案 → 所有同步依赖必须附带降级策略

相关技能

将模糊的需求描述系统化拆分为输入、操作、状态、输出、规则五个可测试维度,同时挖掘显性需求之外的那些"没写出来但必须满足"的隐性需求和衍生需求。当用户的需求描述只有一两句话、或者看起来功能很简单但你可能遗漏了什么的时候,一定要用此技能做深度解构。适用于任何测试任务的第二步骤——无论需求文档有多详细,解构之后总能发现盲区。 本技能属于 QA Test Skills 技能集(49 个技能之一),完整工作流体验需安装全套:npx skills add Kokxi/qa-test-skills

1 次安装

当所有分析(需求解构、场景树、边界清单、组合矩阵)都已完成,需要把分析结果转化为结构化的测试用例时使用此技能。专注用例结构规范、分类体系、覆盖策略和优先级编排。不要在分析还没做完时就跳到用例生成——没有充分的输入,用例一定是泛泛的。适用于将前面的分析产出物整合为 P0-P3 分级、可追溯的标准格式测试用例。 本技能属于 QA Test Skills 技能集(49 个技能之一),完整工作流体验需安装全套:npx skills add Kokxi/qa-test-skills

2 次安装

当新项目启动需要制定测试方案、或者迭代开始前需要确定"这期怎么测"时使用此技能。根据项目特征(新项目/迭代/重构/紧急修复)、风险分布和资源约束设计分层测试策略,明确测试范围、测试手段、准入准出标准和工具选型。一个好的测试策略让团队知道"测什么、不测什么、为什么"。输出包含风险矩阵、分级测试方案的测试策略文档。 本技能属于 QA Test Skills 技能集(49 个技能之一),完整工作流体验需安装全套:npx skills add Kokxi/qa-test-skills

3 次安装

从需求文档自动生成结构化测试用例,覆盖功能测试、边界分析、组合测试和回归测试全流程。自动串联48个专家级子技能,按12步工作流编排执行。适用于:上传需求文档(PRD/Word/PDF/URL)需要完整测试用例时、不知道如何设计测试场景或担心遗漏边界条件时、需要AI评审测试输出并补充测试盲区时。每个步骤都有独立技能支撑,输出格式统一、需求可追溯、覆盖率可量化。

2 次安装1 星标

当需求文档信息不够、不知道接下来该问产品什么、或者需要从开发那边获取更多技术细节时使用此技能。很多人测不好不是因为不会设计用例,而是因为一开始就没问对问题。提供需求调研、边界确认、规则挖掘、技术细节追问等不同场景的结构化提问模板,确保在测试设计前获取到足够上下文。每一个问题都标注了问谁、怎么问、什么时候问。 本技能属于 QA Test Skills 技能集(49 个技能之一),完整工作流体验需安装全套:npx skills add Kokxi/qa-test-skills

1 次安装

当开发提了 PR、代码变更需要确定测试范围、或者想通过分析代码来预测可能出 Bug 的区域时使用此技能。从测试视角分析代码变更的影响范围、识别高危模式和典型风险区域。不要看完整代码逻辑——你只需要关注变更类型(新增/修改/删除/重构)、影响范围(接口定义/数据库字段/业务逻辑)和相关依赖,据此确定最小回归测试范围。输出代码变更影响分析报告。 本技能属于 QA Test Skills 技能集(49 个技能之一),完整工作流体验需安装全套:npx skills add Kokxi/qa-test-skills

2 次安装