车辆远控功能自动化测试方案:打造高效可靠的测试流程

news2024/11/14 14:50:10

随着汽车逐步走向智能化、网联化,整车的功能已经不再局限于驾驶员在车内进行本地操作。在远离车辆时,驾驶员也可以通过手机APP下发控制指令来实现对车辆的远程控制。

近几年,伴随远控功能项不断增多,其功能逻辑也越来越复杂,因此,对测试的覆盖度、深度及敏捷度等都带来了巨大的挑战。传统基于实车或Labcar台架的手动测试方案,对测试环境要求较高且测试周期长,已经不再满足远控功能软件快速迭代测试的需求。为了解决此问题,本文提出了一种基于CANoe和vTESTstudio开发的远控功能自动化测试解决方案。

该方案以TBOX控制器为测试对象,搭载桌面级测试环境,利用vTESTstudio软件编写自动化测试序列,结合CANoe软件的仿真和测试功能,完成对车辆远控功能的自动化测试。此方案对测试环境要求较低且自动化程度较高,大大缩短了测试执行的周期、降低了人力投入。

以下将从测试环境搭建、用例编制、测试流程及实例等方面,对此方案进行详细介绍。

  • 硬件测试环境搭建

远控功能的实现路径如图1所示,即客户通过手机APP下发远控指令,经TSP平台传递到整车TBOX控制器中,再由TBOX下发至各控制器;车辆状态反馈的实现路径与远程控制的路径相反,由各控制器反馈当前设备状态到TBOX,由TBOX将反馈结果进行上传,经TSP平台到手机APP查看控制结果。

图1 远控功能实现路径

远控功能的测试重点:

  1. APP能否正确下发控制信号到控制器;
  2. 控制器执行命令后,反馈的状态信号能否正确传输到APP且正确显示。

在传统测试方案中,需要将所有控制器及负载接入台架中,这种方案虽然可以满足测试要求,但涉及样件过多,搭建环境比较复杂,测试难度及后期维护成本过高。针对此测试弊端,提出一种全新测试方案,如图2所示:

1、以TBOX作为测试对象,利用仿真信号模拟其他控制器反馈状态信号;

2、通过ADB命令控制手机APP下发远控指令执行及查看执行反馈;

3、上位机监控远控指令日志以及控制测试序列执行。

图2 测试硬件环境搭建示意图

  • 自动化测试软件介绍

远控功能自动化测试方案主要基于vTESTstudio和CANoe两款软件进行测试序列开发、测试实施、测试报告生成及问题定位。

