客户端
游戏
无障碍

0

评论

收藏

分享

手机看

微信扫一扫,随时随地看

汽车基础软件常用的测试工具汇总

图片

来源:AUTOSEMO、汽车电子与软件 | 首图图源:网络

全文 6000+ 字,预计阅 35-40 分钟


本文节选自中国汽车工业协会软件分会、中国汽车基础软件生态标委会发布的《汽车基础软件测试指南》,文章主要介绍常用的基础软件测试工具,包括:1、总线监控工具;2、静态代码分析工具;3、单元测试工具;4、集成测试工具;5、性能测试工具;6、安全测试工具;7、测试管理工具

#01
总线监控工具
   
1.1 CANoe

CANoe 软件是 Vector 公司针对汽车电子行业推出的总线分析工具,其在软件的开发、测试的各个环节都有广泛应用,下述为 CANoe 具体的功能特点:

图片


 1-1 CANoe 界面示意图


广泛的总线支持:支持多种车用网络协议,如 CAN LIN FlexRay、以太 网、MOST 等,以及一些基于 CAN 的通讯协议,如 J1939、CANopenARINC825  ISOBUS 等,能满足汽车电子系统中复杂的总线通信需求。


强大的仿真能力:可在实验室环境下模拟整车网络通信,帮助工程师在开发初期对 ECU 的功能进行评估,也可用于系统的功能分析、测试以及总线系统和 ECU 的集成,以便尽早发现并解决问题。


高效的测试功能:具有测试功能集,能够简化或自动进行测试,并自动生成 测试报告,方便工程师对测试结果进行分析和评估。


全面的诊断功能:可与 ECU 进行诊断通信,帮助工程师分析诊断通信过程中的问题,对 ECU 的诊断功能进行验证和测试。


1.2 INTEWORK VBA


VBAINTEWORK 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 等。它能够满足汽车电子系统开发和测试过程中的多种需求,为工程师提供了全面的解决方案。




#02
静态代码分析工具
   

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#/JavaScript/TypeScript/Golang/PHP/Python 等多种语言。

采用全路径扫描、并行程序分析、数据流、符号执行、抽象解释、作用域分析等检测技术,能够检查内存崩溃、未初始化变量、资源泄露、空指针引用、控制流缺陷、程序假死、除零错误、类型溢出等运行时缺陷。


软件可以从问题严重等级、Top10 统计、趋势、处理状态分布等多种维度展示检测结果,支持多条件组合缺陷查询。展示缺陷上下文细节,帮助技术人员复盘缺陷的产生过程。




#03
单元测试工具
   

3.1 Tessy


Tessy 是一款主要用于动态单元测试的工具,其主要特点如下:


多种测试用例设计方式:除了在简洁的界面中手动输入测试用例之外,还支持从 Excel 中导入测试数据,也可以通过脚本编辑器编写测试用例。


支持多种覆盖度分析:提供 C0C1MC/DC 等多种覆盖情况,可以帮助测试人员全面了解测试的覆盖程度。


图片


  3-1 Tessy 工具执行单元测试效果图


3.2 Google Test


Google Test(简称为 gtest)是 Google 开发的一个用于 C++程序的单元测试框架。它帮助开发者通过编写和运行测试来验证代码的正确性,并提供了丰富的功能来支持各种测试需求。以下是 Google Test 的一些关键特点:


简单的测试编写方式:开发者可以通过定义测试函数来编写单元测试,测试函数一般用TEST 宏来定义。Google Test 让编写测试变得直观且容易理解。


丰富的断言支持: Google Test  提供多种断言类型来验证测试结果,如 EXPECT_EQEXPECT_TRUEASSERT_EQ 等。EXPECT_*断言允许测试继续执行,即使断言失败;而 ASSERT_*断言则会在失败时立即停止测试。


测试分组:可以通过测试用例组将相关的测试组织在一起,便于管理和执行。 每个测试组可以包含多个单独的测试。


Fixture 支持:通过测试夹具(Test Fixture),可以为一组测试设置通用的初始化和清理代码。使用夹具有助于减少测试中的重复代码,并确保每个测试在相同的初始条件下运行。


