车载实操:一对一实操学习、CANoe实操学习、推荐就业机会、就业技术支持、协助面试辅导
FOTA模块中OTA的知识点:
1.测试过程中发现哪几类问题?
可能就是一个单键的ecu,比如升了一个门的ecu,他的升了之后就关不上,还有就是升级组合ecu的时候,c屏上不显示进度条。
2.在做ota测试的过程中,会做网络通信的测试吗?
网络通信测试的话,有做,但是目前我的话还没接触到。
3.那你主要做什么?
现在主要做单键以及组合键的刷写单键以及组合键的刷写
4.OTA的功能主要是测哪些功能?
ota 主要测ecu的升级,ota测试主要是为了保证上线之后,交给用户,用户升级后它的一个稳定性,在测试的过程中,比如我们一个左转向灯的按键,我测十次,我要保证这十次都是成功的。我现在最重要的是测ota的刷写,比如说你从1迭代到2,然后你升级的这个版本,按键有没有刷成功,还有就是上个版本存在的问题,升级之后的版本有没有修复。系统修复的话,无非就是三种方法,一个是你本地刷起,我就通过工具给你刷,把你这些按键拆下来,拿到我公司给你刷;还有一个是我通过U盘刷,我把包拷贝到U盘,插到车上刷,刷了之后,你这个屏就恢复正常了;还有一种是远程,比如你现在这个车在深圳,然后我在上海,在你用不了的时候,我就给你推个包,让你去升级,就不用去基站就行修复;所以ota就是为了保证用户在某些功能受限的时候,他能升级成功。
5.OTA的作用?
ota的作用是ecu,mcu的升级,不同的mcu同时升级,或者说这些mcu一个一个升级,可能它的情况是不同的,同时有一些升级,就是要解决单一mcu升级之后,车是否能正常工作的问题,同时也要解决mcu升级过程中,是否具有一定的独立性,一个车可能有几十个ecu、mcu、mpu,有的升级有的没升级,那这车还能走嘛,有的mcu升级一半,我就要开车,这些场景是否支持。
6.你现在测的需求是什么?
主要是我们现在能测的20几个键,车里的按键;每个单键,还有刷新、测试、升级,还有20几个键组合起来一起升级,然后看他的一个云端和车端,以及它的log日志的情况是否是正确的,比如说我们升级成功后,云端上会显示升级成功,升级失败,它会有相对应的错误码,升级失败的话我们要内部分析一下它失败的原因。
7.你们现在测的是什么车?
测的是什么车,(车还没有销售,)
8.你们现在是什么阶段?
我们现在是sop+2,因为我们做项目我们都知道,我们刚开始有p阶段,ppv阶段,sop阶段,sop又分为好几个阶段,sop+1,sop+2,+3,一直到+6,然后sop+6的话基本上就到用户交货阶段了;然后我们现在就处于sop+2的阶段,这个阶段功能的话基本上已经开发完了,现在就是还有一些小问题,就还在进行修复。
9.总体的工作?
因为ota它总的来说是一个端到端,所以需要对后台服务器进行测试,后台服务器我们测试的模块包括管理车型、车辆管理(因为我们的车辆很多吗,你进行一个车辆管理,首先的话需要一个用户数据埋点,后台运营人员可以通过这些数据管理,可以对你这个车的一些软件和一些故障码进行人为的分析),软件管理(软件的话我们也会把它上传到我们的后台服务器,然后进行管理),我们会根据这些模块进行测试。还有的话就是升级策略,升级任务,这个的话就相当于给你创建一个升级任务,然后把升级包推到你推荐里面,来进行更新;还有一个审批管理,审批管理就是,比如我们有一个车,然后进行批量升级,这个是要经过层层审批的,不可能说你这个功能直接给你开好了,需要审批了才能把新功能加给你。差不多就这六个模块,云端这块的话差不多就是一个web端测试。
10.bug管理系统是什么?
( Jira )
11.车企需要掌握的语言:
C语言(了解代码),python语言(做自动化)
12.了解的协议:
针对应用层的服务10,11、27、28、31、34、36、37、85、22、2E、2F这些协议
13.测试的流程:
其实这个更像ota的一个联调,分为四个子流程:1.版本检测:分为物流数据采集和物流数据上传:就像icc的升级,我们首先要知道icc它当前的版本是多少,升级的话主要可以通过整套刷解或者差分刷解,我们要基于你当前的版本做差分的话,我需要把你当前这个版本的数据收集上来,给云端做一下匹配,匹配到了之后,就把这个任务下发给ota server,也就是你的车。
然后车呢就开始下载,我们下载的整条链路是https.....是一个加密的网络传输协议,也是为了安全。
下载完成之后就进入安装,安装完了之后,我们会进行一个升级结果反馈,分为任务结果反馈和任务结果上传,看这个是升级成功还是升级失败,还有我们要把日志上传到云端,目的是为了防止失败的话,我们的开发或者后台的运营人员可以通过云端把log取出来,去分析升级失败的原因。
14. ICC 和 ICM 是什么?
icc和icm就是控制器,icc可以理解为中间网络控制器,所有的数据都经过它整合,比如说油箱没油了,那么油箱的控制器就会发一个信号到icc里面去,通过icc转发到车的仪表上显示;icm的话像现在都是智能车,车上都有一个中控屏或者仪表屏,这个屏连一个线嘛,就是连到icm,它可以理解为一个安卓智能手机,供娱乐功能使用。
15.用到的工具:
canoe 移动电源 万用表:测小电池 (台架的话测试更多的是单元测试,还有一些接口测试,整车测试不同于台架测试,它更像一个黑盒测试,)
16.工作中遇到的困难:
最大的问题是,比如我们ota出现一个问题,因为我们是测各个控制器嘛,零束他只是一个M厂商嘛,它有很多供应商,每个控制器都是由不同的供应商提供的,比如出问题的时候,可能是零束的问题、也可能是斑马的问题,还有可能是节点的问题,可能是他们供应商沟通不及时,这样的话,像这种问题就会一直存在;那么对于我们测试人员来说呢,可能这个问题这会儿出现了,下次再复现又没法复现了,这样的话定位问题就比较困难,就会增加很多重复性的工作,就要反复的给零束人抓包、给斑马的抓包,感觉很多无意义的工作。
解决措施:不能判断的前提下,把涉及到的所有log全部取出来,抓好各方的log,然后建立一个bug
17.做ota测试主要测什么东西?
A、ota最大的一个功能的话,就是修复之前系统的缺陷。还有就是,降低研发成本。就像研发阶段,你这个车比如动力系统什么的都没有什么大问题了,然后也可以达到交互的一个阶段了,但是,中控屏上的一些,比如自动挪车这些以及中控娱乐系统这一块,你可能现在还没有做完,但是为了降低成本,你又不得不上市,那么你就可以通过后期ota把这块更新上去。这就是为什么现在长城、吉利做ota的一个重要的原因。还有的话就是不断地给你更新新的功能,就像我们买车的都知道,买回来之后,肯定不是什么功能都给你开,我在后期给你推,然后扫码、解锁、进行升级,升级之后新功能你就可以使用了。
B、一个车的话,你可能要上万个零件,支持ota的,可能就只有四十几个控制器,就是那些主要健,像三大件的话,就是icc、icm,im,一个控制器要升级的话,肯定要下载包,那你一个控制器的话肯定不会都要跟娱乐系统进行交互,我们的包是存在云端的嘛,云端肯定要先推到你的手机,要是你的手机是12.0,那给你推的如果是13.0,后台给你推包推到icc,它会有一个总节点,我只拿这个总节点跟云端进行交互,一个控制器跟其他控制器进行刷解,我们要保证这个键是完全ok的,icc和icm之间的协议,他们之间会不会同时啊,还有就是给你icm发一条指令,看icm回不回。举个例子,现在我们要刷icm,那么你这个icm,它肯定不是首先跟后台交互,它会先跟icc进行交互,那我们联调的过程中就要保证icc从后台下包,下载没问题,但是这个包传给icm,这个过程中是没有问题的,最后我icc给icm发一条指令,现在包已经传完了,你可以升级了,这么一个联调,这个过程是需要有人进行协调的,你icm是一个过程,icc也是一个过程,它们两个是完全不愿意开放。那我们测试在这个过程中,在中间就起了一个连接的作用。
C、你们这个ota是由一个人来负责,还是几个人来负责,多少个人才能做好。这个分公司吧,之前我在另一个公司的话,我一个人就负责几个机型,负责两三个项目;但 是零束整车的键哈,也就40个键,如果单纯从测试的角度来说的话,那其实两三个人完全可以把一个项目拿下,就是还是要看主机厂吧。我们这边做ota是刚开始的,是从0开始做的,现在ota还没有完全开发,现在后台还没有,现在刚上第一个车型,后面还会陆续上,现在一个车型还是比较多的,有六七个。
18.编测试用例:
分为后台服务器(纯云端,类似电商那块,差不多有一千多条)和车端(分为检测、下载、待安装、升级阶段,上报阶段,ecu刷写阶段,差不多600多条)差不多可以覆盖所有需求
19.上海做ota的公司
上海还是比较多的,像阿拉比,哈迈啊、寇乐达,这些公司,寇乐达是给奇瑞做,零束是阿拉比做的,阿拉比他目前的话,它的几个系列都是差分升级技术,比如一个十几G的包,可以给你差分到只有几兆,然后几兆下载到车上,在车上进行一个还原,把差分包还原成一个整包,这个才是他们的核心技术。在手机上就是一个软件是部分升级还是全部升级,差分技术对内存的一个分区,还有镜像文件那些还是很有要求的,重点是你有机制去还原。
20.升级过程中能不能保证升级的安全,比如ecu升级到一半了,怎么办?
安全这块的话,我们会进行防盗测试和处理。考虑到目前要升级全端的话,我们的mpu和mcu,都有一个 “奥突萨”,它是整车的一个标准,它会推出一个无感升级,就是一个控制器它会有一个A面和B面,那你在开车的时候,我就开始给你升级,先升级B面,然后熄火下次重新启动的时候,就检测到你这已经成功了,就可以给你直接切换到B面,那这个新功能就更新了,就相当于一个备份的意思。相当于我有一个回滚方案,那一个场景举例,我正在升级,突然包有问题或者网络有问题,我卡住了,会触发一个指令,直接切换到B面,在B面运行,然后A面,会在某个时机,通过copy,把B面的复制过来,这样就可以循环使用了。就是计算机里面的备份技术,现在好多都搬到车端来了
21.支持OTA升级零件范围
IVI:多媒体主机 ——责任部门:智能网联——刷写方式:私有协议
DMS:驾驶员检测系统——责任部门:智能网联——刷写方式:私有协议
T-Box:通讯主机——责任部门:智能网联——刷写方式:私有协议
ADAS- iECU:智能驾驶域控制器——责任部门:电子电器——刷写方式:DOIP
AMP:外置功放——责任部门:智能网联——刷写方式:UDS
BMS:电池管理系统——责任部门:动力系统——刷写方式:UDS
CS:集成式充电系统——责任部门:动力系统——刷写方式:UDS
EGS:电子换挡模块——责任部门:智能网联——刷写方式:UDS
MCU:电机控制模块——责任部门:动力系统——刷写方式:UDS
VCU:整车控制模块——责任部门:动力系统——刷写方式:UDS
GW:网关——责任部门:电子电器——刷写方式:DOIP
ESC:电子稳定控制器——责任部门:电子电器——刷写方式:UDS
Iboost:电子制动助力器——责任部门:电子电器——刷写方式:UDS
EPB:电子驻车控制器——责任部门:电子电器——刷写方式:UDS
BCM:车身控制器——责任部门:电子电器——刷写方式:UDS
CCM:空调控制模块——责任部门:动力系统——刷写方式:UDS
COMP:压缩机——责任部门:动力系统——刷写方式:UDS
PLG:电动尾门——责任部门:电子电器——刷写方式:UDS
PTC:高压加热器——责任部门:动力系统——刷写方式:UDS
AVAS:低速警示系统——责任部门:电子电器——刷写方式:UDS
SCM:座椅控制器——责任部门:电子电器——刷写方式:UDS
ADAS-RLR:左后毫米波雷达——责任部门:电子电器——刷写方式:UDS
ADAS-RRR右后毫米波雷达——责任部门:电子电器——刷写方式:UDS
ADAS-FR:前向毫米波雷达——责任部门:电子电器——刷写方式:UDS
ADAS-FLR:左前毫米波雷达——责任部门:电子电器——刷写方式:UDS
ADAS-IFC:智能前视摄像头——责任部门:电子电器——刷写方式:UDS
ADAS-ACM:ADAS控制器——责任部门:电子电器——刷写方式:UDS
相关文章:

