关于 qe-sfdipot-product-factors
qe-sfdipot-product-factors 是需求分析技能,使用七个产品因素生成测试思路、优先级和待澄清问题,适用于测试规划与覆盖审查,并支持领域上下文和多种输出格式。
主要功能
- 01分析结构、功能、数据、接口、平台、运营和时间
- 02使用动作动词生成测试思路
- 03分配 P0–P3 优先级和自动化适配度
- 04识别覆盖缺口并提出澄清问题
- 05输出 HTML、JSON、Markdown 或 Gherkin
适用场景
- 01在测试规划前评估 Epic
- 02审查迭代需求中的覆盖缺口
- 03制定结合领域背景的测试策略
- 04识别产品需求中的风险和待问问题
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ proffesor-for-testing/ agentic-qe --skill qe-sfdipot-product-factors安装后在 Claude Code 中输入/qe-sfdipot-product-factors确认已加载。
详细介绍
SFDIPOT 产品因素分析
<default_to_action> 分析需求时:
- 识别文档类型(史诗、用户故事、规范、架构文档)
- 判断领域背景(电商、医疗、金融等)
- 系统地分析每个 SFDIPOT 类别
- 使用动作动词生成测试思路(不要采用“验证”模式)
- 分配优先级(P0-P3)和自动化适用性
- 针对覆盖缺口提出澄清问题
- 按要求的格式输出(HTML、JSON、MD、Gherkin)
质量门槛:
- 人工探索占比 >= 10%
- 不采用“验证 X”的测试模式
- 优先级分布:P0(8-12%)、P1(20-30%)、P2(35-45%)、P3(20-30%) </default_to_action>
快速参考卡
7 个产品因素
| 因素 | 问题 | 示例关注领域 |
|---|---|---|
| Structure(结构) | 它是什么? | 组件、代码、依赖项 |
| Function(功能) | 它能做什么? | 功能、计算、错误 |
| Data(数据) | 它处理什么? | 输入、输出、持久化 |
| Interfaces(接口) | 它如何连接? | UI、API、集成 |
| Platform(平台) | 它依赖什么? | OS、浏览器、硬件 |
| Operations(运维) | 它如何使用? | 工作流、管理、恢复 |
| Time(时间) | 事情何时发生? | 并发、调度 |
何时使用此技能
| 场景 | 优先级 | 输出 |
|---|---|---|
| 新史诗规划 | 高 | 完整的 SFDIPOT 评估 + 测试思路 |
| Sprint 需求审查 | 中 | 针对性分析 + 澄清问题 |
| 测试策略定义 | 高 | 全面的测试覆盖计划 |
| 风险评估 | 高 | 按领域加权的优先级分配 |
| 覆盖缺口分析 | 中 | 深入问题 + 建议 |
SFDIPOT 分析框架
结构(产品是什么)
子类别:
- 代码完整性:代码质量、复杂度、可维护性
- 硬件:物理组件、设备、外围设备
- 非可执行文件:配置、数据文件、文档
- 可执行文件:二进制文件、脚本、库
- 依赖项:第三方库、外部服务
测试思路示例:
- 分析关键模块的圈复杂度;标记复杂度 > 10 的函数
- 注入损坏的配置文件;确认系统能够平稳降级
- 升级依赖项版本;确认没有破坏性变更
功能(产品能做什么)
子类别:
- 应用:核心业务功能
- 计算:数学运算、转换
- 错误处理:异常管理、恢复
- 安全:身份验证、授权、加密
- 状态转换:工作流状态、数据生命周期
- 消息传递:通知、事件、队列
- 数据转换:格式转换、映射
测试思路示例:
- 提交包含 1000 个订单项的订单;测量处理时间
- 在搜索字段中注入 SQL;确认清理逻辑可阻止代码执行
- 触发状态转换超时;观察重试行为
数据(产品处理什么)
子类别:
- 输入:用户输入、文件上传、API 负载
- 输出:响应、报告、导出内容
- 持久化:数据库存储、缓存
- 存储:文件系统、云存储
- 边界:最小值/最大值、边界情况
- 验证:格式规则、业务规则
- 格式:JSON、XML、CSV 处理
测试思路示例:
- 上传 100MB 文件;确认分块处理能够完成
- 在文本字段中输入表情符号;检查存储和检索
- 查询边界日期(2038-01-19);检查时间戳处理
接口(产品如何连接)
子类别:
- 用户界面:Web、移动端、桌面 UI
- API:REST、GraphQL、gRPC 端点
- 集成:第三方服务连接
- 协议:HTTP、WebSocket、MQTT
- CLI:命令行界面
测试思路示例:
- 将浏览器宽度调整为 320px;确认响应式断点
- 向 API 发送格式错误的 JSON;断言返回包含详细信息的 400 响应
- 在事务中途断开 WebSocket;观察重新连接行为
平台(产品依赖的内容)
子类别:
- 浏览器:Chrome、Firefox、Safari、Edge
- OS:Windows、macOS、Linux、iOS、Android
- 硬件:CPU、内存、存储限制
- 外部软件:数据库、消息队列
- 网络:延迟、带宽、离线
测试思路示例:
- 在 1GB RAM 设备上执行;分析内存用量
- 在 500ms 网络延迟下运行;衡量用户体验
- 在 iOS 15 Safari 上测试;验证对 CSS grid 的支持
操作(产品的使用方式)
子类别:
- 常见使用:顺利路径工作流
- 极端使用:边界情况、压力条件
- 用户管理:角色、权限、个人资料
- 管理员操作:配置、监控
- 恢复:备份、还原、灾难恢复
测试思路示例:
- 执行 10,000 个并发用户会话;监控资源用量
- 在会话中途撤销管理员访问权限;确认立即生效
- 从 24 小时前的备份还原;验证数据完整性
时间(事件发生的时间)
子类别:
- 并发:并行操作、竞态条件
- 调度:Cron 作业、定时事件
- 顺序:操作顺序、依赖关系
测试思路示例:
- 两位用户同时更新同一条记录;确认冲突解决方式
- 在夏令时转换时执行计划作业;验证时间正确
- 在操作序列中途取消操作;观察对部分状态的处理
质量规则
测试思路质量
绝不要使用“验证 X”模式。始终使用动作动词。
| 不良模式 | 良好模式 |
|---|---|
| 验证登录是否正常 | 提交凭据;确认已创建会话 |
| 验证 API 是否返回 200 | 发送请求;断言响应为 200 |
| 验证错误是否显示 | 触发错误;观察提示信息 |
优先级分布
| 优先级 | 百分比 | 标准 |
|---|---|---|
| P0(严重) | 8-12% | 安全、数据丢失、法规要求 |
| P1(高) | 20-30% | 核心功能、用户影响 |
| P2(中) | 35-45% | 标准功能、边界情况 |
| P3(低) | 20-30% | 润色、小幅改进 |
自动化适用性
| 类型 | 百分比 | 适用场景 |
|---|---|---|
| 单元测试 | 30-40% | 独立逻辑、计算 |
| 集成测试 | 15-25% | API 契约、数据流 |
| E2E | <=50% | 用户旅程、工作流 |
| 人工探索 | >=10% | 可用性、边界情况 |
Agent 集成
// Full SFDIPOT assessment
await Task("SFDIPOT Assessment", {
input: epicDocument,
outputFormat: "html",
domains: ["ecommerce"],
brutalHonesty: true
}, "qe-product-factors-assessor");
// Transform verify patterns
await Task("Rewrite Test Ideas", {
inputFile: assessmentHtml,
preserveMetadata: true
}, "qe-test-idea-rewriter");
记忆命名空间
aqe/sfdipot/
├── assessments/* - Assessment results
├── patterns/* - Learned domain patterns
├── test-ideas/* - Generated test ideas
└── questions/* - Clarifying questions
相关技能
- brutal-honesty-review - 质量验证
- risk-based-testing - 优先级分配
- context-driven-testing - 领域感知
- exploratory-testing-advanced - 会话设计
请记住
SFDIPOT 通过从 7 个不同视角审视产品,确保测试覆盖全面。 每个类别都能揭示其他视角可能遗漏的风险。使用领域检测来合理分配优先级。
评论
支持 Markdown