08 设计 FMEA vs 过程 FMEA——两种场景,一套方法
开篇除恐
设计 FMEA 和过程 FMEA,名字里带两个词,看起来像两种完全不同的方法。其实不是。骨架一模一样,都是"组件→失效→后果→打分"。你前面学会的那张表,两种场景都能用。
差别只在问问题的角度,以及"失效"具体落在哪里。
白话化:一个产品的一生
任何产品都有两个明确阶段:
设计阶段(Design):画图纸、定规格、选材质的阶段。此时失效发生在"设计决策"上。设计 FMEA 研究的问题是:"如果我们按这个方案做,哪些设计选择会导致用户遇到哪些问题?"
过程阶段(Process):按设计图纸实际生产、组装、交付的阶段。此时失效发生在"生产/执行过程"上。过程 FMEA 研究的问题是:"这个过程在运行时,哪些环节会出问题?"
拿自行车来对应:
- 设计 FMEA问:这个刹车的设计(钢线走线、角度、材料)在用户使用中有哪些潜在失效?→止前设计决策的后果
- 过程 FMEA问:组装这个刹车的时候,哪些工艺环节容易出问题?→ 回答:螺丝拧到多少牛、钢线切口有没有毛刺、调校有没有到位
对应软件测试工程师的场景,同样划分明显:
- 设计 FMEA 对应:需求评审阶段,从功能设计、架构设计、安全设计出发,问"这个设计如果落地,用户会碰到什么问题"
- 过程 FMEA 对应:从开发、测试、发布、运维这些实际运行的流程出发,问"这个流程哪里会出错"
直觉先行:同一设备两套表
同一辆自行车,前刹车的设计 FMEA 和过程 FMEA 各自会关注什么、不关注什么:
设计 FMEA 侧重(之前写的第 7 章表格就是设计 FMEA):
- 钢线的材料会不会生锈(设计选材决策)
- 刹车臂的杠杆比设计得够不够(机械设计)
- 刹车皮的摩擦系数是否足够(材料选型)
过程 FMEA 侧重(同样前刹车,不同角度):
- 组装时螺丝拧得过紧导致螺纹滑牙(工艺问题)
- 钢线安装时切口没做去毛刺处理,后期加速磨损(工艺问题)
- 刹车系统出厂调校不符合规格,需要用户自行调整(验收问题)
可以看到,设计 FMEA 的"失效模式"对应的是设计决策层面的失误,过程 FMEA 的失效模式对应的是生产执行层面的失误。两种场景的条目不重叠,但表结构完全一样。
术语脱西装
| 术语 | 大白话 |
|---|---|
| DFMEA / 设计失效模式分析 | 从设计决策出发,回答"设计了这个方案之后,用户会踩到什么坑" |
| PFMEA / 过程失效模式分析 | 从生产/执行流程出发,回答"这个流程运行时,哪里容易出错" |
| Process / 过程 | 把东西做出来的那条流水线,包括开发、测试、发布 |
两者的关系
工艺出问题了,可能再好的设计也救不了。反过来,设计本身有缺陷,工艺再好也没用。两个分析一起做,才能覆盖整个产品生命周期。
工程实践里,一般顺序是:先做 DFMEA,再基于 DFMEA 的结果做 PFMEA。因为如果设计本身有风险,生产流程要特意加检测来补,这些检测措施本身也是 PFMEA 的内容。
例子
☼☼ 正经:登录功能的 DFMEA vs PFMEA(自编)
假设团队正在做一个手机银行 APP 的登录重构。DFMEA 和 PFMEA 各自会列出什么?
DFMEA(设计层面,功能、架构、安全角度):
| 组件 | 失效模式 | 效果 |
|---|---|---|
| 密码加密 | 使用 MD5 而非 bcrypt | 数据库泄露后密码可被碰撞 |
| 会话管理 | 无失效设计,一次登录无限期有效 | 手机丢了,别人拿到手机可一直登 |
| 自动填充 | 密码框设 autocorrect 且自动补全 | 别人看屏幕时看到密码 |
PFMEA(过程层面,开发、测试、发布流程):
| 过程步骤 | 失效模式 | 效果 |
|---|---|---|
| 代码审查 | 安全漏洞审查流于形式,只审功能 | MD5 疏漏通过,上线 |
| 自动化测试 | 弱网场景仅覆盖成功率 80% | 重复提交问题在 UAT 才暴露 |
| 灰度发布 | 回滚操作需要手动触发,无人值守 | 缺陷影响量扩展至全量用户 |
| 监控告警 | 登录失败率告警阈值设得太松(>50%) | 异常登录攻击持续 2 小时无人知晓 |
DFMEA 的条目关注的是"设计层面的失误",PFMEA 关注的是"执行流程的失误"。结构一样,但写的东西完全不同。
这一章要带走的东西:
- DFMEA 和 PFMEA 核心结构相同,都是那张表格,只差提问角度。
- DFMEA 回答"设计决策会不会坑用户",PFMEA 回答"执行流程会不会出漏子"。
- 设计问题靠设计分析找,生产问题靠过程分析找,两者互补。
- 软件场景可以直接映射:DFMEA 对应需求/架构评审时做,PFMEA 对应开发/测试/发布流程的每个环节做。
就这样。