车载实操:一对一实操学习、CANoe实操学习、推荐就业机会、就业技术支持、协助面试辅导
FOTA模块中OTA的知识点:1.测试过程中发现哪几类问题? 可能就是一个单键的ecu,比如升了一个门的ecu,他的升了之后就关不上,还有就是升级组合ecu的时候,c屏上不显示进度条。 2.在做ota测试的过程中ÿ…...

PACT 在微服务架构中的用途
在微服务架构盛行的今天,如何确保各个微服务之间的交互正确且稳定成为了一个关键问题。PACT(一种契约测试工具)在这个领域发挥着重要的作用。那么,PACT 在微服务架构中的用途到底是什么呢? 一、微服务架构的挑战 微服…...

LeetCode 3200.三角形的最大高度:枚举
【LetMeFly】3200.三角形的最大高度:枚举 力扣题目链接:https://leetcode.cn/problems/maximum-height-of-a-triangle/ 给你两个整数 red 和 blue,分别表示红色球和蓝色球的数量。你需要使用这些球来组成一个三角形,满足第 1 行…...

ssm基于java的招聘系统设计与开发+vue
系统包含:源码论文 所用技术:SpringBootVueSSMMybatisMysql 免费提供给大家参考或者学习,获取源码请私聊我 需要定制请私聊 目 录 第1章 绪论 1 1.1 课题背景 1 1.2 课题意义 1 1.3 研究内容 1 第2章 开发环境与技术 3 2.1 Java语言…...

