SFDIPOT产品因素分析Skill sfdipot-product-factors

SFDIPOT产品因素分析技能用于通过分析产品结构、功能、数据、接口、平台、操作和时间维度,生成全面和优先排序的测试策略,适用于软件测试、需求分析、风险评估和测试策略定义,关键词包括SFDIPOT、测试策略、产品因素、詹姆斯·巴赫、HTSM、需求分析。

测试 0 次安装 0 次浏览 更新于 3/9/2026

name: SFDIPOT产品因素分析 description: “詹姆斯·巴赫的HTSM产品因素(SFDIPOT)分析,用于生成全面测试策略。在分析需求、史诗或用户故事时使用,以跨结构、功能、数据、接口、平台、操作和时间维度生成优先排序的测试想法。” category: 需求分析 priority: 高 tokenEstimate: 1500 agents: [qe-product-factors-assessor, qe-test-idea-rewriter] implementation_status: 优化 optimization_version: 1.0 last_optimized: 2026-01-17 dependencies: [brutal-honesty-review] quick_reference_card: 是 tags: [sfdipot, htsm, product-factors, test-strategy, requirements, james-bach]

SFDIPOT产品因素分析

<default_to_action> 分析需求时:

  1. 识别文档类型(史诗、用户故事、规格、架构文档)
  2. 检测领域上下文(电子商务、医疗保健、金融等)
  3. 系统分析每个SFDIPOT类别
  4. 使用行动动词生成测试想法(避免“验证”模式)
  5. 分配优先级(P0-P3)和自动化适用性
  6. 提出覆盖率差距的澄清问题
  7. 以请求格式输出(HTML、JSON、MD、Gherkin)

质量门限:

  • 人工探索 >= 10%
  • 避免“验证X”测试模式
  • 优先级分布:P0(8-12%)、P1(20-30%)、P2(35-45%)、P3(20-30%) </default_to_action>

快速参考卡

7个产品因素

因素 问题 示例焦点领域
结构 它是什么? 组件、代码、依赖
功能 它做什么? 功能、计算、错误
数据 它处理什么? 输入、输出、持久化
接口 它如何连接? UI、API、集成
平台 它依赖什么? 操作系统、浏览器、硬件
操作 它如何使用? 工作流、管理、恢复
时间 事情何时发生? 并发、调度

何时使用此技能

场景 优先级 输出
新史诗规划 完整SFDIPOT评估 + 测试想法
冲刺需求评审 针对性分析 + 澄清问题
测试策略定义 全面测试覆盖计划
风险评估 领域加权优先级分配
覆盖率差距分析 深入问题 + 推荐

SFDIPOT分析框架

结构(产品是什么)

子类别:

  • 代码完整性:代码质量、复杂性、可维护性
  • 硬件:物理组件、设备、外设
  • 非可执行文件:配置、数据文件、文档
  • 可执行文件:二进制文件、脚本、库
  • 依赖:第三方库、外部服务

示例测试想法:

  • 分析关键模块的圈复杂度;标记函数 > 10
  • 注入损坏的配置文件;确认优雅降级
  • 升级依赖版本;验证无破坏性变更

功能(产品做什么)

子类别:

  • 应用:核心业务功能
  • 计算:数学运算、转换
  • 错误处理:异常管理、恢复
  • 安全:认证、授权、加密
  • 状态转换:工作流状态、数据生命周期
  • 消息:通知、事件、队列
  • 数据转换:格式转换、映射

示例测试想法:

  • 提交1000行订单;测量处理时间
  • 在搜索字段注入SQL;确认消毒防止执行
  • 触发状态转换超时;观察重试行为

数据(产品处理什么)

子类别:

  • 输入:用户输入、文件上传、API有效负载
  • 输出:响应、报告、导出
  • 持久化:数据库存储、缓存
  • 存储:文件系统、云存储
  • 边界:最小/最大值、边缘情况
  • 验证:格式规则、业务规则
  • 格式:JSON、XML、CSV处理

示例测试想法:

  • 上传100MB文件;确认分块处理完成
  • 在文本字段插入表情;验证存储和检索
  • 查询边界日期(2038-01-19);检查时间戳处理

接口(产品如何连接)

子类别:

  • 用户界面:Web、移动、桌面UI
  • API:REST、GraphQL、gRPC端点
  • 集成:第三方服务连接
  • 协议:HTTP、WebSocket、MQTT
  • CLI:命令行界面

示例测试想法:

  • 调整浏览器宽度至320px;确认响应式断点
  • 发送畸形JSON到API;断言400响应及详情
  • 断开WebSocket中途;观察重连接

平台(产品依赖什么)

子类别:

  • 浏览器:Chrome、Firefox、Safari、Edge
  • 操作系统:Windows、macOS、Linux、iOS、Android
  • 硬件:CPU、内存、存储限制
  • 外部软件:数据库、消息队列
  • 网络:延迟、带宽、离线

示例测试想法:

  • 在1GB RAM设备上执行;分析内存使用
  • 以500ms网络延迟运行;测量用户体验
  • 在iOS 15 Safari上测试;验证CSS网格支持

操作(产品如何使用)

子类别:

  • 常用使用:快乐路径工作流
  • 极端使用:边缘情况、压力条件
  • 用户管理:角色、权限、配置文件
  • 管理操作:配置、监控
  • 恢复:备份、还原、灾难恢复

示例测试想法:

  • 执行10,000并发用户会话;监控资源使用
  • 中途撤销管理员访问;确认立即生效
  • 从24小时前备份还原;验证数据完整性

时间(事情何时发生)

子类别:

  • 并发:并行操作、竞争条件
  • 调度:定时任务、定时事件
  • 序列:操作顺序、依赖

示例测试想法:

  • 两个用户同时更新相同记录;确认冲突解决
  • 在夏令时转换时执行计划作业;验证正确时间
  • 取消操作中途;观察部分状态处理

质量规则

测试想法质量

从不使用“验证X”模式。始终使用行动动词。

不良模式 良好模式
验证登录有效 提交凭据;确认会话创建
验证API返回200 发送请求;断言200响应
验证错误显示 触发错误;观察消息

优先级分布

优先级 百分比 标准
P0(关键) 8-12% 安全、数据丢失、监管
P1(高) 20-30% 核心功能、用户影响
P2(中) 35-45% 标准功能、边缘情况
P3(低) 20-30% 润色、小改进

自动化适用性

类型 百分比 用于
单元 30-40% 隔离逻辑、计算
集成 15-25% API合同、数据流
端到端 <=50% 用户旅程、工作流
人工探索 >=10% 可用性、边缘情况

代理集成

// 完整SFDIPOT评估
await Task("SFDIPOT Assessment", {
  input: epicDocument,
  outputFormat: "html",
  domains: ["ecommerce"],
  brutalHonesty: true
}, "qe-product-factors-assessor");

// 转换验证模式
await Task("Rewrite Test Ideas", {
  inputFile: assessmentHtml,
  preserveMetadata: true
}, "qe-test-idea-rewriter");

内存命名空间

aqe/sfdipot/
├── assessments/*     - 评估结果
├── patterns/*        - 学习领域模式
├── test-ideas/*      - 生成测试想法
└── questions/*       - 澄清问题

相关技能


记住

SFDIPOT通过从7个不同视角检查产品,确保全面测试覆盖。 每个类别揭示其他视角可能忽略的风险。使用领域检测适当加权优先级。