UDS Flash刷写用例简单介绍

文章目录

  • 1.Boot的功能
    • 1.1 目的
    • 1.2 功能
  • 2.测试用例设计
    • 2.1 设计框架
    • 2.2 正向测试
      • 2.1.1 刷写流程
      • 2.1.2 重复刷写
      • 2.1.3压力刷写
    • 2.3 逆向测试
      • 2.2.1 断电后刷写
      • 2.2.2 中断通讯后刷写
      • 2.2.3 篡改刷写数据
      • 2.2.4 修改软件校验数据
      • 2.2.5 修改刷写流程
      • 2.2.6 高负载刷写
      • 2.2.7 高低压刷写
      • 2.2.8 其他

1.Boot的功能

1.1 目的

Boot的主要功能是引导软件下载到ECU内部,实现ECU软件更新;在ECU出厂后,为了适配新的软件需求而导致ECU内部软件需要更新。

1.2 功能

为了防止在软件升级过程中,出现异常情况(如断电,can通讯异常)后,软件能够再次正常升级。

2.测试用例设计

2.1 设计框架

在这里插入图片描述

2.2 正向测试

2.1.1 刷写流程

按照刷写流程,软件能够正常升级,刷写流程结果后,观察APP是否正常运行。
链接: UDS Flash刷写流程介绍

2.1.2 重复刷写

为保证Boot功能正常使用,需要重复(最少刷写两次)刷写验证,为避免只能升级一次情况出现,导致后面ECU无法再次升级。

2.1.3压力刷写

为了避免在多次软件升级过程中,出现异常情况,需要做压力刷写测试(目前主机厂一般定义200次)。

2.3 逆向测试

2.2.1 断电后刷写

为了避免在软件升级过程中,ECU供电出现欠压或直接断电情况下,软件升级中断。软件升级中断后,Boot需要能够再次升级软件。

2.2.2 中断通讯后刷写

为了避免在软件升级过程中,CAN总线出现异常(CANH与CANL短接等),软件升级中断。软件升级中断后,Boot需要能够再次升级软件。

2.2.3 篡改刷写数据

在软件升级过程中,修改刷写数据,软件无法完成正常升级。再次使用Boot能够重新升级。

2.2.4 修改软件校验数据

在软件升级过程中,修改校验值,软件无法完成正常升级。再次使用Boot能够重新升级。

2.2.5 修改刷写流程

在软件升级过程中,修改刷写流程步骤,应返回相应NRC,软件无法完成正常升级。再次使用Boot能够重新升级。

2.2.6 高负载刷写

为了避免整车负载较高且ECU需要升级的情况,ECU应该能够在负载80%作用能够正常升级。

2.2.7 高低压刷写

如果在刷写条件中,未定义刷写要在正常电压下刷写,则需要测试在高低压情况,软件是否正常升级。

2.2.8 其他

除此之后,可根据脚本编写情况,针对软件需求,进行其他用例设计。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/347064.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

C++数据结构——红黑树

一,关于红黑树 红黑树也是一种平衡二叉搜索树,但在每个节点上增加一个存储位表示节点的颜色,颜色右两种,红与黑,因此也称为红黑树。 通过对任意一条从根到叶子的路径上各个节点着色方式的限制,红黑树可以…

ChatGLM论文解读