【网络原理】TCP/IP五层网络模型之网络层-----IP协议详解,建议收藏!!
💐个人主页:初晴~ 📚相关专栏:计算机网络那些事 前几篇文章中我们深入研究了TCP协议,因为TCP协议在我们日常开发中的使用频率非常高。而相比之下,IP协议与我们普通程序员关系就没那么近了。一般是专门开发…...

三次握手与四次挥手
一、三次握手 AB之间 都会发送一个syn - ack。 A 先发 syn ,B收到 。 A: 什么都不知道 B:知道A可以发送。 B发送syn-ack,A收到 。 A: 知道B可以收也可以发 , B知道A可以发送。 A发送ack,B收到。 A : 知道B可以收也可以发 , B知道A…...

awk命令学习记录
awk命令 awk命令 表示将一行数据按特定分割符分割成多列,而从而选取特定列数的数据,默认分割符为空格,连接符默认也是空格 // 1. 更换分割符 awk -F : 1.txt // 1.txt为你的文件名 // 2. 打印多列 awk {print $1,$2} // $0为整行ÿ…...

科大讯飞嵌入式面试题及参考答案
平衡二叉树和普通二叉树的区别 平衡二叉树是一种特殊的二叉树,与普通二叉树相比有以下显著区别: 一、定义与结构 普通二叉树:二叉树是每个节点最多有两个子树的树结构。它没有特定的平衡要求,节点的分布可能比较随机。例如&#x…...