跨平台支持:Google Test 可以运行在 Linux Windows macOS 等多种平台上,具备良好的跨平台兼容性。


3.3 Catch2


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  管理视图




#05
性能测试工具
   

5.1 AbsInt


AbsInt 是一款应用于性能测试的静态分析工具,该工具能够在代码开发、控制器集成阶段评估资源使用率,指导芯片选型和工程优化、保证堆栈空间分配合理性、保证任务周期的稳定性,规避软件中函数执行时间的不合理风险。


 AbsInt 工具中集成丰富的功能套件,能够支持用户应对不同的使用场景:


AIT WCET Analyzer最差情况执行时间分析工具,针对特定的处理器和编译器,能够分析出接近实际运行情况的最差执行时间。


StackAnalyzer最差情况堆栈使用量分析工具,可针对特定的处理器族和编译器, 自动分析出任务的最差堆栈使用量,防止堆栈溢出或资源浪费。


TimingProfiler代码执行时间分析工具,针对特定的处理器族和编译器,能从初期开始对代码执行时间进行持续分析和评估。


特点优势:作为代码静态分析工具,可直接导入编译后的二进制可执行文件进行自动分析;具有图形化显示功能,可为优化提供依据;能遍历所有程序执行路径,对所有场景有效且无需提供测试用例。


图片


 5-1 AbsInt 执行方案


5.2 RVS


RVSRapita Verification Suite)工具是一款嵌入式系统在板测试工具,其能够进行自动化时间性能分析,并为复杂嵌入式系统提供可视化任务调度和时序追踪,其功能套件主要有:


RapiTime软件时间性能分析工具,可提供函数级、代码段级的最差情况执行时间、最大执行时间、最小执行时间、平均执行时间、高水位执行时间的测量和统计,帮助用户定位性能瓶颈和软件优化重点。


RapiTask软件任务调度和事件分析工具,可视化软件任务调度和事件跟踪,帮助用户解决在使用复杂调度行为(如多核、多线程)的嵌入式系统时可能面临的挑战,如定位时序错误、系统容量和负载问题等。


特点优势:产品符合 ISO-26262DO178B/CIEC-61508 等行业标准,兼容多种操作系统和编程语言,广泛支持各类编译环境及各类目标芯片。


图片


 5-2 RVS 系统级分析效果图


5.3 Gliwa T1


GliwaT1 可以满足开发流程中不同阶段对嵌入式时间的需求,对函数执行时间、控制器负荷、多核稳定性等均具备成熟资质,GliwaT1 工具包含如下几类分析内容:


静态代码分析:分析时间工具读取应用程序源代码或二进制代码,计算指定代码段执行的时间下限 BCET 和时间上限 WCET


代码仿真:模拟某种MCU 下给定二进制代码的运行,并考虑流水线与缓存,再结合嵌入式测试环境,真实模拟最差工况。


调度分析:基于某个 RTOS 的调度器模型,将内核执行时间最小/最大值和应用模型作为输入,输出为 WCRT


借助 Gliwa T1 工具实时显示时间要素,对用户应用软件执行过程中复杂的任务调度、中断、事件发生的情况以时间轴进行显示。通过显示和分析,用户可以变更系统设计参数,通过对比,进行调试和优化系统时间性能表现。


5.4 DT10


DT10 是一个用于软件研发的动态测试和跟踪调试工具,一般需要搭配 DT10 高速采集设备和软件共同使用。


性能评估和测试:可监测每个函数的执行时间和周期时间,也能够监测系统中任意两行代码之间的执行时间以及周期时间。对于多任务的汽车软件系统, DT10 还可监测CPU 压力。通过对这些性能指标的监测和分析,测试人员可以了解软件的性能瓶颈和优化方向。


覆盖率统计:可以帮助用户获取程序运行时的覆盖率,包括语句覆盖和分支覆盖。通过 DT10 的覆盖率统计功能,在测试人员执行测试用例之后,可以统计相关测试之后的代码覆盖率情况。


错误定位和回溯:具有强大的缺陷回溯定位能力,能够跟踪和检测软件执行过程中的路径、变量和各种中间状态。当软件出现故障或异常时,DT10 可以帮助测试人员快速定位问题的根源,分析问题的发生过程和原因。


