从质量到合规
静态分析、单元测试、覆盖率测量和持续监控同时具有双重作用:既能提高软件质量,又能生成合规性证据。缺陷得以尽早发现,代码库始终保持在可知且可审计的状态。其产出(需求可追溯性记录、结构覆盖率数据以及工具资质证明)均符合ISO 26262、DO-178C、IEC 61508和IEC 62304标准的要求。
标准实际上要求什么
虽然每项标准都有其独特的结构和术语,但它们都遵循一套共同的要求。
- 基于需求的测试:每项测试都必须可追溯到特定的需求。缺乏可追溯性的测试不足以作为验证的充分证据。
- 结构覆盖率:标准要求达到最低覆盖率水平,包括语句、分支或MC/DC,具体取决于软件的安全完整性等级。
- 工具鉴定:验证过程中使用的工具本身必须经过鉴定或认证,以便其输出结果可作为可信的证据。
- 文档化证据:结果必须以可供审查、审计和重现的形式记录下来。
质量实践与合规的衔接
合规性静态分析
PC-lint Plus已通过IEC 61508(SIL 1-3)、ISO 26262(ASIL A-D)、IEC 62304和EN 50716认证。该工具可检查是否符合MISRA C:2023、MISRA C++:2023、AUTOSAR C++14、CERT-C标准,并支持与CWE兼容的漏洞检测。每个检测结果均可追溯,并可通过记录在案的理由进行豁免,这正是审核员所关注的重点。
单元测试与覆盖率以确保合规性
VectorCAST支持基于需求测试用例管理、需求与测试结果之间的双向可追溯性,以及安全标准所要求的各种模式下的覆盖率测量。其中包括“行业模式”,该模式可根据给定的标准和安全完整性等级自动选择正确的覆盖率标准。测试结果已通过TÜV认证。
持续质量监控
Squore将开发工具链各环节的数据(包括静态分析结果、测试结果、代码覆盖率指标以及需求覆盖率)整合到一个面板中。通过实施质量门控机制,防止不符合规范的代码继续推进,并提供趋势分析,使团队能够及早发现质量下降的迹象。
合规的实用路径
将验证工作融入开发流程,比将其视为最终阶段的活动能产生更好的结果。尽早引入静态分析可防止缺陷类别不断累积。具有可追溯性的单元测试会建立一个随项目发展而不断扩充的证据库。持续的覆盖率监控能在缺陷尚处于初期阶段时就将其暴露出来。每个阶段都为下一阶段提供支持,且每个阶段的输出结果正是认证机构所审查的内容。
PC-lint Plus、VectorCAST和Squore均已通过其所支持标准的认证,并可集成到现有的开发工具链中。它们生成的合规证据是工程工作的直接产出,而非单独的文档编制工作。