9、嵌入式安全关键应用认证工具与架构框架解析

嵌入式安全关键应用认证工具与架构框架解析

1. 测试工具介绍

1.1 CoverCode 测试工具

CoverCode 测试工具专为满足 RTCA/DO - 178B 指南中 A 级认证所需的结构覆盖分析而设计。结构覆盖分析旨在确保测试足够全面,它与稍后介绍的需求覆盖测试工具互补,后者主要关注测试内容,而非测试质量。由于结构覆盖分析的通用性,CoverCode 有望成为安全关键软件开发的高效通用工具。

1.1.1 结构覆盖分析示例

结构覆盖分析衡量程序结构在执行过程中的执行或覆盖程度。有多种结构覆盖定义,产生不同的覆盖标准,且可在目标代码和源代码上进行测量。简单的语句覆盖标准测量代码中每个语句是否执行以及执行次数。例如,CoverCode 生成的源代码级语句覆盖报告包含程序列表,标注行号和每个语句的执行次数(命中次数)。若一行有多个语句,会拆分为多行。未命中的行(命中次数为 0)可能隐藏错误,会用星号标记。除语句覆盖,还有更复杂的覆盖标准,如分支覆盖,检查每个可能的分支是否至少被执行一次,这在查找无 else 分支的 if 语句错误时特别有用。

1.1.2 架构

CoverCode 为嵌入式环境设计,主要组件包括:
- 多个覆盖参考材料生成器
- 覆盖控制器
- 覆盖分析器
- 覆盖报告生成器
- 覆盖监视器

覆盖监视器下载到目标板,其余组件驻留在主机上。该工具以非侵入方式进行结构覆盖分析,使用覆盖监视器而非对代码进行插桩。目标板上的覆盖监视器是标准的 DDC - I 调试监视器,通过断点透明控制目标程序,由主机上的覆盖控制器通过串行或以太网连接控制。覆盖控制器负责计算断点地址,用于生成执行跟踪,显示程序的执行部分。覆盖参考材料生成器分析代码,将其划分为具有固定控制流的基本块,为断点计算提供基础,并将目标程序的执行与目标代码和源代码关联起来。覆盖分析器和报告生成器将执行跟踪转换为报告,分析器进行基本分析,报告生成器以可读格式呈现信息。

CoverCode 支持多种标准覆盖标准,包括 RTCA/DO - 178B 指南要求的所有标准。在源代码级支持语句覆盖、调用覆盖、分支覆盖、决策覆盖和 MCDC;在目标代码级仅支持语句和分支覆盖。此外,它还提供特殊选项,可将多次调用同一代码的结果累积测量覆盖情况,并允许在报告中添加未覆盖情况的解释。

1.2 需求覆盖测试工具

需求覆盖测试工具专为支持 RTCA/DO - 178B 指南中 A 级认证所需的基于需求的覆盖分析而设计。其目的是确保每个需求都有测试用例,测试用例满足特定标准,且必要的测试用例已成功执行。该工具解决了软件测试中的常见问题,可作为通用开发工具,与 CoverCode 工具互补。

1.2.1 需求覆盖分析示例

需求覆盖分析的基础是需求、测试用例及其关系的描述。一个需求的满足可能依赖多个测试用例通过,一个测试用例也可能用于测试多个需求。例如,给定需求 R1、R2、R3 和测试用例 C1、C2、C3,R1 可能需要 C1 和 C2 都通过才能满足。需求和测试用例可分类,如测试用例可分为正常和健壮性类别,需求可分为功能、性能、高级、低级等类别。准备好工具接受的基本信息后,工具可执行相关测试程序并生成多种报告。若测试用例 C1 失败,C2 和 C3 成功,工具将生成相应报告,还可生成特定类别的报告。

1.2.2 架构

需求覆盖测试工具虽集成在一个工具中,但由多个概念上不同的组件组成:
- 组织者:解析和分析工具的初始输入,使用专用测试语言描述需求、测试用例、类别及其关系,进行静态合理性和一致性检查,目标是用该语言完全形式化需求规范和测试计划。
- 脚本生成器:生成描述应执行的测试程序及其包含的测试用例的初始脚本,也可根据特定需求或测试用例类别生成子集脚本。
- 执行器:执行测试程序并收集结果,使用目标的标准工具下载和执行测试程序,测试用例通过简单的目标特定包向执行器报告结果,最终生成包含测试结果的文件。
- 分析器:根据需求和测试用例的关系计算需求的满足程度,还计算每个需求和测试用例类别的汇总信息。
- 报告生成器:生成所有需求和测试用例的顶级报告,也可生成各种特殊报告,目标是完全自动化测试报告的生成。脚本生成器还可根据先前测试运行的结果生成脚本,如仅执行先前失败的测试用例,减少重新测试的时间。

1.3 工具组件总结

工具名称 主要功能 主要组件 支持的覆盖标准
CoverCode 测试工具 结构覆盖分析 覆盖参考材料生成器、覆盖控制器、覆盖分析器、覆盖报告生成器、覆盖监视器 源代码级:语句覆盖、调用覆盖、分支覆盖、决策覆盖、MCDC;目标代码级:语句和分支覆盖
需求覆盖测试工具 基于需求的覆盖分析 组织者、脚本生成器、执行器、分析器、报告生成器 无明确提及特定覆盖标准,主要关注需求与测试用例的关系