vTESTstudio利用内建智能算法灵活地设计测试序列和用例,并且支持用户使用多种方式创建测试文件,包括编程(CAPL、C#、Python)、表格(Test Table)和图形(Test Sequence Diagram、State Diagram),高效地实现各种复杂测试需求和场景。

图3  vTESTstudio软件Test Sequence Diagram模块

CANoe是强大的ECU开发、测试和分析的专业工具。利用其仿真和测试功能,可模拟测试相关子系统的状态信号以及执行vTESTstudio编辑的测试序列,并自动生成测试报告

图4  CANoe软件Test Units模块

  • 测试流程概述

远控功能自动化测试的流程主要分为以下几个步骤:

  1. 根据功能规范整理测试功能点;
  2. 根据测试功能点编写测试用例,确保测试用例的覆盖度及深度;
  3. 创建CANoe工程;
  4. 创建vTESTstudio工程,根据功能点分别创建测试序列文件;
  5. CANoe中加载测试序列,执行自动化测试;
  6. 测试结束,输出测试报告。

图5 远控功能自动化测试流程

  • 车辆远控功能自动化测试示例

下面以远程控制车窗功能为例,来具体介绍远控功能的自动化测试方案。

远程控制车窗是用户通过手机APP对车窗的开启、关闭和通风功能发起控制请求,车辆在收到远程指令后,判定条件满足的情况下,执行相应的动作,并将执行的结果反馈到用户的手机APP上。

首先对该功能需求进行初步分析,形成远程控窗功能测试的思维导图。如图6所示:

图6 远程控制车窗功能测试思维导图

远程控制车窗功能根据功能需求划分为“全开”、“全关”及“通风”三大部分,每个子功能根据其初始状态(车窗初始位置和故障状态)划分测试场景,再根据执行操作(全开/全关/通风)反馈对应执行结果(执行成功/执行失败)。

基于思维导图,创建功能测试用例,如图7所示:

图7 远程控制车窗功能测试用例

测试用例划分项包括测试功能描述、前置条件、操作步骤、期待结果、实际结果、测试问题描述等,用于确认测试功能覆盖度、编写测试序列及输出测试结果。

接下来创建CANoe工程,加载测试输入文件,建立仿真节点,如图8所示。

图8 远程控制车窗CANoe工程

仿真节点一般根据测试项目的数据库文件生成,上图显示仿真节点有两个,GW_TBOXCAN节点用于仿真发送数据库中所有和TBOX有信号交互的报文,ECALL节点用于仿真发送数据库中拨打ECALL功能相关报文,利用仿真节点的Open IL Configuration功能选择发送与测试相关的报文,便于后续测试序列调用仿真报文中的信号。

根据功能测试用例,通过vTESTstudio建立测试序列,下图9为远程控窗功能的测试序列。

图9 车窗全开操作测试序列前提条件

图10 车窗全开操作测试序列判断条件

图9、图10为车窗全开操作序列,该测试序列逐层执行,上一层是下一层的前提条件,与测试用例一一对应,条理清晰。在测试执行操作后,选择条件区分框,基于不同前置条件对应不同测试结果,使整个测试序列更为简洁,便于后期维护。

图10 Test Units模块加载测试序列

由上图可知,测试序列文件加载到CANoe Test Units模块后生成可执行的Test Case,勾选对应的Test Case后运行CANoe,执行自动化测试。完成以上各项操作后,根据CANoe生成的测试报告,输出测试结果,完成对车窗远控功能的测试。

其他的车辆远控功能自动化测试原理,与远程控窗功能类似。目前,我们已经完成了对车辆远控功能自动化测试序列的开发。主要包括以下的远控功能项:

表1 远控功能自动化测试功能项

序号

功能项

1

远程寻车

2

远程闪灯

3

远程关怀模式开启/关闭

4

远程控制背门开启/关闭

5

远程控制车窗全开

6

远程控制车窗全关

7

远程控制车窗通风

8

远程解锁

9

远程闭锁

10

远程控制空调开启/关闭

11

远程前除霜开启/关闭

12

远程急速升温降温开启/关闭

13

远程空气循环开启/关闭

14

远程空调温度设置

15

远程控制天窗全开

16

远程控制天窗全关

17

远程控制天窗通风

18

远程座椅加热开启/关闭

19

远程座椅通风开启/关闭

20

远程座椅加热档位调节

21

远程座椅通风档位调节

22

远程方向盘加热开启/关闭

23

立即备车

24

预约备车

  • 结语

本文主要介绍了基于vTESTstudio的车辆远控功能自动化测试方案,适用于所有远控功能的完整自动化测试,可以根据客户需求增加功能项或测试点,具有测试覆盖度高、灵活性强等特点。希望通过本文的介绍,各位小伙伴能够对车辆远控功能自动化测试方案有初步的了解,愿我们共同携手,一起打造功能自动化测试平台,为汽车智能化保驾护航。

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

python开发--信息的增删改

部门信息的增删改 1. 增加 点击新建部门 跳转到新建部门页面:http://127.0.0.1:8000/depart/add/ 在views.py里面增加如下代码,可以将用户输入的信息添加到数据库中 def depart_add(request):if request.method GET:return render(request, depart…

STL之my_list容器

前言:各位老铁好久不见了,今天分享的知识是自己实现一个简单的list容器,为什么我先跳过vector容器的自我实现呢?我个人觉得vector相对于list的自我实现简单一点,所以今天先分享实现my_list的知识 我们要实现my_list&a…

machine learning - 2

泛化误差 也可以认为是预测时的误差。 训练误差 并不是越小越好,太小会过拟合。 获得测试集合的方法: 1): 2):例如:k-折交叉验证法, 就的每k个数据取一个座位测试集 3&#xff0…

nginx容器映射配置文件后,启动一直报错提示:failed (13: Permission denied)的排查

问题现象: 使用harbor 的install.sh 创建docker-compose之后,出现nginx容器一直重启。 查看日志发现是:配置文件无权限。报错信息如下: Sep 2 16:43:13 172.28.0.1 nginx[1344]: 2024/09/02 08:43:13 [emerg] 1#0: open() “/e…

网站网站建设公司用什么

随着互联网的飞速发展,网站已经成为企业的重要门面和宣传工具。为了在网上展示自己的品牌形象和吸引更多的客户,越来越多的企业选择找专业的网站建设公司进行网站建设。那么,网站建设公司主要使用什么技术和方法呢? 首先&#xff…

四、基本电路设计笔记——4.1 DC-DC稳压电路

