售后服务
我们是专业的

Day 30下午-1:项目质量管理 - 质量是设计出来的,不是检查出来的

一个质量管理缺失导致的品牌危机

2019年,某新势力上线"智能客服系统",投资800万,团队信心满满。

上线第1周

  • 系统响应速度慢,客户等待超过5分钟
  • 智能回复答非所问,客户抱怨"还不如人工"
  • 晚上8点系统崩溃,1000+客户无法获得服务

上线第2周

  • 社交媒体开始传播:"XX新势力的客服系统是史上最烂"
  • 客户开始质疑公司的技术能力
  • 老客户流失率上升15%

真相调查

开发过程中:
- ❌ 没有性能测试:系统只测试了100并发,实际高峰有500并发
- ❌ 没有压力测试:没模拟过极端情况
- ❌ 没有用户验收测试:只有技术团队自测,没请真实客户试用
- ❌ 没有灰度发布:直接全量上线
- ❌ 没有回滚预案:出问题后束手无策

质量标准:
- ❌ 没有定义"什么是可接受的质量"
- ❌ 没有验收标准:"能用就行"
- ❌ 没有质量门禁:测出bug也继续上线

代价

  • 紧急返工3个月
  • 品牌声誉严重受损
  • CEO公开道歉
  • CTO引咎辞职
  • 客户流失导致的损失超过3000万

如果做好质量管理

  • 成本:多花100万做质量保障(测试、评审、试运行)
  • 收益:避免3000万损失+品牌危机

质量管理的三大过程

规划质量管理 → 管理质量 → 控制质量
      ↓            ↓          ↓
  定标准        建体系      做检查
 (要达到什么)  (怎么达到)  (是否达到)

Step 1:规划质量管理 - 定义"好"的标准

质量标准的SMART原则

案例:售后APP项目的质量标准

模糊标准(不可衡量):

  • "系统要快"
  • "界面要美观"
  • "客户要满意"

清晰标准(SMART):

功能质量

  • 核心功能(预约、工单查询、支付)必须100%实现
  • 每个功能都有对应的测试用例
  • 单元测试覆盖率≥80%

性能质量

  • 响应时间:首页加载<2秒,列表页<1秒
  • 并发能力:支持1000并发用户
  • 崩溃率:<0.1%(每1000次操作,崩溃次数<1)

用户体验质量

  • 核心流程操作步骤≤3步
  • 新用户5分钟内能完成首次预约
  • 用户满意度(SUS量表)≥70分

安全质量

  • 通过OWASP Top 10安全测试
  • 用户数据加密传输
  • 无SQL注入、XSS等漏洞

兼容性质量

  • 支持iOS 12+和Android 8+
  • 适配主流机型(iPhone 8~15、华为、小米旗舰)
  • 不同屏幕尺寸正常显示

验收标准(Acceptance Criteria)

格式:Given-When-Then

功能:客户预约服务

验收标准1:
Given: 客户已登录APP
When: 选择服务类型、门店、时间后点击"确认预约"
Then: 
  - 系统显示"预约成功"提示
  - 客户收到预约确认短信
  - 门店系统同步显示该预约
  - 预约信息包含:服务类型、门店、时间、客户姓名、车牌号

验收标准2:
Given: 客户选择的时间段已满
When: 点击"确认预约"
Then:
  - 系统提示"该时间段已满,请选择其他时间"
  - 推荐3个临近可用时间段

好的验收标准特征

  • 可测试:QA能根据这个写测试用例
  • 无歧义:不同人理解一致
  • 可演示:能在演示会上验证

Step 2:管理质量 - 建立质量保障体系

质量保障活动清单

设计阶段

需求评审(Requirement Review)

时机:需求文档完成后
参与者:业务方、PM、技术负责人、测试负责人
检查点:
  ✓ 需求是否完整?有无矛盾?
  ✓ 是否可实现?
  ✓ 是否可测试?
  ✓ 边界情况是否考虑?

产出:需求评审报告、问题清单

技术方案评审(Design Review)

