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 对应开发/测试/发布流程的每个环节做。

就这样。