图片


 5-3 DT10 实施流程图




#06
安全测试工具
   

模糊测试(Fuzz Testing, Fuzzing是一种重要的信息安全测试技术,广泛应用于计算机系统、网络通信系统等复杂系统的安全测试,也是渗透测试的必备方法之一,下面介绍几种模糊测试的工具:


6.1 Cybellum


Cybellum 是一款信息安全测试与管理的工具,能够帮助 OEM 及其供应商在车辆的整个生命周期内大规模评估和降低安全风险。它无需访问源代码,通过 Cyber Digital Twins 技术检测开源软件与第三方应用程序的安全风险,并提供可实施的修复建议。Cybellum 检测漏洞的来源广泛,支持 CVE CWE CNNVD 等漏洞库;可以从组件、产品、系统三个层面进行风险与漏洞管理;能够进行开源漏洞、零日漏洞评估。


图片


 6-1 Cybellum 软件看板效果图


6.2 AFL


AFLAmerican 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 检测全景图




#07
测试管理工具
  

测试管理工具可用于测试的各个阶段,包括用例管理、测试执行、缺陷管理、版本管理等。通过在测试中应用这些工具,可以提升测试效率并确保测试的规范性。


7.1 禅道


禅道是一款功能全面的国产项目管理工具,具备项目管理、需求管理、测试 用例管理、缺陷管理、自动化测试和效能管理等多项功能,能够满足各个阶段和不同测试类型的需求。同时, 作为一款开源工具,用户可以根据自身的需求进行二次开发,满足不同场景的个性化需求。


图片


 7-1  禅道工具的看板界面


7.2 JIRA


JIRA 是一款基于Java 架构的管理系统,具备项目管理、问题跟踪与管理、 敏捷流程管理、团队协作、报告与分析等功能。该系统具有高度的可定制和可扩展性,能够根据不同项目的需求进行定制化配置和工作流开发。此外,JIRA  支持对不同的用户和角色进行精细的权限管理,以确保项目数据的安全和保密性。 


图片


 7-2 Jira 任务列表示意图


7.3 INTEWORK TAE&TPA


TAEINTEWORK TAE)和 TPAINTEWORK TPA)是经纬恒润自主研发工具链中用于项目管理与测试管理的一套工具链。


TPA 工具主要应用于项目管理、流程监控与管理、用例管理、执行管理、 陷管理等方面。TPA 具备良好的数据共享与协同性,方便团队成员之间的数据共享和协同工作,同时,它具有灵活的权限管理功能,可以根据不同的角色权限设置不同的查看和操作权限。


图片


 7-3 TPA 测试用例集管理界面示意图


TAE 工具主要是应用于自动化测试用例搭建、测试执行与监控、测试报告定制生成等方面。TAE 具备故障注入、标定、测量、诊断、模型在回路测试(MIL 等一系列与 ECU 测试相关的功能,能够满足汽车电子领域对 ECU 测试的多种需求。并支持用户将可重用的测试步骤封装成用户库,提高测试序列开发的效率。


图片


 7-4 TAE 车手互联测试场景



联 系 & 声 明

进交流群

号主六耳
知识星球
声明:除文内特殊声明外,本公众号内所有文章编写或转载的目的仅用于学习和交流,不予以商用,不代表本号观点及立场。本公众号内资讯及正文引用图片均由个人公众号 ADS 智库六耳基于官网或公开信息梳理或引用。本公众号所引用及转载内容版权均归原作者所有,凡是注明来源 “ XXX ADS 智库 ” 或作者为 “ XXX 六耳、XXX ADS 智库 ” 的文章转载或引用时请注明来源 ADS 智库。若有版权或其他任何问题请联系六耳( 微信号:adas_miao ),本号将及时处理。


,安排一下?
免责声明:本内容来自腾讯平台创作者,不代表腾讯新闻或腾讯网的观点和立场。
举报
正常人的智商范围在85~115,你的智商在正常水平吗?测一测
广告千映智智商测试
了解详情
评论 0文明上网理性发言,请遵守《新闻评论服务协议》
请先登录后发表评论~
查看全部0条评论
首页
刷新
反馈
顶部