嵌入式系统的可靠性、测试与问题追踪
1. 嵌入式系统的可靠性分析
嵌入式系统都有一定的可靠性要求,虽然这些要求可能未被明确记录,但它们确实存在。例如,系统软件每30秒崩溃一次并需要重启,这显然是不可接受的。那么每小时、每天、每月、每年或每10年崩溃一次呢?在某个节点,会有一个可接受的故障率,而进行可靠性分析的目的就是确定这个节点,并规划如何达到该目标。
1.1 实现可靠性的重要性
嵌入式系统开发者常希望软件永不失败,但这是不现实的工程目标。每个系统最终都会失败,并且随着故障率趋近于零,创建这样一个系统的成本会趋近于无穷大。因此,需要选择一个可接受的故障率,然后思考如何实现这个现实的目标。
1.2 可能的症状
若出现以下情况,则需要创建或改进可靠性计划:
- 没有明确的可靠性目标。
- 可靠性目标未包含软件缺陷导致的故障。
- 没有对产品的可靠性或稳定性给出定义(即多可靠才算足够?哪些故障是最严重的问题?)
1.3 可靠性不足的风险
- 产品可能过于不可靠,因为没有设定目标来激励开发团队(包括测试人员)在可靠性方面投入足够的额外精力。
- 由于在可靠性预测中未考虑软件故障,产品将过于不可靠。
- 由于没有可衡量的可靠性定义,将无法评估产品是否足够可靠。因此,可靠性将是偶然发生(或不发生),而不是经过设计实现的。
2. 代码审查的陷阱与注意事项
代码审查中最大的陷阱来自于试图走捷径。审查看似需要大量精力,因为它是一项团队活动,但没有其他方法能真正获得团队检查