谈谈汽车软件测试的那些事
“90%以上的汽车创新是基于电子和软件的。这就是为什么创造性的自由和横向思维对于追求真正的新解决方案是如此重要。”
这是德国宝马,设在慕尼黑的一个汽车软件工程师岗位,其招聘信息最开始的一段话。这个岗位的英文名称是:Automotive Software Engineer C++ (f/m/x)。
可见,在世界顶尖汽车制造商宝马的眼里,未来的汽车是由“软件定义”的。
那么,你对汽车软件测试了解多少呢?
对汽车软件行业的展望
预计到2030年,汽车软件市场将迅速增长,预测显示它将从310亿美元(2019年)增加到约800亿美元。这意味着整个市场的年复合增长率超过9%,更具体地说,信息娱乐、连接、安全和连接服务的年复合增长率为9.1%。
这意味着,汽车行业,像其他许多行业一样,正在经历前所未有的创新、技术进步,以及反过来的竞争。当汽车及其零部件制造商竞相保持盈利并处于曲线的顶端时,这场战斗正在后台的代码行中获胜。
汽车测试一目了然
当大多数人想到汽车测试时,脑海中浮现的是碰撞测试、速度测试和其他机械干预的画面。然而,在现实中,大多数汽车测试在汽车零部件组合之前就已经发生了。
一辆汽车有大约30,000个零件,这些零件由几十个原始设备制造商(OEM)提供,他们一起合作创造汽车。每个部件,无论是硬件还是软件,在汽车最终组装前都要经过数十万次的测试,甚至在上路前还要进行更多的测试。
汽车软件测试
今天道路上的汽车,无论是你的标准轿车还是顶级的性能车,都是由软件驱动的。对于2022年制造的车辆,可能会安装多达150个电子控制单元。
电子控制单元(ECU,又称“车载电脑”)是一种控制汽车特定功能的小型计算机。在ECU之前,机械系统使用点火时间、燃料、空气和发动机旋转来完成功能。现在,所有需要发生的事情都被编入ECU内部的芯片。
比如:发动机控制模块(ECM)和制动控制模块(BCM)等一些包括关键功能的ECU;或非关键的ECU,如汽车信息导航系统内的ECU;或在一般电子模块(GEM)中,控制诸如锁定和解锁车门、打开窗户或控制空调的功能。
考虑到每个电子控制单元在功能上都是一台小型计算机,必须进行严格的软件测试以确保其功能、可用性和安全性。
现实情况是,传统的汽车测试是昂贵的,耗时的,而且不容易重复 。目前,常用的解决方案是:硬件在环(Hardware-in-the-loop ,HIL) 和软件在环(Software-in-the-Loop ,SIL) 测试。
软件在环(SIL)测试
软件在环测试在模拟中测试和验证软件的代码,从而减少错误,提高代码质量并大大减少构建时间。
随着汽车品牌和原始设备制造商继续创新以获得竞争优势,真正的战斗是在“代码上获胜”。无论产品的类型如何(安全、仪表盘、导航系统或其他),软件在被批准用于汽车之前必须经过广泛的测试。
SIL的一些好处包括:
代码可以定期测试,因为程序的每个部分都已经完成,而不是等待最后的构建;
测试可以自动化并同时运行;
测试结果是可共享的,并且易于分析;
软件与硬件开发分开,所以软件制造商可以继续创新,甚至超过硬件行业的速度;
不需要专门的测试台(像我们下面要讨论的HIL测试);
SIL测试容易扩展,可重复,比人工测试更快。
硬件在环(HIL)测试
HIL测试,顾名思义,是一种与车辆中的硬件有关的测试和验证的方法。这些模拟器或多或少是最终产品的模型,然后再将真正的ECU连接到测试系统之前进行彻底测试。
HIL测试台通过实时执行数学模型,使用来自摄像机和雷达等设备的数据输入,模拟实际的汽车发动机动态。一般来说,HIL测试比SIL测试更昂贵、更耗时,所以它是在SIL测试之后进行。
汽车软件测试很重要,除了纯粹的道路安全外,还有其他原因--例如:网络安全、OEM信任和可靠性,以及汽车品牌的良好形象。
汽车软件测试的一些国际标准
当然,围绕汽车的硬件和软件组件的测试标准是严格的。
ISO 26262:道路车辆--功能安全
ISO 26262《道路车辆功能安全》国际标准是针对总重不超过3.5吨八座乘用车,以安全相关电子电气系统的特点所制定的功能安全标准,基于IEC 61508《安全相关电气/电子/可编程电子系统功能安全》制定,在2011年11月15日正式发布。
该标准适用于大规模生产的乘用车,并为公共汽车、卡车、拖车和半挂车的E/E系统提供指导。
ISO 21434:道路车辆--网络安全
ISO 21434是基于ISO 26262的后续标准,只是它特别关注汽车软件和子系统的设计和开发中的网络安全问题,目的是就重要的网络安全问题达成全行业协议,并确保整个供应链具有支持设计方法安全的过程。
该标准的主要组成部分包括安全管理、依赖于项目的网络安全管理、持续的网络安全活动、相关的风险评估方法,以及道路车辆概念产品开发和开发后阶段内的网络安全。其全称实际上是 ISO/SAE DIS 21434。
AUTOSAR
AUTOSAR(Automotive Open System Architecture),中文是“汽车开放系统架构”,是一家致力于制定汽车电子软件标准的联盟(参与者有全球各家汽车制造商、零部件供应商以及各种研究、服务机构)。成立于2003年。他们制定了一套专门用于汽车的开放性的框架和行业标准,它将用作管理将来的应用程序和标准软件模块中功能的基本基础结构。虽然不要求OEM和制造商参与或遵守AUTOSAR架构,但许多世界领先的公司都参与其中。
MISRA
MISRA (The Motor Industry Software Reliability Association 汽车工业软件可靠性联会) 是位于英国的一个跨国汽车工业协会。其成员包括了大部分欧美汽车生产商。其核心使命是为汽车工业提供服务和协助,帮助厂方开发安全的、高可靠性的嵌入式软件。
他们的编码指南首次发布于1998年,现在涵盖了基于C和C++编码语言的系统。同样,虽然MISRA是一套非强制性的标准,但它被许多行业广泛采用,因为它促进了安全和安全关键系统的安全、可靠和可移植代码的开发。
汽车软件集成与测试
汽车系统软件测试的特殊性在于其对内部和外部不同组件的接触和适应性。一个软件一般在其开发生命周期中,都要经过严格的测试。
在现代的汽车软件产业链中,一个组件由多个不同的供应商开发,用于不同的汽车生产线,这意味着每个模块的供应商必须与共同的板上和板下组件和功能集成,坚持特定的系统架构和不同的区域生态系统--这就是软件测试工程师开始做第一个噩梦的地方。
例如,一个典型的自动驾驶模块或驾驶辅助模块的测试包括从成千上万的测试里程中收集大量的实时数据。这些数据包括不同的道路类型、复杂的多层次高架桥、交通状况、外部互动,包括行人、自行车、偶然的交通或道路状况等信息。仿真测试工程师计算这些数据并在系统上多次循环播放,还要根据需要在不同测试周期的实时数据中加入自己的修改和复杂因素。这也适用于交互式信息娱乐系统的测试场景,为一辆车试驾记录的导航日志可以在多个测试车辆或模拟设置上自适应地播放多个不同的信息娱乐系统变体,以分析确定的变化。
当然,质量是任何产品的最终目标,任何软件或系统随着时间的推移都是可消耗的,并且随着周围因素的变化,必须不断地更新。同样地,当一个系统软件被更新时,最好的做法是也要升级验证测试。
不同类型的软件测试
单元测试是一种有效的汽车软件测试技术,包括软件组件和模块的初始测试。这个阶段有助于在软件生命周期开发过程之前确定系统中可能存在的缺陷。
集成测试,测试单个单元或组件如何与不同的软件系统集成工作。这个过程是在一个单独的小组或作为一个整体进行的,以验证集成的功能。
系统测试是汽车软件的功能测试方法之一,主要重点是进行一个完整的过程,以发现系统内的不一致、错误、缺陷和故障。
完整性测试是在软件建成并修复了错误后,检查代码或功能的微小变化的过程,其目的是确定在预期的变化后软件的拟议功能。
烟雾测试,这是处理进一步测试的下一个步骤。烟雾测试过程确定了部署的软件是否稳定。一旦确认,那么只允许进一步的测试过程。
回归测试,软件的回归测试有助于确定最近的变化是否没有影响到现有功能的软件。观察早期测试案例的全部或部分选择,以确定软件的当前功能。
汽车软件开发测试职位需具备哪些能力
我们以行业岗位招聘所透露出来的信息,管中窥豹,来看看汽车软件开发测试类岗位需要具备什么样的能力。
1.德国宝马慕尼黑的软件开发测试岗位:
大学计算机科学、电子工程或类似的学习课程的学位或类似的资格。
需要有广泛的实际软件开发经验,最好是C++语言。
需要对数据结构、算法和软件设计有深入的了解,具有非常好的分析思维和错误分析能力。
有开发和整合嵌入式设备的软件平台的经验优先。
具有硬件调试的嵌入式软件开发领域的经验优先。
有汽车环境方面的知识(如CAN,LIN,以太网,OSEK,RTOS)为佳。
有微控制器(如ARM控制器)和脚本语言(如Python)方面的知识将优先。
2.美国阿肯色州电动汽车初创公司Canoo Technologies的车辆软件测试工程师岗位:
拥有电气或软件工程的学士学位或同等学历。
有5年以上经验者优先。
有车辆记录仪的经验:Vector, intrepid或类似的。
具有软件测试工具的经验:Vector CANoe, CANalyzer, vsignalizer, CANape, Dspace, JIRA, GIT.
有日志文件分析和车辆软件问题根源识别的经验。
测试自动化经验:Python, Tracetronic ECUTEST(最好)。
需求管理系统经验:有Jama, Doors或Polarion(最好)。
3.一家位于德国波鸿的三星集团旗下公司的汽车软件测试岗位:
相关大学学位(理学学士、理学硕士、工程硕士、信息硕士)或同等学历。
5年以上汽车相关测试的实践经验。
有汽车网络系统(CAN、CAN-FD、LIN、Flex Ray、汽车以太网、DOIP)的工作经验。
必须有生成报告(Excel)的经验。
熟悉CAPL脚本。
有使用矢量工具(CANoe,CANalyzer)的经验。
具有测试和验证及其流程方面的知识。
对软件开发生命周期有很好的了解,最好是对敏捷原则有了解。
有UI测试的经验,等等。
4.科大讯飞设于上海的智能汽车软件测试工程师岗位:
本科及以上学历,至少2年以上测试经验。熟练掌握测试理论、测试方法;能够快速理解需求、编写测试用例。有域控制器相关方向测试经验者优先。
精通车机类项目流程及测试流程,能够与产品、设计、研发、质量等相关人员保持良好流程对接,发现可优化流程并改进
熟悉Android平台终端命令,能够完成Android平台测试环境搭建;
具备java的读写能力;能够独立完成常见测试工具编写工作。
掌握辅助工具的使用,包括测试设备及开发工具等,包括可编程继电器、USBCAN、CANoe(Diva)、示波器、万用表、Eclipse、AudioStudio等;
具有一定的问题定位分析能力,协助研发一起定位分析问题,共同推动问题的修复。
最后,对于想入行或转行的同学,不妨参考一下。
最后: 下方这份完整的软件测试视频学习教程已经整理上传完成,朋友们如果需要可以自行免费领取【保证100%免费】
这些资料,对于【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴上万个测试工程师们走过最艰难的路程,希望也能帮助到你!
谈谈汽车软件测试的那些事相关推荐
- 3年汽车软件测试工程师的经验总结
入行汽车电子行业已经要三年了,闲下来的时间爱总结总结,感受一下现在自己的行业水平,技术水平和发展想法. 首先,工作三年了,除了业务知识积累之外,我觉得增长更多的是沟通与做事方式的长进.经常挂在嘴边的一 ...
- 一个汽车软件测试工程师的三年工作总结
入行汽车电子行业已经要三年了,闲下来的时间爱总结总结,感受一下现在自己的行业水平,技术水平和发展想法. 首先,工作三年了,除了业务知识积累之外,我觉得增长更多的是沟通与做事方式的长进.经常挂在嘴边的一 ...
- 汽车软件测试的挑战-2022
一.前言 智能汽车的发展,无论是传统汽车强调的四化(电动.智能.网联.共享),新造车势力引领的软件驱动汽车(SDV),都奔着更高的技术等级发展,今日的汽车,已经远远超出动力系统加沙发的结构了. 无论如 ...
- 娃儿一周的“智能国际象棋”使用体验,最后谈谈激发热情这件事
这个智能棋盘,娃娃摆弄了一周,下完学就下上几盘,一直追的动画片都不看了,做完老师布置的家庭作业,就在棋盘上专研,身为老父亲的我啊,可是太欣慰了! 晒单回顾: 费米L6智能棋盘(国际象棋)开机试玩体验h ...
- 谈谈汽车软件中间件(Autosar为例)
文章目录 操作系统,中间件,应用软件-各司其职分工不同 什么是汽车软件中间件? 汽车软件中间件有什么好处? 中间件的明星方案-AUTOSAR AUTOSAR-Adaptive拯救AUTOSAR 技术细 ...
- 没有归属感?辛苦如牛?软件测试外包那些事,你真的了解吗?
现在市面上存在很多对软件外包公司的非议,导致很多求职者都对软件外包公司避而远之. 什么没有归属感,什么辛苦如牛,所以很多伙伴一听说外包公司,就没有投简历的兴趣了. 首先,我们来了解下什么是外包? 在传 ...
- 汽车软件测试专栏—软件测试环境的创建(第五期)
软件测试环境的建立方法 测试环境的创建是测试工程师的基本技能,巧妇难为无米之炊,没有测试环境,就无法去执行测试.测试环境的创建主要包括解析测试需求,根据测试需求,搭建测试环境,同时也要根据测试执行过程 ...
- 码农何苦为难码农:谈谈程序员面试那些事
春天,万物复苏.程序员们跳槽的季节要到了.其实,程序员算是跳槽比较频繁的人群.虽然每个人都盼着能跟随公司的步伐一步步地成长,但能在正确的时间点遇到正确的公司,这也是要靠运气的.对于大部分程序员来说,跳 ...
- 谈谈汽车诊断之KWP2000/ISO14229/ISO15765/SAEJ1939
最近在研究汽车诊断规范,其中涉及到好几个类似的国际规范,比如KWP2000.ISO-14229.ISO-15765.SAE-J1939等等.有的规范彼此之间相互引用,有的规范却又各自独立,简直就是一团 ...
最新文章
- C++中基本的输入输出
- jquery ajax怎么实现,你认为他有什么不足之处
- 课程设计---停车场管理系统
- 【转载】GuanDan v2.01 发布
- 使用Opencv将RGB颜色空间转换到HSV颜色空间/灰度图
- Atitit 演讲常用肢体语言与手势总结 目录 1. 原则 ,哑语一样,手势不只是补充。。。	1 2. 比拟实际物体与抽象物体	1 2.1. 三个实用的手势:	1 2.2. (五)、演讲中忌讳的动作
- 从零开始学编程(所以说英语也是零)
- linux 嗅探器源码,一个简易网络嗅探器的实现
- P1616 疯狂的采药+P1833 樱花+P1077 [NOIP2012 普及组] 摆花+P1064 [NOIP2006 提高组] 金明的预算方案
- 2023年湖北取得中级工程师职称多久后可以评高级?
- EasyCVR平台H.265视频播放加载致服务异常的偶发现象解决办法
- Pycharm 小技巧-- filewacher+black自动格式化
- 数字IC/FPGA设计之——学习路径
- php 票务系统开发_大麦推出CBA官方票务平台 阿里文娱一站式承包球迷观赛生活...
- JS实现上下左右键 (键盘事件)
- CLAHE的实现和研究
- 微信小程序里引入SVG矢量图标
- 【FSB总线、HT总线、QPI总线、DMI总线】
- 有100元人民币,分别有1、2、5元三种人民币组成,其中每种人民币至少有一张,请问有多少种组合方法
- [附源码]计算机毕业设计springboot志愿者服务平台