当前位置: 首页 > article >正文

基于模型的测试在汽车行业的应用

作 者 | 路国光出 品 | 汽车电子与软件摘要为解决汽车电子软件开发中传统测试效率低、覆盖不足、验证滞后等问题本文以基于模型的系统工程MBSE为背景研究基于模型的测试MBT在汽车行业的应用。阐述 MBT 概念、框架及测试对象、测试用例、测试环境与模型的关系结合 Simulink 建模、MIL/SIL/PIL/HIL 多环境验证、等效性测试、覆盖率分析等关键技术给出整车级 MBT 实施流程与车窗控制实例验证。结果表明MBT 可实现测试用例自动生成、多场景虚拟验证、需求与代码双向追溯显著提升测试效率与功能安全水平对汽车电控软件开发具有工程应用价值。引 言随着汽车智能化、网联化发展车载软件规模与复杂度持续提升传统人工测试难以满足高效、高覆盖、高安全的开发要求。基于模型的系统工程MBSE推动开发模式从物理迭代转向数字域持续验证促使测试环节左移。基于模型的测试MBT以模型为核心驱动测试设计、用例生成、环境搭建与结果评估已成为汽车电子测试主流技术。本文结合汽车开发实践系统梳理 MBT 框架、关键技术与工程应用为行业落地提供参考。图1 基于模型的系统工程V模型01 基于模型的测试(MBT)概述一种根据模型来设计测试的测试方法。MBT支持并拓展 了传统测试设计技术比如等价类划分、边界值分析、决策表、状态转换测试和用例测试等传统测试设计技术。1.1 MBT 基本概念模型的测试MBTModel-Based Testing是以模型为依据开展测试设计与执行的方法兼容等价类划分、边界值、决策表、状态迁移等传统技术。MBT从三大维度建立模型与测试的关系1测试对象与模型模型等效代码作为被测对象2测试用例与模型以模型为规格自动生成用例3测试环境与模型用模型构建虚拟测试台架。图2 基于模型测试三要素1.2 MBT 整体框架MBT 覆盖需求、建模、仿真、测试、验收全流程1需求层整车级→子系统→软硬件需求分解2模型层机电液模型、硬件模型、软件模型、虚拟装配3验证层模型验证→模型验收→虚拟验证→物理验证4工具链建模、仿真、自动化测试、覆盖率分析。图3 整车开发过程中基于模型测试应用02 测试对象与模型Simulink开发的软件Simulink模型就是我们的测试对象之一。Simulink模型在某些情形下等价于代码。对Simulink模型测试有几种不同深度1基于需求的测试验证模型功能与需求一致性2等效性测试背靠背测试对比模型与代码输出满足 ISO 26262 要求。2.1 基于需求的测试Requirements-based Testing需求的测试是一种功能测试主要验证目标为1件设计模型是否满足软件需求的功能定义2对象包括单元模型以及软件集成模型3察的对象包括追溯到单元模型以及集成模型上的各项需求。图4 基于需求的测试原理示意基于需求的测试是否充分用“需求覆盖率”指标来衡量包含三方面含义1. 每一条需求都能在模型中找到对应的模块2. 模型中每一个模块都要能找到对应的需求测试用例编写要求3.《详细设计开发要求》手动编写测试用例图5 基于需求的测试操作示意2.2 等效性测试Back-to-Back Testing2.2.1 效性测试意义等效性测试测试的核心意义的是验证模型与代码的一致性。当验证了代码与模型等效且模型已满足预设的软件需求时即可推导得出代码也满足相应需求。由浮点模型通过定标生成代码的精度损失定标过程中的人为错误代码生成器的信赖度ISO26262 的要求需要MILSIL以及PIL模式的模型和代码的等效性测试等效性测试的意义2.2.2 效性测试意义验证模型与代码的一致性当我们验证了代码与模型等效而模型又满足了需求则代码即满足了需求。用“需求覆盖率”指标来衡量效性测试是否充分Structural CoverageGoals结构覆盖率目标图6 等效性测试操作示意2.3 测试工具介绍BTC行业常用工具BTC、TPT支持 ATG 自动用例生成、覆盖率统计。BTC 是德国 BTC Embedded Systems AG 推出的面向汽车嵌入式、基于模型开发MBD的全流程自动化测试平台是Simulink 模型 自动生成代码测试的行业主流商用工具完全适配汽车功能安全 ISO 26262 最高工具认证TCL1广泛用于整车电控、动力域、车身控制等模型验证。BTC 整套平台叫 BTC EmbeddedPlatform核心由 4 大工具模块组成完整覆盖模型 (MIL)、软件 (SIL)、硬件 (PIL) 全阶段测试、需求测试、背靠背等效性测试、形式化验证BTC EmbeddedTester BASE基础版需求驱动测试、用例编辑、执行、基础覆盖率、Simulink 原生集成。BTC EmbeddedTester完整版背靠背测试 (B2B)、全自动结构用例生成、MC/DC 全覆盖、回归测试.BTC EmbeddedSpecifier需求形式化规范自然语言需求转形式化规约BTC EmbeddedValidator形式化验证数学级穷举校验、死代码 / 不可达逻辑检查核心优势对比原生 Simulink Test不修改原模型测试平台仅复制被测模型副本生成测试环境原生模型无任何改动、无额外测试接口 / 总线BTC Embedded Systems AG深度原生集成 Simulink自带 Simulink 菜单栏插件无需脱离 Simulink 界面即可建用例、执行、查看结果汽车行业全链路兼容完美支持 Matlab Embedded Coder、TargetLink 代码生成适配 AUTOSAR、ISO 26262 全 ASIL 等级极小用例集 高覆盖率基于模型检查算法生成最少用例达成 100% MC/DC远优图7 创建测试用例图8 查看结构覆盖率结构覆盖率指标Structural Coverage Goals MBT 常用覆盖率包括Statement Coverage (语句覆盖Condition Coverage条件覆盖Decision Coverage判定覆盖Modified Condition/Decision Coverage修正条件判定覆盖Switch-Case-Coverage (Switch Case覆盖Function Coverage函数覆盖Function Call Coverage调用覆盖03测试用例与模型基于模型的测试的基本思想是通过以下内容提高测试设计和测试实现活动的质量和效率1基于测试目标设计一个综合的MBT模型测试模型注MBT模型是利用工具完成的MBT模型通过复制规范模型获得2将模型作为一种测试设计规格说明提供给测试工程师注模型应包含高度格式化和详细的信息才能保证从模型自动导出用例3.1 用例生成逻辑基于模型测试的生成可以产生抽象的测试用例或具体的测试用例1抽象的测试用例没有输入和期望结果的具体值实现层面的的用例。也没有非常具体的测试步骤。测试大纲2具体测试用例对于输入值、期望测试结果等都有具体值实现层面的并且有非常详细的测试步骤描述。图9 手动测试与基于模型测试的对比系统级模型作为一种设计产品输出给下级子系统模型中应该可以提取测试需要的信息图10 V模型中各级测试用例与测试模型的关系04结 论传统汽车测试依赖实物样机、台架试验与道路实车测试成本高、周期长、场景受限。MBT 依托 MIL/SIL/PIL/HIL 全链路仿真测试大量测试工作前置到虚拟数字阶段无需等待硬件成型即可开展闭环验证。通过测试左移、虚拟仿真、自动化用例、全链路追溯、标准化协同MBT 有效解决了汽车电子化时代复杂度高、迭代快、安全严、成本控的核心痛点既是满足车规功能安全的硬性要求也是车企降本增效、数字化转型、打造软件核心竞争力的必然趋势。

相关文章:

基于模型的测试在汽车行业的应用

作 者 | 路国光出 品 | 汽车电子与软件摘要:为解决汽车电子软件开发中传统测试效率低、覆盖不足、验证滞后等问题,本文以基于模型的系统工程(MBSE)为背景,研究基于模型的测试(MBT)在汽车行业的应…...

别再纠结了!KVM虚拟化实战:RAW和QCOW2磁盘格式到底怎么选?附qemu-img保姆级操作指南

KVM虚拟化存储选型实战:RAW与QCOW2的深度抉择与效能调优 当你的KVM虚拟机开始频繁弹出"存储空间不足"的警告,或是需要为关键业务系统建立可靠的快照机制时,面对RAW和QCOW2这两种主流磁盘格式,技术决策就变得尤为关键。这…...

Amphenol ICC RJE1Y13A83152401线束组件解析与替代方案分享

在工业通信、网络设备以及自动化控制系统中,RJ45网线组件一直是不可忽视的重要连接部件。尤其是在工业以太网、交换机、工控主机以及嵌入式通信设备中,高可靠性的线束组件直接影响整机稳定性。 近期不少工程师在项目选型中关注到一款来自 Amphenol ICC 的…...

深入Nachos文件系统:我是如何修复‘文件无法追加写入’这个经典Bug的

深入Nachos文件系统:我是如何修复‘文件无法追加写入’这个经典Bug的 1. 问题定位与背景分析 第一次在Nachos文件系统中尝试追加写入文件时,我遇到了一个令人困惑的现象:无论怎么操作,文件内容都无法正确扩展。这个看似简单的功能…...

从ANSI到EBCDIC:跨越地域与时代的字符编码全景解析

1. 字符编码的前世今生:从ASCII到EBCDIC 第一次在Windows记事本里保存文件时,看到"ANSI"这个选项我就懵了——这玩意儿和ASCII有什么关系?后来在跨国项目里处理日文数据时,更被SJIS和EUC-JP搞得焦头烂额。字符编码就像…...

AI辅助故事创作:从工具链构建到人机协同写作实践

1. 项目概述:当AI成为你的专属故事创作伙伴最近在折腾一个挺有意思的项目,我把它叫做“盐的故事”(Salt-Story)。这名字听起来有点玄乎,其实内核很简单:一个专门用来辅助故事创作的AI工具链。我自己是个业余…...

CATIA二次开发—API高效查询与架构解析

1. CATIA二次开发入门:从V5到V6的跨越挑战 如果你是从CATIA V5转向V6开发的工程师,可能会遇到这样的困惑:为什么在V5中得心应手的API调用方式,到了V6就完全不管用了?这就像突然从手动挡汽车换成了自动驾驶电动车&#…...

从‘前后台’到‘多任务’:用UCOSIII官方例程理解RTOS内核如何接管你的单片机

从裸机到实时操作系统:UCOSIII内核如何重构单片机开发思维 第一次接触实时操作系统(RTOS)的嵌入式开发者,往往会被那些看似复杂的任务调度、优先级机制搞得一头雾水。我们习惯了在main函数里写一个无限循环,在中断服务例程(ISR)里处理紧急事件…...

告别“盲调”:用OllyDbg 2.x手把手破解TraceMe,从GetDlgItemTextA断点到NOP修改实战

逆向工程实战:用OllyDbg 2.x破解TraceMe的关键技术与思维训练 逆向工程就像一场精心设计的数字解谜游戏,而OllyDbg则是我们手中的万能钥匙。本文将带你深入TraceMe这个经典逆向练习的内部世界,从API断点设置到关键跳转修改,完整呈…...

三大核心突破:构建企业级实时图表编辑系统的架构演进

三大核心突破:构建企业级实时图表编辑系统的架构演进 【免费下载链接】mermaid-live-editor Edit, preview and share mermaid charts/diagrams. New implementation of the live editor. 项目地址: https://gitcode.com/GitHub_Trending/me/mermaid-live-editor …...

3分钟掌握Linux桌面便签神器:Sticky让你的数字工作台效率翻倍!

3分钟掌握Linux桌面便签神器:Sticky让你的数字工作台效率翻倍! 【免费下载链接】sticky A sticky notes app for the linux desktop 项目地址: https://gitcode.com/gh_mirrors/stic/sticky 还在为桌面杂乱无章的纸质便利贴烦恼吗?Sti…...

告别ifconfig:用ubus命令玩转OpenWrt网络接口(netifd实战指南)

告别ifconfig:用ubus命令玩转OpenWrt网络接口(netifd实战指南) 在OpenWrt的世界里,网络接口管理一直是个既基础又关键的课题。传统Linux用户习惯使用ifconfig或ip命令来配置网络,但在OpenWrt环境下,这些工具…...

League Akari技术架构解析:基于LCU API的英雄联盟客户端自动化工具实现

League Akari技术架构解析:基于LCU API的英雄联盟客户端自动化工具实现 【免费下载链接】League-Toolkit An all-in-one toolkit for LeagueClient. Gathering power 🚀. 项目地址: https://gitcode.com/gh_mirrors/le/League-Toolkit League Aka…...

暗黑3一键战斗终极指南:5步掌握D3KeyHelper宏工具

暗黑3一键战斗终极指南:5步掌握D3KeyHelper宏工具 【免费下载链接】D3keyHelper D3KeyHelper是一个有图形界面,可自定义配置的暗黑3鼠标宏工具。 项目地址: https://gitcode.com/gh_mirrors/d3/D3keyHelper 想要在暗黑破坏神3中告别重复按键的疲惫…...

爱普生SG-8201CJ石英可编程振荡器:精准频率控制专家首选

在电子设计中,晶振的选择往往是决定系统性能的关键因素之一。特别是在需要高精度和稳定性的应用中,选择一款合适的晶振尤为重要。今天,我们就来聊聊爱普生(Epson)的SG-8201CJ石英可编程振荡器,看看它如何成…...

H3C交换机三层组网配置保姆级复盘:从拓扑设计到排错命令一条龙

H3C交换机三层组网实战指南:从规划到排错的完整工作流 当企业网络规模逐渐扩大,部门间的隔离与互通需求变得复杂时,二层交换网络往往显得力不从心。这时,三层交换技术的引入就成为网络工程师的必修课。本文将带你深入一个真实的办…...

Epson M-G366PDG:工业级高性能惯性测量单元,精准稳定首选

引言在工业自动化、机器人、无人机等领域,惯性测量单元(IMU)是至关重要的传感器之一。它能够提供高精度的姿态和运动数据,从而确保系统的稳定性和可靠性。Epson M-G366PDG 作为一款工业级高性能 IMU,凭借其卓越的性能和…...

Simulink仿真报错‘积分器发散’?别慌,试试把ode45换成ode3并固定步长

Simulink仿真中积分器发散问题的深度解析与实战解决方案 当你在Simulink中进行控制系统仿真时,突然弹出一条令人不安的错误信息——"Derivative not finite"或"singularity",这往往意味着你的仿真遇到了积分器发散问题。这种报错不…...

别急着格式化!系统崩溃进不去,用这招在Win10恢复环境里解锁BitLocker加密盘

系统崩溃后抢救BitLocker加密数据的终极指南 当Windows系统突然崩溃无法启动,而你的重要数据又存放在BitLocker加密的磁盘中时,那种焦虑感是难以言喻的。很多人第一反应是重装系统或格式化硬盘,但这往往会导致永久性数据丢失。本文将带你深入…...

微信工具箱终极指南:3分钟快速掌握微信自动化管理技巧

微信工具箱终极指南:3分钟快速掌握微信自动化管理技巧 【免费下载链接】wechat-toolbox WeChat toolbox(微信工具箱) 项目地址: https://gitcode.com/gh_mirrors/we/wechat-toolbox 你是否厌倦了手动整理微信通讯录的繁琐?…...

告别语法冲突!用SLR分析法搞定编译原理中的移进/归约难题(附FOLLOW集实战)

告别语法冲突!用SLR分析法搞定编译原理中的移进/归约难题(附FOLLOW集实战) 当你第一次尝试构建LR(0)分析表时,是否遇到过这样的报错:"状态I2存在移进/归约冲突"?这种既想移进又想归约的矛盾&…...

SQL中标签的精确清理

在处理字符串数据时,尤其是在处理带有特定标签的数据时,常常会遇到一些棘手的问题。比如,我们想要从一组标签中移除特定标签(如 ‘وسم’),但在移除过程中可能会遇到意外的逗号或者空格问题。在本文中,我们将探讨如何在SQL中通过精确的语句来清理标签,同时解决这些常…...

ABAP选择屏幕进阶:基于用户交互的动态字段控制

1. 动态选择屏幕的核心价值 在ABAP开发中,选择屏幕(Selection Screen)是与用户交互的重要界面。传统的静态选择屏幕往往无法满足复杂业务场景的需求,比如当用户选择不同查询维度时,需要展示完全不同的筛选条件。这时候…...

FPGA动态电压调节技术与PMBus控制路径设计

1. FPGA动态电压调节技术概述 在当今计算密集型应用中,FPGA因其可重构性和并行处理能力而广受欢迎,但随之而来的功耗问题也日益突出。动态电压调节技术(Dynamic Voltage Scaling, DVS)作为一种有效的功耗优化手段,允许系统根据工作负载实时调…...

【开发实战】【memtester】嵌入式系统内存稳定性保障:从工具原理到压力测试场景全解析

1. 为什么嵌入式系统需要内存稳定性测试 在嵌入式产品量产前,内存稳定性测试是硬件验证中最容易被忽视却至关重要的环节。我曾参与过一个智能家居网关项目,设备在实验室运行一切正常,但批量部署后却频繁出现随机重启。经过两周的排查&#xf…...

英雄联盟玩家的智能工具箱:League Akari 如何提升你的游戏体验

英雄联盟玩家的智能工具箱:League Akari 如何提升你的游戏体验 【免费下载链接】League-Toolkit An all-in-one toolkit for LeagueClient. Gathering power 🚀. 项目地址: https://gitcode.com/gh_mirrors/le/League-Toolkit 想象一下这样的场景…...

STM32F4上给GUI换“活字”:FreeType2.13.2移植实战(含字形缓存优化)

STM32F4嵌入式GUI矢量字体革命:FreeType2.13.2深度移植与性能突围 在嵌入式系统领域,GUI界面的美观度与多语言支持能力正成为产品差异化的关键要素。传统点阵字体方案如同活字印刷时代的铅字,每个字号、每种语言都需要独立制作字库&#xff…...

别再纠结剪胀角了!用Abaqus CAE五分钟搞定库伦摩尔模型的材料卡设置(含黏土/砂土参数模板)

别再纠结剪胀角了!用Abaqus CAE五分钟搞定库伦摩尔模型的材料卡设置(含黏土/砂土参数模板) 岩土工程仿真中,材料参数设置往往是新手的第一道门槛。当你在Abaqus中面对十几个输入框时,是否也曾困惑:摩擦角和…...

别再死记硬背PID公式了!用Python+MATLAB手把手带你调参,搞定线性系统校正

别再死记硬背PID公式了!用PythonMATLAB手把手带你调参,搞定线性系统校正 记得第一次接触PID控制时,教授在黑板上写满微分方程和传递函数,而我只想知道——这些参数到底该怎么调?直到在实验室通宵调试平衡小车时&#x…...

保姆级教程:在Ubuntu 20.04上用PyTorch 1.12和YOLOv5s完整训练COCO数据集(附时间预估与常见坑点)

从零开始:Ubuntu 20.04下YOLOv5s训练COCO数据集的实战指南 引言 在计算机视觉领域,目标检测一直是核心研究方向之一。YOLO(You Only Look Once)系列算法因其出色的实时性和准确性,成为工业界和学术界的宠儿。本文将带你从零开始,在…...