C Lua5.4.6 SDK开发库
下载 .lua执行 #include "lua.h" #include "lualib.h" #include "lauxlib.h"static int luaopen_ui(lua_State *L) {static const struct luaL_Reg lib_f[] = {{"saveFile", saveFile},{"loadFile", loadFile},{NULL, NULL…...

无线网卡知识的学习-- wireless基础知识(cfg80211)
1. 基本概念 mac80211 :这是最底层的模块,与hardware offloading 关联最多。 mac80211 的工作是给出硬件的所有功能与硬件进行交互。(Kernel态) cfg80211:是设备和用户之间的桥梁,cfg80211的工作则是观察跟踪wlan设备的实际状态. (Kernel态) nl80211: 介于用户空间与内核…...

Next.js 学习 - 路由系统(Routing)
Next.js 的路由系统基于文件系统,这意味着文件和文件夹的结构决定了 URL 路径。相较于传统的 React 应用中的路由配置,Next.js 的文件路由系统非常简洁和自动化。下面是对 Next.js 路由的详细介绍。 1. 目录结构 在 Next.js 13 中,app 目录…...

Unity XR PICO 手势交互 Demo APK
效果展示 用手抓取物体,调整物体位置和大小等 亲测pico4 企业版可用, 其他设备待测试 下载链接: 我标记的不收费 https://download.csdn.net/download/qq_35030499/89879333...