目录 4.1 DC-DC稳压电路 4.1.1 基于MT2492的DC-DC稳压电路 (1)芯片参数 (2)芯片引脚 (3)输出电压设置 4.1.2 基于MT2499A的DC-DC稳压电路 (1)芯片参数 (2&#xf…

【Redis】Redis 主从复制

文章目录 1 前言2 主从模式介绍3 配置 Redis 主从结构3.1 建立复制3.2 断开复制3.3 其他特性3.4 拓扑结构 4 Redis 主从复制原理4.1 复制过程4.2 PSYNC 数据同步4.3 PSYNC 运行流程 5 主从复制流程5.1 全量复制流程5.2 部分复制流程5.3 实时复制流程 1 前言 分布式系统中存在一…

鸿誉移民:定制化移民服务,吹响全球高效率移民的嘹亮号角!

鸿誉移民:定制化移民服务,吹响全球高效率移民的嘹亮号角! 作为国内知名海外移民服务机构,鸿誉移民历经多年行业沉淀,拥有着极其丰富的移民咨询以及移民办理经验,并以咨询及时精准,签证快捷、通…

Bean 的实例化(创建 | 获取)

Spring为Bean提供了多种实例化方式,包括如下4种方式: 第一种:通过构造方法实例化第二种:通过简单工厂模式实例化第三种:通过factory-bean实例化(工厂方法模式实例化)第四种:通过Fact…

智能未来:低代码与AI如何重塑企业应用开发

引言 在当今瞬息万变的商业环境中,企业面临着前所未有的挑战与机遇。数字化转型已经成为各行各业的必然趋势,而在这一过程中,应用开发的效率与智能化程度成为企业竞争力的重要衡量标准。传统的开发模式往往需要大量的时间和资源,而…

【Godot4.3】基于ShapePoints的Polygon2D扩展

概述 这同样是来自2023年7月份的一项实验性工作,基于最初版本的ShapePoints静态函数库,实现了对Polygon2D节点的扩展,用于创建参数化图形的Polygon2D节点。 Polygon2D节点本身只能通过顶点绘制工具,创建很随意的多边形。通过Sha…

MySQL数据库管理系统下载安装

一. MySQL概述: 1.数据库相关概念 数据库:存储数据的仓库,数据是有组织地进行存储(DataBase 简DB)数据库管理系统:操纵和管理数据库的大型软件 (DataBase Management System 简DBMS)SQL:操…

一分钟创建自己的分班查询系统,家长扫码即可进群

开学后,老师们的忙碌也达到了顶峰。整理教材、准备课程计划、布置教室,这些工作已经让人应接不暇,更别提还要处理分班事宜。以往,老师们需要一个个通知家长分班结果,这不仅耗时耗力,还容易出错。家长们也常…

​数字IC设计基本概念之多时钟设计​

当设计中使用了多个时钟时,这些时钟域之间的关系可能是synchronous、asynchronous或者exclusive的。如下所示: Synchronous: Asynchronous: Exclusive: 需要人为地指定设计中时钟之间的关系,EDA工具才能正…

燃油车淘汰倒计时开始了?

文 | AUTO芯球 作者 | 璇子 新能源车要取代燃油车了? 油车车主先别喷啊 就在上个月 新能源乘用车月销量数据一经公布 我一看 渗透率居然达到了惊人的51% 啥概念啊 如果卖100台车 51台都是新能源 其他49台才是燃油车 看到这数据 有好多看热闹的人就在说 …

Vue组件:创建组件、注册组件、使用组件

1、创建组件 组件(component)是 Vue.js 最强大的功能之一。通过开发组件可以封装可服用的代码,将封装好的代码注册成标签,扩展 HTML 元素的功能。几乎任意类型应用的界面都可以抽象为一个组件树,而组件树可以用独立可…

【完-移动云-基础】移动云架构和ECS

一、移动云产品架构 产品架构分为IaaS、PaaS、SaaS 我司使用的是IaaS,仅托管了服务器资源。软件则由浪潮提供。 一图理解三者区别 二、云主机ECS 是一种弹性按需提供的云端服务器,可选择不同的配置 基础服务: 虚拟化、镜像、云硬盘、云…

autoware整体架构的分析

autoware framework sensinglidar driver(lidar驱动)PointCloud Preprocessing(点云预处理)Detection(检测)GNSS (全球导航卫星系统)IMU (惯性测量单元) Localization(定位)Pose Ini…

产品需求过程管理重要性

产品需求过程管理重要性 背景 以下都是真实事项经历回顾,在产品开发过程中,产品经理与研发团队之间的沟通至关重要。然而,沟通不畅或信息缺失常常导致需求无法准确传达,最终影响产品的成功。以下是一些常见的问题: 1.需…

Qt插件开发总结6--插件间依赖

文章目录 一、前言二、基本策略三、效果展示四、关键代码4.1、主程序4.2、插件管理器4.3、插件A 一、前言 插件大致可分为:功能性插件、界面插件;一个软件由一堆插件堆起来,必然难以避免插件间相互引用,例如:插件A调用…