为何代码质量在受监管的市场中至关重要
标准规定最低要求,Vector助您超越标准。
车辆、飞机、医疗设备和工业控制系统中的软件运行在这样的环境中:一旦出现缺陷,将直接导致物理后果。这些行业的监管机构针对这一现实,制定强制性的验证要求:汽车行业的ISO 26262、航空航天行业的DO-178C、医疗设备行业的IEC 62304以及工业系统行业的IEC 61508。如果没有符合性证明文件,产品将无法出货。
安全关键行业的高风险性
汽车
现代车辆的数百个电子控制单元中包含超过1亿行软件代码。与安全相关的软件(包括制动系统、转向系统和安全气囊展开系统)中的缺陷可以直接导致物理后果。ISO 26262针对道路车辆电气和电子系统的功能安全定义一个基于风险的框架,要求在开发的每个阶段进行系统性的验证。
航空航天
航空软件必须满足DO-178C中规定的严格要求,才能获得认证机构的批准。该标准将软件的保证级别划分为D级(轻微)至A级(灾难性故障后果),级别越高,验证要求越严格。A级软件必须进行MC/DC覆盖率分析。
医疗器械
IEC 62304规范医疗器械的软件生命周期,要求对任何可能影响患者安全的软件组件进行结构化验证活动。在起搏器、输液泵或成像系统中,软件故障的后果是不言而喻的。
工业自动化
IEC 61508是工业应用中可编程电子系统功能安全的基础标准,适用于工厂控制系统、化工厂的工艺自动化等领域,也是许多行业特定标准制定的基础。
低质量代码的代价
除了安全方面的后果外,软件质量低下还会带来巨大的经济成本。
- 在系统集成阶段发现的缺陷,其修复成本是单元测试阶段发现的缺陷的10到100倍
- 在受监管行业中,现场故障可以引发产品召回、监管处罚及诉讼
- 审计未通过或认证被拒会延迟产品上市,并损害客户关系
- 因在质量方面走捷径而积累的技术债务会拖慢未来开发进度并增加风险
质量在实际中的意义
对于受监管行业的软件团队而言,质量的定义在于能够通过有据可查且可追溯的证据,证明软件已按规范开发、经过全面测试,并已根据其需求进行验证。
这意味着需要具备能够做到以下几点的工作流程和工具:
- 在缺陷扩散到整个开发生命周期之前尽早发现缺陷
- 按照适用标准的要求,测量并报告代码覆盖率
- 将每项测试结果追溯到具体的需求
- 生成符合认证机构要求的、可直接用于审计的报告
PC-lint Plus、VectorCAST和Squore专为该环境而设计。PC-lint Plus和VectorCAST均已通过其所支持标准的认证,生成的输出结果可被认证机构作为验证证据采纳。Squore能够汇总整个工具链中的这些证据,持续监控合规性,并执行质量门控措施,确保项目按计划推进。