时机:技术方案设计完成后
参与者:架构师、开发团队、运维团队
检查点:
  ✓ 架构是否合理?
  ✓ 是否有性能瓶颈?
  ✓ 是否考虑可扩展性?
  ✓ 是否有安全风险?

产出:技术方案评审纪要、优化建议

开发阶段

代码评审(Code Review)

时机:每次代码提交前
检查点:
  ✓ 代码风格是否符合规范?
  ✓ 逻辑是否正确?
  ✓ 是否有安全漏洞?
  ✓ 是否有可优化的地方?
  ✓ 注释是否清晰?

工具:GitLab MR、GitHub PR、Gerrit

单元测试

要求:
  - 核心业务逻辑必须有单元测试
  - 代码覆盖率≥80%
  - 每次提交前必须通过所有单元测试

工具:JUnit、pytest、Jest等

测试阶段

测试类型全景图

测试类型 目的 何时做 谁来做
单元测试 验证代码单元功能 开发过程中 开发
集成测试 验证模块间协作 模块开发完成后 开发+测试
系统测试 验证整体功能 系统完成后 测试团队
性能测试 验证响应速度和并发 系统测试后 测试团队
压力测试 找到系统极限 性能测试后 测试团队
安全测试 发现安全漏洞 上线前 安全团队
兼容性测试 不同环境表现 系统测试中 测试团队
UAT 用户验收 上线前 真实用户

上线阶段

灰度发布(Gray Release)

策略:
  第1阶段:5%用户(内部员工) → 观察3天
  第2阶段:20%用户(试点城市) → 观察1周
  第3阶段:50%用户 → 观察3天
  第4阶段:100%全量

每个阶段的质量门禁:
  - 错误率<1%
  - 崩溃率<0.1%
  - 客户投诉<5个
  - 满足条件才进入下一阶段

如有问题:立即回滚到上一版本

质量门禁(Quality Gate)

概念:设定关卡,不达标不能进入下一阶段

示例:某项目的质量门禁

需求阶段→设计阶段:
  ✓ 需求评审无重大问题
  ✓ 业务方签字确认

设计阶段→开发阶段:
  ✓ 技术方案评审通过
  ✓ 架构师签字批准

开发阶段→测试阶段:
  ✓ 代码评审通过
  ✓ 单元测试覆盖率≥80%
  ✓ 所有单元测试通过

测试阶段→上线阶段:
  ✓ 系统测试通过率≥95%
  ✓ 无严重(P0/P1)bug
  ✓ 性能测试达标
  ✓ 安全测试无高危漏洞
  ✓ UAT通过

如不满足:不允许上线,必须修复后重新验证

Step 3:控制质量 - 持续监控和改进

缺陷管理

缺陷分级

级别 严重性 示例 处理时效
P0 阻塞性,系统不可用 系统崩溃、数据丢失、安全漏洞 立即修复
P1 严重,核心功能不可用 无法预约、无法支付 24小时内修复
P2 一般,功能可用但体验差 页面加载慢、按钮位置不合理 3天内修复
P3 轻微,不影响使用 文字错误、颜色不美观 下个版本修复

缺陷跟踪流程

发现缺陷 → 登记(Jira/禅道)→ 指派开发 → 开发修复 → 测试验证 → 关闭
    ↓                                                  ↓
  (记录:时间、发现人、严重性、复现步骤)      (验证通过?)
                                                    ↓ 否
                                                  重新打开

质量度量指标

过程质量指标

代码质量:
  - 代码评审覆盖率:95%的代码都经过评审
  - 单元测试覆盖率:≥80%
  - 代码规范符合率:通过SonarQube扫描

测试质量:
  - 测试用例覆盖率:每个需求都有测试用例
  - 缺陷发现率:测试阶段发现的bug占总bug的比例
  - 缺陷修复率:(已修复bug/总bug)≥95%

交付质量指标

系统质量:
  - 缺陷密度:每千行代码的bug数<3
  - 严重缺陷数:P0/P1级别bug = 0
  - 崩溃率:<0.1%

用户质量:
  - 客户满意度(CSAT):≥4.5/5
  - 首月留存率:≥80%
  - 客诉率:<1%