GLM GLM: General Language Model Pretraining with Autoregressive Blank Infilling 论文地址 1. 背景介绍 1)主流预训练框架 模型介绍结构特点训练目标autoregressive自回归模型,代表GPT,本质上是一个从左到右的语言模型,常用于无条件生成任务(unconditional generat…

[BJDCTF2020]ZJCTF,不过如此(特详解)

php特性 1.先看代码,提示了next.php,绕过题目的要求去回显next.php 2.可以看到要求存在text内容而且text内容强等于后面的字符串,而且先通过这个if才能执行下面的file参数。 3.看到用的是file_get_contents()函数打开text。想到用data://协…

Airflow【部署 01】Airflow官网Quick Start实操(一篇学会部署Airflow)

Airflow官网Quick Start实操 1.环境变量设置2.使用约束文件进行安装3.启动单机版3.1 快速启动3.2 分步骤启动3.3 启动后3.4 服务启动停止脚本 4.访问4.1 登录4.2 测试 来自官网的介绍: https://airflow.apache.org/ Airflow™是一个由社区创建的平台,以…

【Unity学习笔记】第十一 · 动画基础(Animation、状态机、root motion、bake into pose、blendTree、大量案例)

转载引用请注明出处:🔗https://blog.csdn.net/weixin_44013533/article/details/132081959 作者:CSDN|Ringleader| 如果本文对你有帮助,不妨点赞收藏关注一下,你的鼓励是我前进最大的动力!ヾ(≧▽≦*)o 主…

SSL证书 DV、OV、EV等级的证书适用群体

DV(Domain Validation,域名验证)证书 特点:DV证书是最基础的SSL/TLS证书类型,仅验证申请证书的实体是否对该域名有控制权。验证过程相对简单快速,通常只需要验证域名的所有权即可。 适用人群:…

教学方法有哪些种类

作为一位老师,面对不同的学生和课程,掌握多种教学方法是必不可少的。你知道吗?教学方法不仅关乎教学效果,还直接影响学生的学习热情和兴趣。这篇文章将为你揭秘教学方法的神秘面纱,看看有哪些种类的教学方法&#xff0…

初识计算机网络 | 计算机网络的发展 | 协议初识

1.计算机网络的发展 “矛盾是普遍存在的,矛盾是事物联系的实质内容和事物发展的根本动力!” 计算机在诞生之初,在军事上用来计算导弹的弹道轨迹!在发展的过程中(商业的推动,国家政策推动)&…

Nginx 配置解析:从基础到高级应用指南

Nginx 配置解析:从基础到高级应用指南 Nginx 配置解析:从基础到高级应用指南1. 安装和基本配置安装 Nginx基本配置 2. 虚拟主机配置3. 反向代理配置4. 负载均衡配置5. SSL 配置6. 高级配置选项结语 Nginx 配置解析:从基础到高级应用指南 Ngi…

rank是MySQL关键字

MySQL有rank关键字,建议将rank替换为rank 。不是单引号 是键盘1左边的符号。 rank():返回的相关等级会跳跃; dense_rank():返回的相关等级不会跳跃; row_number():返回的是行信息,没有排名&a…

elementui的el-table自定义控制展开事件,实现“展开”“收起”的切换(两种效果)【超级完整式代码】

第一种&#xff1a;多行点击展开其他行不收起 先看效果图 直接上代码 【核心代码添加标注简单易懂】 <el-tableref"multipleTable":data"smsLogList.slice((currentPage - 1) * pageSize_, currentPage * pageSize_)"tooltip-effect"dark"st…

程序员必备的20个学习网站

今天好学编程小编整理了20个程序员必备的学习网站&#xff0c;此篇对于新手程序员比较有用&#xff0c;技术老鸟们也可以查缺补漏。话不多说&#xff0c;纯纯干货呈上&#xff0c;赶紧点个赞收藏&#xff0c;以后会用得上&#xff01; 技术网站类 1、博客园 一个面向开发者的…

6.jmeter非GUI命令及Beanshell组件

一、非GUI&#xff08;界面&#xff09;命令详解 1. -n 使用非gui方式&#xff0c;不能单独使用&#xff0c;必须和-t&#xff08;指定jmeter的脚本&#xff09;一起用。 #cmd命令行模式下&#xff0c;进入存放测试jmx文件的目录下 jmeter -n -t hello.jmx只会生成一个log日…

docker 安装redis

1. docker pull redis指定版本安装&#xff1a; docker pull redis:5.0 # 5.0 是指定版本号2运行redis docker run --name my-redis -p 6379:6379 -d redis 3查看 docker ps 6停止启动redis docker stop my-redis docker start my-redis 补充知识点 docker ps -a…

五分钟学会接口自动化测试框架

今天&#xff0c;我们来聊聊接口自动化测试。 接口自动化测试是什么&#xff1f;如何开始&#xff1f;接口自动化测试框架如何搭建&#xff1f; 自动化测试 自动化测试&#xff0c;这几年行业内的热词&#xff0c;也是测试人员进阶的必备技能&#xff0c;更是软件测试未来发…

线上版本升级 — — pg数据库备份

线上版本升级 — — pg数据库备份 在版本升级之前&#xff0c;我们通常为了保险都需要将数据库里的数据结构备份一份&#xff0c;防止升级失败之后数据丢失。&#xff08;根据业务而来&#xff0c;并非所有业务都需要备份&#xff09; 1 备份 1.1 pg_dump&#xff1a;备份指定…

【Flink-1.17-教程】-【四】Flink DataStream API(1)源算子(Source)

【Flink-1.17-教程】-【四】Flink DataStream API&#xff08;1&#xff09;源算子&#xff08;Source&#xff09; 1&#xff09;执行环境&#xff08;Execution Environment&#xff09;1.1.创建执行环境1.2.执行模式&#xff08;Execution Mode&#xff09;1.3.触发程序执行…

Hudi学习笔记(一)

大数据发展背景 Hudi用于管理分布式文件系统上大型分析数据集存储&#xff0c;支持Spark和Flink整合。它能够是DFS数据集在分钟级时延内支持变更&#xff0c;也支持下游系统对这个数据集的增量处理。 学习目标 什么是数据湖为什么使用数据湖Hudi基本功能如何编译Hudi源码Hud…

抖音账号矩阵系统开发

技术自研框架开发背景&#xff1a; 抖音账号矩阵系统是一种基于数据分析和管理的全新平台&#xff0c;能够帮助用户更好地管理、扩展和营销抖音账号。 部分源码分享&#xff1a;计算分页$active_list_all $Video_model->getCount($where);$page_libs newLibs_Pagination_…

PyQtGraph 之PlotCurveItem 详解

PyQtGraph 之PlotCurveItem 详解 PlotCurveItem 是 PyQtGraph 中用于显示曲线的图形项。以下是 PlotCurveItem 的主要参数和属性&#xff1a; 创建 PlotCurveItem 对象 import pyqtgraph as pg# 创建一个 PlotCurveItem curve pg.PlotCurveItem()常用的参数和属性 setData(…