1.4 工具工作流程 mermaid 图

graph LR
    classDef process fill:#E5F6FF,stroke:#73A6FF,stroke-width:2px

    A[CoverCode 测试工具]:::process --> B[覆盖参考材料生成器]:::process
    A --> C[覆盖控制器]:::process
    A --> D[覆盖分析器]:::process
    A --> E[覆盖报告生成器]:::process
    A --> F[覆盖监视器]:::process
    B --> C
    C --> F
    F --> C
    C --> D
    D --> E

    G[需求覆盖测试工具]:::process --> H[组织者]:::process
    G --> I[脚本生成器]:::process
    G --> J[执行器]:::process
    H --> I
    I --> J
    J --> K[分析器]:::process
    K --> L[报告生成器]:::process

以上介绍了 CoverCode 测试工具和需求覆盖测试工具的功能、架构和工作流程,这些工具在嵌入式安全关键应用的认证和开发中具有重要作用。

2. OMI/SAFE 软件工厂

2.1 软件工厂架构

OMI/SAFE 软件工厂由多个独立的工具和组件构成,可根据解决的问题分为不同类别:
- 低级别支持 :包含新的 ANDF 安装程序和一些增强的低级组件(运行时系统和库)。这些组件经过优化,以改善因误差传播导致的数值缺陷问题,并具备计算过程中的自动错误控制机制,这些问题超出了 RTCA/DO - 178B 的范畴。
- 静态代码分析 :相关组件有之前提到的 Annex H 的实现以及静态代码分析器。静态代码分析器在 ANDF 级别工作,能对程序的正确性和编程风格进行多项静态检查,这在 C 语言编程中尤为有用,因为 C 语言既没有 Ada95 的安全增强特性,也没有 Annex H 提供的功能。
- 安全和可调度性分析 :包含两个子系统,安全分析子系统可自动识别安全关键系统中的非安全组件,并为相关组件构建危险/故障列表;可调度性分析子系统用于分析安全关键实时应用是否能满足其定时要求。
- 测试和文档 :包括前面介绍的两个 DDC - I 测试工具和一个测试用例生成器。测试用例生成器既能生成用于自动结构覆盖测试的传统测试用例,也能生成考虑数据范围而非单个样本的测试用例。
- 形式验证 :该组件是集成在形式验证工具中的形式验证内核,可用于自动验证嵌入式安全关键应用的某些属性。

2.2 软件工厂组件总结

类别 组件 功能
低级别支持 新 ANDF 安装程序、增强的低级组件 改善数值缺陷,实现自动错误控制
静态代码分析 Annex H 实现、静态代码分析器 进行程序正确性和编程风格的静态检查
安全和可调度性分析 安全分析子系统、可调度性分析子系统 识别非安全组件,构建危险/故障列表;分析定时要求
测试和文档 DDC - I 测试工具、测试用例生成器 进行覆盖分析,生成测试用例
形式验证 形式验证内核 自动验证应用属性

2.3 软件工厂工作流程 mermaid 图

graph LR
    classDef process fill:#E5F6FF,stroke:#73A6FF,stroke-width:2px

    A[低级别支持]:::process --> B[静态代码分析]:::process
    B --> C[安全和可调度性分析]:::process
    C --> D[测试和文档]:::process
    D --> E[形式验证]:::process

3. 架构框架概述

3.1 架构框架概念

“架构框架”用于指定架构描述中应包含的内容,独立于具体描述的系统。它是对如何描述架构的规范,而非特定架构的定义。架构框架很重要,因为架构的价值在于作为一种通信媒介,需要一个通用的“语言”(由架构框架定义)来比较不同的架构。

3.2 常见架构框架

常见的架构框架有美国国防部 C4ISR 架构框架、相关的核心架构数据模型以及新兴的 IEEE 架构描述推荐实践。这些框架为描述软件密集型系统的系统方面提供了规范。

3.3 架构框架作用总结

架构框架 作用
美国国防部 C4ISR 架构框架 为相关系统架构描述提供规范
核心架构数据模型 辅助架构描述,提供数据模型支持
IEEE 架构描述推荐实践 新兴的架构描述规范,推动架构描述的标准化

3.4 架构框架关系 mermaid 图

graph LR
    classDef process fill:#E5F6FF,stroke:#73A6FF,stroke-width:2px

    A[美国国防部 C4ISR 架构框架]:::process --> B[核心架构数据模型]:::process
    A --> C[IEEE 架构描述推荐实践]:::process
    B --> C

综上所述,嵌入式安全关键应用认证工具(如 CoverCode 测试工具和需求覆盖测试工具)、OMI/SAFE 软件工厂以及架构框架在嵌入式系统开发和架构设计中都起着至关重要的作用。这些工具和框架相互配合,有助于提高嵌入式安全关键应用的开发质量和效率,确保系统的安全性和可靠性。

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值