EM算法学习
1.EM算法的介绍 可以发现:计算出θA和θB的值的前提是知道A、B币种的抛掷情况。 所以我们需要使用EM算法:求出每轮选择硬币种类的概率 2.EM算法执行过程: 第一步:首先初始化设置一组PA和PB证明的值。然后通过最大似然估计得到每…...

019_基于python+django食品销售数据分析系统2024_4032ydxt
目录 系统展示 开发背景 代码实现 项目案例 获取源码 博主介绍:CodeMentor毕业设计领航者、全网关注者30W群落,InfoQ特邀专栏作家、技术博客领航者、InfoQ新星培育计划导师、Web开发领域杰出贡献者,博客领航之星、开发者头条/腾讯云/AW…...

C语言笔记(数据的存储篇)
目录 1.数据类型的详细介绍 2.整型在内存中的存储:原码、反码、补码 3.大小端字节序介绍及判断 4.浮点型的内存中的存储解析 1.数据类型的详细介绍 下述是内置类型: char // 字符数据类型 short // 短整型 int // 整型 long …...

wsl: 检测到 localhost 代理配置,但未镜像到 WSL。NAT 模式下的 WSL 不支持 localhost 代理的解决方法
前言 开头先讲讲wsl2启用代理的必要性,一般来说,会用wsl的都是开发者,那么就避免不了从网络上下载软件和应用,但是由于众所周知的原因,你使用apt,wget等工具下载国外网站的东西时,下载速度就会…...

CSS 居中那些事
一、父子元素高度确定 简单粗暴, 直接通过设置合适的 padding 或 margin 实现居中 <style>.p {padding: 20px 0;background: rgba(255, 0, 0, 0.1);}.c {width: 40px;height: 20px;background: blue;} </style> <div class"p"><div class"…...

Java项目-基于springboot框架的智能热度分析和自媒体推送平台项目实战(附源码+文档)
作者:计算机学长阿伟 开发技术:SpringBoot、SSM、Vue、MySQL、ElementUI等,“文末源码”。 开发运行环境 开发语言:Java数据库:MySQL技术:SpringBoot、Vue、Mybaits Plus、ELementUI工具:IDEA/…...

跨平台进程池背后的思想
背景是基于业务需求,需要实现一个跨平台的项目。项目中由于有部分功能存在大量计算,所以打算单独分配一个进程去进行计算。 进程池的实现与线程池的实现逻辑上如出一辙。但是实现上进程池的实现会比线程池实现复杂的多,主要比较复杂的点的就在于并发安全的任务队列。…...

