3. 质量评审体系:嵌入式软件质量模型与评审类型

做嵌入式项目这么多年,我越来越觉得一个道理:质量不是测出来的,是设计出来的,更是评审出来的。你想想看,一个Bug在需求阶段发现,改一改可能就几分钟;等到了现场才发现,那可能就是出差、换板、甚至召回。所以,建立一套靠谱的质量评审体系,是项目管理里最值得投入的事。

3.1 嵌入式软件质量模型(ISO 25010)

说到质量,总得有个衡量的尺子吧?ISO 25010就是这把尺子。它把软件质量分成两大块:产品质量和使用质量。对于嵌入式来说,我特别关注产品质量里的那几个维度。

核心观点:嵌入式软件的质量,不能只看功能跑没跑通。可靠性、效率、可维护性,往往比功能本身更致命。

3.1.1 产品质量模型(8大特性)

ISO 25010的产品质量模型,有8个特性。我挑几个嵌入式里最容易踩坑的说说。

质量特性 嵌入式场景解读 我踩过的坑
功能正确性 该做的事做了没?比如ADC采样值对不对。 曾经有个项目,功能测试全过,但现场发现采样值在低温下漂了5%。
性能效率 响应快不快?内存省不省? 我记得有个电机控制算法,仿真跑得飞起,上板后发现CPU占用率90%。
可靠性 死不死机?数据丢不丢? 这是嵌入式最要命的。我曾经遇到看门狗复位后,全局变量没重新初始化。
可维护性 代码好不好改?模块清不清晰? 接手过一份代码,一个函数3000行,改一个Bug要排查半天。
可移植性 换芯片、换编译器,要改多少? 硬件升级时,发现底层驱动和业务逻辑耦合得死死的。

我的习惯:在项目启动时,就把这8个特性列成一张检查表。每个迭代结束,对照着打一遍分。不用太复杂,1-5分就行,关键是让团队心里有数。

3.1.2 使用质量模型(5大特性)

使用质量,说白了就是用户觉得好不好用。嵌入式产品的用户可能是操作工、维修员,甚至是另一台机器。

  • 有效性:用户能完成任务吗?比如HMI上的启动流程是否顺畅。
  • 效率:完成任务快不快?比如参数配置需要点10下还是2下。
  • 满意度:用户用得爽不爽?这个容易被忽略,但很重要。
  • 抗风险性:误操作会不会导致事故?比如按了急停后,系统是否安全。
  • 上下文覆盖:在极端环境下还能用吗?比如高温、高湿、强振动。

嗯,这里要注意:使用质量的评审,最好让最终用户参与进来。我见过太多工程师自己觉得设计得很完美,结果现场工人根本不知道怎么用。

3.2 评审类型:技术评审、同行评审、管理评审

有了质量模型这把尺子,接下来就是怎么量的问题了。评审不是开大会,不同的目的要用不同的评审类型。我个人习惯把评审分成三类:技术评审、同行评审、管理评审。

嵌入式项目评审类型关系图 项目评审体系 技术评审 同行评审 管理评审 三类评审的定位差异 技术评审:关注“做对了没有”,聚焦技术方案和实现细节。 同行评审:关注“有没有更好的做法”,强调知识共享和缺陷发现。 管理评审:关注“项目健康度”,评估进度、风险、资源是否匹配。 三者互补,缺一不可。我建议每个迭代至少覆盖两种评审。

3.2.1 技术评审

技术评审,说白了就是专家把关。通常由资深工程师或架构师主导,审查技术方案的可行性、设计的合理性。

什么时候做?

  • 需求分析完成后,评审需求的可实现性。
  • 系统架构设计完成后,评审模块划分和接口定义。
  • 关键模块详细设计完成后,评审算法和数据结构。
  • 测试方案完成后,评审测试覆盖率和边界条件。

我曾经犯过的错:有一次赶进度,跳过了技术评审直接编码。结果做到一半发现,选用的RTOS在目标芯片上不支持某个关键特性。最后只能换方案,返工了两周。从那以后,技术评审我一次都不敢省。

3.2.2 同行评审

同行评审,也叫代码走查或同级审查。它的核心目的不是找茬,而是互相学习、共同提高。

我建议的同行评审流程:

  1. 准备阶段:作者提前把代码或文档发给评审人,每人花30分钟过一遍。
  2. 评审会议:控制在1小时内,作者逐段讲解,评审人提问和提建议。
  3. 记录问题:所有发现的问题都记录下来,分类为“必须改”、“建议改”、“仅供参考”。
  4. 跟踪闭环:作者修改后,评审人确认关闭。

我的小技巧:同行评审时,不要盯着代码一行行读。先看整体逻辑,再看边界条件,最后看代码风格。我曾经带过一个团队,刚开始大家觉得同行评审浪费时间,后来坚持了三个月,代码质量明显提升,Bug率下降了40%。

3.2.3 管理评审

管理评审,是给项目经理和客户看的。它不关心具体的技术细节,而是关注项目的整体状态。

管理评审的核心议题:

评审维度 关键问题 输出物
进度 当前进度是否符合计划?关键里程碑是否达成? 进度偏差报告
质量 缺陷趋势如何?测试覆盖率是否达标? 质量度量报告
风险 有哪些新风险?原有风险是否已缓解? 风险登记册更新
资源 人力是否充足?设备是否到位? 资源需求清单
变更 需求变更是否已评估影响? 变更控制记录

管理评审的频率,我建议每月一次,或者每个迭代结束做一次。形式可以灵活,但一定要有明确的结论和行动项。我最怕那种开完会什么都没定下来的评审,那还不如不开。

3.3 如何建立评审文化

光有流程和模型还不够,关键是团队愿不愿意做。我见过很多团队,评审就是走个过场,大家坐在一起,没人说话,最后签个字就完了。

怎么破?

  • 从简单开始:先做技术评审和同行评审,别一上来就搞全套。
  • 领导带头:项目经理和架构师要亲自参与,不能只让下面的人做。
  • 不追责:评审中发现的问题,不能用来考核个人绩效。否则没人敢说真话。
  • 持续改进:每次评审结束后,花5分钟复盘评审过程本身,看看哪里可以优化。

总结一下:ISO 25010给了我们衡量质量的尺子,三类评审给了我们保证质量的方法。但最终,质量是靠人做出来的。建立一种开放、坦诚、持续改进的评审文化,比任何流程都重要。