致力于建立自动驾驶及关联“学科”知识库 |
来源:AUTOSEMO、汽车电子与软件
| 首图图源
:网络
全文 6000+ 字,预计阅 读 35-40 分钟
图
1-1 CANoe 界面示意图
广泛的总线支持: 支持多种车用网络协议,如 CAN 、 LIN 、 FlexRay 、以太 网、 MOST 等,以及一些基于 CAN 的通讯协议,如 J1939、 CANopen 、 ARINC825 和 ISOBUS 等,能满足汽车电子系统中复杂的总线通信需求。
强大的仿真能力: 可在实验室环境下模拟整车网 络通信,帮助工程师在开发 初期对 ECU 的功能进行评估,也可用于系统的功能分析、测试以 及总线系统和 ECU 的集成,以便尽早发现并解决问题。
高效的测试功能: 具有测试功能集,能够简化或 自动进行测试,并自动生成 测试报告,方便工程师对测试结果进行分析和评估。
全面的诊断功能: 可与 ECU 进行诊断通信,帮助工程师分析诊断通信过程 中的问题,对 ECU 的诊断功能进行验证和测试。
1.2 INTEWORK VBA
VBA ( INTEWORK VBA )是由经纬恒润 推出的一款国产化的总线分析工具,近几年在市场中有不错的表现,具体的功能特点有:
基本监控与分析: 能够对 CAN 、 CANFD 、 LIN 、以太网等总线数据 进行监 控和分析,实时采集总线上的报文,并解析报文中的单个信号,帮助工程师掌握 总线通信的详细情况。
节点仿真功能: 可以模拟车辆电子控制单元( ECU )的行为,在总线 上发送 和接收报文,方便进行系统的集成测试和验证。
报文发送与回放: 支持用户手动发送特定的报文到总线,用于测试 总线系统 对特定指令的响应,还可以将之前监控到的总线数据保存下来进行离线回放,以 便深入研究历史数据。
脚本编程支持: 基于 Python 脚本开发环境,用户可以 根据自己的需求编写 脚本,实现自动化测试、数据处理和复杂的仿真场景,具有较高的灵活性和可扩 展性。
图
1-2 VBA 界面示意图
1.3 Wireshark
Wireshark 是一款免费、开源的网 络数据包分析工具,主要应用在汽车网络 通信分析的场景。
Wireshark 可以捕获汽车以太网总 线上的数据包,对数据包进行详细的分析 和解读,帮助工程师了解网络通信的细节,例如分析网络通信中的协议、数据格式、通信频率等。不过,与专业的汽车总线监控工具相比, Wireshark 在汽车领 域的应用可能需要更多的配置和专业知识。
1.4 Vehicle Spy
Vehicle Spy 是一款综合功能强大且易 于上手的软件工具,在工作中有广泛的 应用。
功能特点: 可用于执行诊断、节点 /ECU 仿真、数据采集、 自动测试、存储 器编辑或校准以及车辆网络总线监控等方面。 几乎支持所有汽车网络,包括 CAN 、 CANFD 、汽车以太网、 LIN 、 FlexRay 、 K -Line 等。它能够满足汽车电子 系统开发和测试过程中的多种需求,为工程师提 供了全面的解决方案。
2.1 Helix QAC
QAC 工具是一款主要用于 C/C++ 代码的 自动化静态分析工具,可以提供编 码规则检查、代码质量度量、软件结构分析、测试结果管理等功能。其功能特点 如下:
代码规则检查全面: 能够对 C/C++ 代码规则进行自动检查,报告 所违反的编 程标准和准则,可发现 1200 多种 C 语言问题、 800 多种 C++ 的问题。能准确发 现危险的结构、维护和移植中可能发生的问题,帮助开发人员在开发阶段提高代 码质量。
支持多种标准和扩展: 支持多种编程标准(如 ISO 、 MISRA C/C++ 、 CERT C/C++ 、 CWE C/C++ 、 AUTOSAR C++ 等)以及多种其他行业编程规则。
便捷的操作和报告: 产品界面简洁直观,操作简单,建立工 程后加入代码即 可进行分析。分析报告形式多样,可输出为 excel 、 word 、 pdf 、图表等。
图 2-1 QAC 静态分析结果
2.2 StatiCode
StatiCode 是一款静态代码分析工具 ,可以提供多种语言的质量安全分析和 代码度量分析,也可以提供编程标准合规分析。其特点有:
图
2-2 StatiCode 静态分析结果
支持 C/C++/Java/C#/JavaScrip t/TypeScript/Golang/PHP/Python 等多种语言。
采用全路径扫描、并行程序分析、数据流、符号执行、抽象解释 、作用域分 析等检测技术,能够检查内存崩溃、未初始化变量、资源泄露、空指针引用、控 制流缺陷、程序假死、除零错误、类型溢出等运行时缺陷。
软件可以从问题严重等级、 Top10 统计、趋势、处理状态分布等多种维度展 示检测结果,支持多条件组合缺陷查询。展示缺陷上下文细节,帮助技术人员复 盘缺陷的产生过程。
3.1 Tessy
Tessy 是一款主要用于动态单元测试的工具,其主要特点如下:
多种测试用例设计方式: 除了在简洁的界面中手动输入测试用例之外,还支 持从 Excel 中导入测试数据,也可以通过脚本编辑器编写测试用例。
支持多种覆盖度分析: 提供 C0 、 C1 、 MC /DC 等多种覆盖情况,可以帮助测 试人员全面了解测试的覆盖程度。
图
3-1 Tessy 工具执行单元测试效果图
3.2 Google Test
Google Test (简称为 gtest )是 G oogle 开发的一个用于 C++ 程序的单元测试 框架。它帮助开发者通过编写和运行测试来验证代码的正确性,并提供了丰富的 功能来支持各种测试需求。以下是 Google Test 的一些关键特点:
简单的测试编写方式: 开发者可以通过定义测试函 数来编写单元测试,测试 函数一般用 TEST 宏来定义。 Google Test 让编写测 试变得直观且容易理解。
丰富的断言支持: Google Test 提供多种断言类型来验证测试 结果,如 EXPECT_EQ 、 EXPECT_TRUE 、 ASSERT_ EQ 等。 EXPECT_* 断言允许测试继续 执行,即使断言失败;而 ASSERT_* 断言则 会在失败时立即停止测试。
测试分组: 可以通过测试用例组将相关的测试组织在一起,便于管理和执行。 每个测试组可以包含多个单独的测试。
Fixture 支持: 通过测试夹具( Test Fixture ), 可以为一组测试 设置通用的初 始化和清理代码。使用夹具有助于减少测试中的重复代码,并确保每个测试在相 同的初始条件下运行。
跨平台支持: Google Test 可以运行在 Linux 、 Win dows 、 macOS 等多种平台 上,具备良好的跨平台兼容性。
3.3 Catch 2
Catch2 是一个专门针对于 C++ 设计的单 元测试框架,它能够帮助开发者高 效地编写和管理单元测试用例,提高代码的质量和可靠性,其具体特点如下:
自动注册测试用例: 能够自动发现和注册测试用 例,无需手动管理测试用例 的列表或执行顺序,简化了测试代码的编写和维护。
支持多种测试场景: 允许以结构化的方式组织测试,可描述 不同的测试场景 和条件,能够有效的提高复杂的业务逻辑测试覆盖度和效率。
良好的文档和教程: 拥有详细的文档和丰富的教程 ,对于初学者来说易于上 手,能够快速掌握框架的使用方法。
#04
4.1 Tessy
Tessy 工具除了能够进行单元测试之外还有着强大的集成测试功能。工 具内包含了一系列专门的集成测试套件,这些套件符合 ISO 26262 功能安全 标准,专注于 ECU (电子控制单元)的模块交互测试和通信协议(如 CAN 、 LIN )的集成验证。 Tessy 提供的测试套件涵盖了模块之间的交互、接口验证、 数据流测试和系统行为验证等方面。其集成测试的优势在于:
测试用例生成和执行自动化,适合复杂的汽车基础软件;
提供 FC/CPC 覆盖率,满足 ISO 26262 等功能安全标准;
支持主流编译器和调试器,与汽车基础软件工具链无缝集成;
直接在目标硬件上运行测试,确保与真实环境一致;
自动生成符合 ISO 26262 的测试报告,便于审核和验证。
图
4-1 Tessy 工具执行集成测试效果图
4.2 VectorCAST
VectorCAST 是一款专门用于嵌入式软件测试的自动化工具,广泛应用 于汽车、航空航天、铁路、医疗等领域,尤 其适合对安全性、可靠性要求比 较高的系统。
采用高度模块化的设计,以独立模块协同工作 的方式实现高效的测试功 能。其核心模块包括:
VectorCAST /C++ 和 VectorCAST / Ada : 分别支持 C/C++ 和 Ada 语言 的单元测试和集成测试,进而提供自动生成 测试用例的功能。
VectorCAST/QA : 集成测试模块,专注于代码覆盖率 分析和回归测试。 此外,通过与 CI/CD 工具链结合,完成测试过 程的持续集成和质量保证。
VectorCAST/Manage : 项目管理模块,用于管理多个测试环境、报告生成 和测试进度跟踪。
Stub 和 Mock 支持模块: 提供对外部依赖的模拟功能,实现未完成模块 的隔离测试。
图
4-2 VectorCAST 工具图
4.3 Cantata
Cantata 是一款功能强大的 C/C++ 软件测试工具 ,特别是在嵌入式和 高可靠性领域中表现出色。其软件设计具有高度模块化、用户友好性 和自动 化的特点,其架构和功能的设计完全针对嵌入式系统和复杂集成测试的需求。 具体模块介绍如下:
测试框架模块: 这是 Cantata 核心设计之一,让用 户只需关注测试逻辑的设计。测试框架包括测试用例函数、初始化代码和断言代码。
Stub 和 Mock 模块: 专为嵌入式开发设计,支持模块间依赖的隔离测 试。 Stub 和 Mock 功能能 够动态生成,方便用户模拟未实现模块或硬件接 口。
数据驱动模块: 支持导入外部测试数据文件 (如 CSV 、 Excel ), 将测 试逻辑与测试数据分离,实现数据驱动测试。
此外, Cantata 内置的回归测试机制,能够自动检测代码变更,识别受 影响的测试用例并重新运行,从而确保代码更新后的系统稳定性。
图
4-3 Cantata 管理视图
5.1 AbsInt
AbsInt 是一款应用于性能测试的静态 分析工具,该工具能够在代码开发、控 制器集成阶段评估资源使用率,指导芯片选型和工程优化、保证堆栈空间分配合 理性、保证任务周期的稳定性,规避软件中函 数执行时间的不合理风险。
在 AbsInt 工具中集成丰富的功能套件,能够支持用户应对不同的使用场景:
AIT WCET Analyzer : 最差情况执行 时间分析工具,针对特定的处理器和编 译器,能够分析出接近实际运行情况的最差执行时间。
StackAnalyzer : 最差情况堆栈使用量分析工具,可针对特定的处理器 族和编 译器, 自动分析出任务的最差堆栈使用量,防止堆栈溢出或资源浪费。
TimingProfiler : 代码执行时间分析工具,针对特定的处理器族和编译器,能 从初期开始对代码执行时间进行持续分析和评估。
特点优势: 作为代码静态分析工具,可直接导入编译后的二进 制可执行文件 进行自动分析;具有图形化显示功能,可为优化提供依据;能遍历所有程序执行 路径,对所有场景有效且无需提供测试用例。
图
5-1 AbsInt 执行方案
5.2 RVS
RVS ( Rapita Verification Sui te )工具是一款嵌入式系统在板测试工具,其能 够进行自动化时间性能分析,并为复杂嵌入式系统提供可视化任务调度和时序追 踪,其功能套件主要有:
RapiTime : 软件时间性能分析工具,可提供函数级、代码段级的最差情况执 行时间、最大执行时间、最小执行时间、平均执行时间、高水位执行时间的测量 和统计,帮助用户定位性能瓶颈和软件优化重点。
RapiTask : 软件任务调度和事件分析工具,可视化软件任务调度和 事件跟踪, 帮助用户解决在使用复杂调度行为(如多核、多线程)的嵌入式系统 时可能面临 的挑战,如定位时序错误、系统容量和负载问题等。
特点优势: 产品符合 ISO-26262 、 DO178B/C 、 IEC-61508 等行业 标准,兼容 多种操作系统和编程语言,广泛支持各类编译环境及各类目标芯片。
图 5-2 RVS 系统级分析效果图
5.3 Gliwa T 1
GliwaT1 可以满足开发流程中不同阶段对嵌入式时间的需求,对函数执行时 间、控制器负荷、多核稳定性等均具备成熟资质, GliwaT1 工具包含如下几类分 析内容:
静态代码分析: 分析时间工具读取应用程序源代码或二进制 代码,计算指定 代码段执行的时间下限 BCET 和时间上限 WCET 。
代码仿真: 模拟某种 MCU 下给定二进制代码的运行,并考虑流水线 与缓存, 再结合嵌入式测试环境,真实模拟最差工况。
调度分析: 基于某个 RTOS 的调度器模型,将内核执行时间最小 / 最大值和 应用模型作为输入,输出为 WCRT 。
借助 Gliwa T1 工具实时显示时间要素,对用户应用软件执行过程中 复杂的 任务调度、中断、事件发生的情况以时间轴进行显示。通过显示和分析,用户可 以变更系统设计参数,通过对比,进行调试和优 化系统时间性能表现。
5.4 DT 10
DT10 是一个用于软件研发的动态测试和跟踪调试工具,一般需要搭配 DT10 高速采集设备和软件共同使用。
性能评估和测试: 可监测每个函数的执行时间和周期时 间,也能够监测系统 中任意两行代码之间的执行时间以及周期时 间。对于多任务的汽车软件系统, DT10 还可监测 CPU 压力。通过对这些性能指标的监测和分析, 测试人员可以了解软件的性能瓶颈和优化方向。
覆盖率统计: 可以帮助用户获取程序运行时的覆盖率,包括 语句覆盖和分支 覆盖。通过 DT10 的覆盖率统计功能,在测试人员执行测试用例之后,可以统计 相关测试之后的代码覆盖率情况。
错误定位和回溯: 具有强大的缺陷回溯定位能力,能够跟踪和 检测软件执行 过程中的路径、变量和各种中间状态。当软件出现故障或异常时, DT10 可以帮 助测试人员快速定位问题的根源,分析问题的发生过程和原因。
图
5-3 DT10 实施流程图
模糊测试( Fuzz Testing, Fuzzing ) 是一种重要的信息安全测试技术,广泛应 用于计算机系统、网络通信系统等复杂系统的安全测试,也是渗透测试的必备方 法之一,下面介绍几种模糊测试的工具:
6.1 Cybellum
Cybellum 是一款信息安全测试与管理的工具 ,能够帮助 OEM 及其供应商在 车辆的整个生命周期内大规模评估和降低安全风险。它无需访问源代码,通过 Cyber Digital Twins 技术检测开源软件与第三方应用程序的安全风险,并提供可实施的修复建议。 Cybellum 检测漏洞的来源广泛,支持 CVE 、 CWE 、 CNNVD 等漏洞库;可以从组件、产品、系统三个层面进行风险与漏洞管理;能够进行开 源漏洞、零日漏洞评估。
图
6-1 Cybellum 软件看板效果图
6.2 AFL
AFL ( American Fuzzy Lop )是一款基于覆盖引 导的模糊测试工具,它通过 记录程序执行的路径信息,对输入样本进行变异操作,如位翻转、字节替换等多 种方式,不断生成新的测试用例来探索程序可能存在的漏洞。 AFL 速度相对较 快,能有效发现软件中的多种漏洞,如缓冲区溢出等;近年 AFL 的 Windows 版 本也同样问世,使用者可以使用它对 Windows 下载的软件进行测试并尝试发现 漏洞。
6.3 Honggfuzz
Honggfuzz 是一种基于进化的模糊测试工具,它可以从初始的输入种子集合 开始,通过多种变异策略(如随机修改字节、插入块等)来生成新的测试用例, 然后根据程序的反馈来引导新测试用例的生成。 工具可以支持多进程的模糊测试, 利用多核处理器的优势来提高测试效率,并且该工具支持多种平台,包括 Linux 、MacOS 、 Windows 等。
6.4 SFuzz
SFuzz 是一款基于模型的通用模糊测试工 具。其采用框架式结构设计,支持 丰富的模糊测试模型,包括文件格式、网络协议、工业控制协议、硬件设备及物 联网设备等,基于这些模型 SFuzz 可以快速的对各种软硬件系统的组 件进行自动 化安全测试,识别其潜在漏洞。 SFuzz 具有效率高、可并发、可扩 展、可回溯等 优点,能够自动产生大量边界用例、畸形用例、随机用例等,通过这些测试用例 发现被测对象是否存在潜在安全漏洞。
图
6-2 SFuzz 软件看板效果图
6.5 SCA
SCA (Software Composition Analysis ) 是软安科技用于软件供应链安全和合规 检测的工具,能够在软件整个生命周期内、针对软件源码项目和二进制文件检测, 为 OEM 提供可视化、透明化软件物料 SBOM ,评估软件安全、合规风险,协助 处置最紧要的威胁、持续监测安全情报,使 OEM 实时保障产品安全。
图 6-3 软安 SCA 检测全景图
测试管理工具可用于测试的各个阶段,包括用例管理、测试执 行、 缺陷管理、 版本管理等。通过在测试中应用这些工具,可以提升测试效率并确保测试的规范 性。
7.1 禅道
禅道是一款功能全面的国产项目管理工具,具备项目管理、需求 管理 、测试 用例管理、缺陷管理、自动化测试和效能管理等多项功能,能够满足各个阶 段和 不同测试类型的需求。同时, 作为一款开源工具,用户 可以根据自身的需求进行 二次开发,满足不同场景的个性化需求。
图 7-1 禅道工具的看板界面
7.2 JIRA
JIRA 是一款基于 Java 架构的管理系统,具备项目管理、问题跟踪与管理、 敏捷流程管理、团队协作、报告与分析等功能。该系统具有高度的可定制和可扩 展性,能够根据不同项目的需求进行定制化配置和工作流 开发。此外, JIRA 还 支持对不同的用户和角色进行精细的权限管理,以确保项目数据的安全和保密性。
图 7-2 Jira 任务列表示意图
7.3 INTEWORK TAE & TPA
TAE ( INTEWORK TAE )和 TPA ( INTEW ORK TPA )是经纬恒润自主研发 工具链中用于项目管理与测试管理的一套工具链。
TPA 工具主 要应用于项目管理、流程监控与管理、用例管理、执行管 理、 缺 陷管理等方面。 TPA 具备良好的数据共享与协同性,方便团队成员 之间的数据共 享和协同工作,同时,它具有灵活的权限管理功能,可以根据不同的角色权限设 置不同的查看和操作权限。
图
7-3 TPA 测试用例集管理界面示意图
TAE 工具主要是应用于自动化测试用例搭建、测试执行 与监控、测试报告定 制生成等方面。 TAE 具备故障注入、标定、测量、诊断、模型在回路测试( MIL ) 等一系列与 ECU 测试相关的功能,能够满足汽车电子领域对 ECU 测试的多 种需 求。并支持用户将可重用的测试步骤封装成用户库,提高测试序列开发的效率。
图 7-4 TAE 车手互联测试场景
进交流群
|
雷科技 · 苹果 AirPods 拆解出炉:完全无法修理,坏了只能买新的 8 年前 |
|
小小包麻麻 · 春节的福字春联和红包,我给妞儿们备好啦! 8 年前 |
|
治愈系心理学 · 这件事,一步都不能让 8 年前 |
|
赛柏蓝器械 · 惊!违反医械GSP,企业挂网配送资格被取消 7 年前 |
|
微设计 · 私家小院 | 你也可以拥有美丽的花园~ 7 年前 |