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

本文主要是介绍车辆远控功能自动化测试方案:打造高效可靠的测试流程,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

随着汽车逐步走向智能化、网联化,整车的功能已经不再局限于驾驶员在车内进行本地操作。在远离车辆时,驾驶员也可以通过手机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.chinasem.cn/article/1130674

相关文章

最好用的WPF加载动画功能

《最好用的WPF加载动画功能》当开发应用程序时,提供良好的用户体验(UX)是至关重要的,加载动画作为一种有效的沟通工具,它不仅能告知用户系统正在工作,还能够通过视觉上的吸引力来增强整体用户体验,本文给... 目录前言需求分析高级用法综合案例总结最后前言当开发应用程序时,提供良好的用户体验(UX)是至关重要

python实现自动登录12306自动抢票功能

《python实现自动登录12306自动抢票功能》随着互联网技术的发展,越来越多的人选择通过网络平台购票,特别是在中国,12306作为官方火车票预订平台,承担了巨大的访问量,对于热门线路或者节假日出行... 目录一、遇到的问题?二、改进三、进阶–展望总结一、遇到的问题?1.url-正确的表头:就是首先ur

SpringBoot使用minio进行文件管理的流程步骤

《SpringBoot使用minio进行文件管理的流程步骤》MinIO是一个高性能的对象存储系统,兼容AmazonS3API,该软件设计用于处理非结构化数据,如图片、视频、日志文件以及备份数据等,本文... 目录一、拉取minio镜像二、创建配置文件和上传文件的目录三、启动容器四、浏览器登录 minio五、

Jenkins中自动化部署Spring Boot项目的全过程

《Jenkins中自动化部署SpringBoot项目的全过程》:本文主要介绍如何使用Jenkins从Git仓库拉取SpringBoot项目并进行自动化部署,通过配置Jenkins任务,实现项目的... 目录准备工作启动 Jenkins配置 Jenkins创建及配置任务源码管理构建触发器构建构建后操作构建任务

如何测试计算机的内存是否存在问题? 判断电脑内存故障的多种方法

《如何测试计算机的内存是否存在问题?判断电脑内存故障的多种方法》内存是电脑中非常重要的组件之一,如果内存出现故障,可能会导致电脑出现各种问题,如蓝屏、死机、程序崩溃等,如何判断内存是否出现故障呢?下... 如果你的电脑是崩溃、冻结还是不稳定,那么它的内存可能有问题。要进行检查,你可以使用Windows 11

如何评价Ubuntu 24.04 LTS? Ubuntu 24.04 LTS新功能亮点和重要变化

《如何评价Ubuntu24.04LTS?Ubuntu24.04LTS新功能亮点和重要变化》Ubuntu24.04LTS即将发布,带来一系列提升用户体验的显著功能,本文深入探讨了该版本的亮... Ubuntu 24.04 LTS,代号 Noble NumBAT,正式发布下载!如果你在使用 Ubuntu 23.

TP-LINK/水星和hasivo交换机怎么选? 三款网管交换机系统功能对比

《TP-LINK/水星和hasivo交换机怎么选?三款网管交换机系统功能对比》今天选了三款都是”8+1″的2.5G网管交换机,分别是TP-LINK水星和hasivo交换机,该怎么选呢?这些交换机功... TP-LINK、水星和hasivo这三台交换机都是”8+1″的2.5G网管交换机,我手里的China编程has

Django中使用SMTP实现邮件发送功能

《Django中使用SMTP实现邮件发送功能》在Django中使用SMTP发送邮件是一个常见的需求,通常用于发送用户注册确认邮件、密码重置邮件等,下面我们来看看如何在Django中配置S... 目录1. 配置 Django 项目以使用 SMTP2. 创建 Django 应用3. 添加应用到项目设置4. 创建

Java解析JSON的六种方案

《Java解析JSON的六种方案》这篇文章介绍了6种JSON解析方案,包括Jackson、Gson、FastJSON、JsonPath、、手动解析,分别阐述了它们的功能特点、代码示例、高级功能、优缺点... 目录前言1. 使用 Jackson:业界标配功能特点代码示例高级功能优缺点2. 使用 Gson:轻量

Redis KEYS查询大批量数据替代方案

《RedisKEYS查询大批量数据替代方案》在使用Redis时,KEYS命令虽然简单直接,但其全表扫描的特性在处理大规模数据时会导致性能问题,甚至可能阻塞Redis服务,本文将介绍SCAN命令、有序... 目录前言KEYS命令问题背景替代方案1.使用 SCAN 命令2. 使用有序集合(Sorted Set)