前端性能优化之加载篇
前端页面加载的过程其实跟我们常常提起的浏览器页面渲染流程几乎一致: 网络请求,服务端返回 HTML 内容。 浏览器一边解析 HTML,一边进行页面渲染。 解析到外部资源,会发起 HTTP 请求获取,加载 Javascript 代码时会暂停页面渲染。 根据业务代码加载过程,会分别进入页面开始…...

数据结构(栈)
每当误会消除冰释前嫌的时候,故事就距离结尾不远了。 栈 概念与结构 1. 栈⼀种特殊的线性表,其只允许在固定的⼀端进行插入和删除元素操作。 2. 进行数据插入和删除操作的⼀端称为栈顶,另⼀端称为栈底。 3. 栈中的数据元素遵守后进先出的原则…...

Aspose.PDF功能演示:使用 JavaScript 从 PDF 中提取文本
在数据提取、业务文档自动化和文本挖掘方面,使用 JavaScript 从PDF中提取文本非常有用。它允许开发人员自动执行从 PDF 收集信息的过程,从而显著提高处理大量文档的生产力和效率。在这篇博文中,我们将学习如何使用 JavaScript 从 PDF 中提取文…...

计算机系统简介
一、计算机的软硬件概念 1.硬件:计算机的实体,如主机、外设、硬盘、显卡等。 2.软件:由具有各类特殊功能的信息(程序)组成。 系统软件:用来管理整个计算机系统,如语言处理程序、操作系统、服…...

学习文档10/18
MySQL高性能优化规范: 数据库命名规范 所有数据库对象名称必须使用小写字母并用下划线分割所有数据库对象名称禁止使用 MySQL 保留关键字(如果表名中包含关键字查询时,需要将其用单引号括起来)数据库对象的命名要能做到见名识意…...

Redis入门到精通(二):入门Redis看这一篇就够了
文章目录 一、Redis的双写一致性1.延迟双删2.添加分布式锁3.异步监听可靠消息基于MQ消息队列的异步监听基于Canal的异步通知 二、Redis的持久化持久化流程1.RDB机制1.1save1.2bgsave1.3自动触发 2.AOF机制三种触发机制3.RDB和AOF的对比 三、Redis的数据删除策略1.惰性删除2.定期…...

荒岛逃生游戏
题目描述 一个荒岛上有若干人,岛上只有一条路通往岛屿两端的港口,大家需要逃往两端的港口才可逃生。 假定每个人移动的速度一样,且只可选择向左或向右逃生。 若两个人相遇,则进行决斗,战斗力强的能够活下来ÿ…...

玫瑰花HTML源码
HTML源码 <pre id"tiresult" style"font-size: 9px; background-color: #000000; font-weight: bold; padding: 4px 5px; --fs: 9px;"><b style"color:#000000">0010000100000111101110110111100010000100000100001010111111100110…...

【wpf】07 后端验证及令牌码获取步骤
由于在用wpf开发应用程序时,从后端获取数据需要用到 Authorization 授权的Bearer令牌,而这个令牌的获取需要登录后台进行获取,这里登录时还涉及到的验证码的操作,所以在获取过程中,需要对后台系统进行登录并拿到这个Be…...

学习中,师傅b站泷羽sec——xss挖掘过程
某职业技术学院网站xss挖掘: 资产归纳 例如:先把功能点都看一遍,大部分都是文章 根据信息搜集第一课学习到一般主站的防御力是比较强的,出现漏洞的点不是对新手不友好。 在资产验证过程中还是把主站看了一遍 没有发现有攻击的机会…...

什么是双因素身份验证?双因素身份验证的凭据类型有哪些?
w微服务在数字化的时代,保护个人和企业的敏感信息至关重要。双因素身份验证(Two-Factor Authentication,简称 2FA)作为一种增强安全性的方法,越来越受到广泛关注。那么,什么是双因素身份验证呢?…...