质量趋势分析

每周/月度生成质量报告:

【本周质量数据】
- 新增bug:23个(↓相比上周减少5个)
- 已修复:20个
- 待修复:15个(P0: 0, P1: 2, P2: 8, P3: 5)
- 测试通过率:92%(目标95%)

【质量趋势】
- bug发现率在下降 → 代码质量在提升
- P0/P1 bug从上周5个降到2个 → 好转

【风险预警】
⚠️ 性能测试发现响应时间超标,需优化数据库查询
⚠️ 安全测试发现2个中危漏洞,需本周修复

质量文化:从"质量是QA的事"到"质量是每个人的事"

丰田的"安灯系统"(Andon)

理念:任何人发现质量问题,都有权停止生产线

在软件项目中的应用

授权机制:
- 任何人发现严重bug,可以发起"质量冻结"
- 停止新功能开发,全员修bug
- 质量达标后才解除冻结

案例:
某项目在上线前1周,测试发现数据安全漏洞。
测试负责人发起"质量冻结":
- 停止所有新功能
- 5名开发全部投入修复漏洞
- 3天后漏洞修复,质量达标
- 虽然延期3天,但避免了安全事故

质量激励机制

正向激励:
- "零缺陷奖":连续3个迭代无P0/P1 bug,团队奖励1万
- "质量之星":每月评选发现最多隐藏bug的测试人员

负向激励:
- 线上事故追责:P0级别线上bug,开发和评审者都要写事故报告
- 质量红线:如果某模块bug率>10%,该模块负责人需要做团队分享反思

真实战场:某新势力APP的质量保障实践

背景

  • 项目:客户端APP 2.0版本
  • 周期:6个月
  • 团队:20人(开发15人,测试5人)

质量保障措施

阶段1:规划(第1月)

✓ 制定质量标准文档(20页)
✓ 定义验收标准(每个功能都有明确的Given-When-Then)
✓ 设定质量门禁
✓ 建立质量度量看板

阶段2:执行(第2-5月)

每周质量活动:
- 周一:需求评审会(2小时)
- 周三:代码评审(持续进行,GitLab MR)
- 周五:质量周报发布

每月质量活动:
- 月度质量复盘会
- 质量数据趋势分析
- 质量改进措施制定

阶段3:测试(第5-6月)

测试全覆盖:
- 功能测试:1200个测试用例,通过率98%
- 性能测试:模拟5000并发,响应时间<2秒
- 安全测试:通过第三方渗透测试
- 兼容性测试:覆盖50款主流机型
- UAT:邀请100名真实用户试用2周

阶段4:上线(第6月)

灰度发布策略:
- 第1周:内部员工(200人)
- 第2周:试点城市(2万用户)
- 第3周:全国(100万用户)

每个阶段质量门禁:
- 崩溃率<0.1%
- 客诉<10个/天
- 满意度>4.0/5

结果

  • ✅ 按时上线,零延期
  • ✅ 上线首月崩溃率0.08%(行业平均2%)
  • ✅ 客户满意度4.6/5
  • ✅ 获得App Store "编辑推荐"
  • ✅ 首月新增用户50万,远超预期20万

关键成功因素

  1. 质量标准明确,不是"差不多就行"
  2. 质量门禁严格执行,不达标绝不放行
  3. 全员质量意识,不是"QA的事"
  4. 灰度发布稳妥,不是"一把梭"

实战练习:为你的项目建立质量管理体系

任务1:定义质量标准

为你的项目定义:

  • 功能质量标准(3条)
  • 性能质量标准(3条)
  • 用户体验质量标准(3条)

任务2:设计质量门禁

设定各阶段的质量门禁条件:

  • 需求→设计
  • 设计→开发
  • 开发→测试
  • 测试→上线

任务3:质量度量指标

选择5个关键质量指标,设定目标值

明天,我们将完成Day 30的最后内容:项目收尾与复盘。

未经允许不得转载:似水流年 » Day 30下午-1:项目质量管理 - 质量是设计出来的,不是检查出来的