车联网应用软件(APP)移动端依赖于车外采用手动方式

日期: 栏目:文章分享 浏览:1171 评论:0

‖ 摘要

目前,在整车测试阶段进行的车联网 APP 系统测试大多采用手动方式。为解决整车测试阶段中测试效率过低和人因错误,设计了一种用于车联网 APP 的非侵入式自动化测试方法,包括触屏点击和输入模拟、图像采集和处理、图像和文字识别,逻辑处理以及该研究可视化。通过设计仿真移动端—云端—车端的外部交互环境,利用了图像处理和 OCR 技术结合的方式实现自动识别。基于 开发平台和 脚本语言相结合的方式,实现测试自动化和可视化,最终完成车联网 APP 的非侵入式自动化测试。该设计方法有效解决了汽车行业车联网移动端 APP 到车端的系统测试对测试人员依赖过重的问题,提高了测试的自动化水平和效率。该方法不依赖被测对象的操作系统,也无需 APP 的源码,可应用于工控领域人机交互界面的系统级测试。

0

引言

随着 5G、大数据、人工智能等技术的不断发展,软件在未来汽车网联化、智能化、共享化和电动化的发展中占据着越来越重要的地位。车联网应用软件(,APP)移动端依赖于车外云服务(云端)和车载通信终端(车端)的配合,从而实现远程控制、车况上报、诊断、报警和寻车等功能。通过对车联网 APP 的系统级验证,可以检测从移动端、云端,到车端的全链路车联网的功能正确性和可靠性。车联网软件在用户真实场景中的测试与验证尤其重要。

车联网系统主要有三大部分组成部分,包括车端、云端和移动端。自动化测试是一种测试技术,通过分析软件产品的业务设计流程,编写和设计测试程序雷电模拟器被检测到了,并在计算机中模拟运行,自动或半自动地验证被测试软 件的响应和行为。目前,汽车整车厂在整车测试阶 段进行的车联网 APP 系统测试大多采用纯手动的方式。要解决整车测试阶段测试效率过低和人因错误,车联网功能的全自动化测试解决方案有一个待解决的核心问题,即实现业务场景的模拟,并通过自动化手段触发业务,以便判断业务执行的逻辑正确性和相应功能的实现正确性。

1

功能设计

通过数据线(on the go,OTG) 的通信方式控制手机端 APP,模拟用户输入指令,实现业务场景的模拟和软件菜单的切换。利用光学字符识别( ,OCR)技术识别车端反馈到移动端的结果,从而实现车联网 APP 非侵入式的全链路的自动化测试,主要包括测试工程管理、触屏点击和键盘输入模拟、图像采集、测试脚本管理和图像信息特征识别。

1.1 测试工程管理

测试工程管理支持对测试脚本的新建、保存、删除和编辑等操作。脚本本身保存在关系型数据库管理系统 MySQL 中。

测试工程执行时,模块中的脚本解释器会读取测试脚本文件,解析并执行脚本内容。模拟测试人员的实际操作,按照脚本的要求测试各个功能模块,并形成测试流程。

1.2 触屏点击和键盘输入模拟

触屏点击和键盘输入模拟功能主要模拟用户点击动作、输入行为与 APP 系统交互的信息。将测试系统的用户界面(user ,UI)发出的指令转为被测 APP 上的移动设备的用户输入,控制被测 APP 的点击和输入等操作。

①触屏点击模拟: 在移动设备上插入 OTG 线和鼠标模拟器,用鼠标操作实现手机点击、切换 APP 菜单和画面等操作。

②键盘输入模拟: 在移动设备上插入 OTG 线和键盘模拟器,实现在手机指定位置中输入文字指令等操作。

1.3 图像采集

图像采集功能主要是以一定频率对 APP 所在的载体(手机或者模拟器) 的屏幕进行录制,并对视频信息进行图像截取和存储管理。其主要功能如下。

(1) 图像数据抓取: 图像的主要来源是 APP 的 UI画面,图像的保存格式可由用户配置,包括.jpg 和.bmp,调用 接口命令实现对手机屏幕的截图。

(2) 图像数据存储: ①图像裁剪,按照指定坐标对图像的尺寸进行裁剪; ②保存图片,在测试软件中加载和预览图片; ③删除处理过程中的图片和无效图片。

1.4 测试脚本管理

测试人员根据需求配置测试流程,导入和解析测试脚本。调用图像处理、图像识别和输入模拟系统,将执行命令发送到对应子线程。由触屏点击和键盘输入模拟系统对被测 APP 进行输入。测试脚本管理功能主要包括: 执行某个脚本; 等待指定的时间; 执行模拟动作; 解析图像和数值; 保存结果到数据库。

1.5 图像信息特征识别

对车联网 APP 的 UI 颜色、数字、文字等信息进行识别,主要功能如下。

①图像比较: 在测试过程中进行录屏,对屏幕图像进行实时的周期性比较。找出有变化的图像,标记后存储到本地,并设置相对于原图像变化的阈值。

②图像预处理: 截获图像在预处理后进行 OCR,以提高识别率。

③文字识别: 能够对 APP 的 UI 内容(包括颜色、数字、文字等信息)进行识别,并将结果与数据库预置的期望值进行比较,以判断识别是否成功。

2

软件设计

软件设计分为 4 层,自上而下分别为业务层、核心

层、数据层和设备驱动层。软件设计架构如图 1 所示。

图 1 软件设计架构图

2.1 业务层

业务层服务于测试工程管理和图像采集。

2.1.1 测试工程管理

测试工程管理主要实现 APP 测试脚本导入、图像采集和输出、脚本执行和测试结果判定。使用 语言进行指令解析,调用 -OCR 实现对图像输出信息的判断和对测试脚本的执行控制。测试工程管理包括以下 5 个模块。

①测试环境配置模块: 设置管理员、测试工程师和操作人员的权限: 测试工程师进行测试环境配置,包括对自动测试系统的硬件设备进行配置和选择; 操作人员负责选择和执行脚本。

②测试脚本导入和解析模块: 编辑车联网 APP 系统测试脚本,将其导入数据库的数据表格中,并转换为自动测试软件可以解析的测试脚本。

③测试管理执行模块: 根据 APP 的系统测试需求,创建测试脚本执行序列。使用 程序对测试脚本进行解析,驱动测试脚本自动执行。

④测试数据收集模块: 在测试过程中,根据数据收集要求,对测试数据进行自动化收集,并保存到数据库中。

⑤测试结果判定模块: 在测试脚本执行过程中收集实际输出,并与数据库中设定的预期输出进行比较, 判断结果是否正确。

2.1.2 图像采集

图像采集包括两个模块: 图像数据抓取模块和图像数据存储模块。

利用 内置的应用程序接口( ,API) 调用后台的服务进行录制和截图,实现图像抓取和存取管理,为图像信息识别提供数据源。

2.2 核心层

核心层负责图像信息特征识别,包括图像信息读取、图像预处理、特征识别、特征比对和字库训练等功能。

图像的文字通常叠加在 APP 的 UI 背景上。图像处理效果如图 2 所示。

图 2 图像处理效果图

现有 OCR 技术难以在有背景或噪声的图像上获得较好的识别效果。图像预处理使用 的第三方 CV 库函数对截取的图像进行预处理,例如反色处理、灰度处理、对比度增强等,从而提高对文本的识别能力。

采用谷歌公司的 -OCR 进行文字识别,并根据项目需求进行自定义语言库的设计,使 用 工具进行字库训练。对 APP 内的典型图片进行收集和保存,图片格式为 .tif 。用 .jar 工具打开 .tif 文件,根据图片信息修改 box 文件中识别错误的 Char 单元格的内容,并生成 .tr 格式的文件。最终完成训练,生成自定义字库。

2.3 数据层

数据层主要进行数据管理,提供 -ODBC调用接口,供上层程序使用数据库。数据内容为所有要存储在数据库中的内容,包括 APP UI 数据、测试数据和映射坐标数据等。

2.4 设备驱动层

设备驱动层是上层模块对被测 APP 的信息传输的驱动,驱动 OTG、USB 端口等硬件和安卓底层 API 函数对被测件的自动化操作。

3

业务流程设计

业务流程如下所述。

①测试环境配置,根据被测车联网 APP 相关规程或文档,配置硬件和协议参数。

②测试执行时,通过调用鼠标事件坐标映射表,进行测试脚本的解析,实现自动测试。测试过程包括图 像获取和存储、图像处理、图像识别、触屏和键盘执行, 预期输出比对。

③测试数据收集。将调用的子系统函数的执行结果,即测试结果存储在 MySQL 数据库中。

④MySQL 数据存储系统根据 MySQL 数据库存储的测试数据,进行数据分析,包括测试结果判断和统计分析,并支持导出测试报表。

车联网 APP 自动化测试平台软件的业务流程设计如图 3 所示。

图 3 业务流程设计图

4

测试实现

根据业务流程编制测试脚本,实现车联网 APP 系统级的自动测试流程。

①根据操作者选择的测试脚本,启动软件测试。本测试选用某主流品牌手机,分辨率为 1 080×2 400。

②根据设定的测试顺序,测试软件执行触摸点击模拟动作,切换到 APP UI 页面。点击 APP 内的功能菜单按钮,执行远程开启车辆门锁,同时启动手机录屏。

③对录制的视频进行 1 帧/秒的截图,与基准图标进行对比,捕捉到返回事件时的截图,并按照数据库内的坐标映射表截取待识别的区域。

④图像识别系统对图像进行预处理,例如灰度、最小二乘和对比度等图像处理方法,以提高识别程度。

⑤ 图像识别线程的 程序调用底层的 语言库进行文字识别,并与预期值进行比较,判断识别是否成功。生成测试报表并上传到 MySQL 数据库。

5

结论

本设计方法面向车联网 APP 系统层测试,采用非侵入式自动测试机制雷电模拟器被检测到了,通过设计仿真移动端—云端—车端的外部交互环境,驱动 OTG、USB 端口等硬件和安卓底层 API 函数对被测软件的自动化操作。本设计方法利用图像处理和 OCR 技术结合的方式实现了自动识别,最终完成了车联网 APP 的非侵入式的自动化测试,提高了车联网 APP 系统级测试的自动化水平和效率。本设计方法不依赖被测对象的操作系统,无需 APP 的源码,可模拟人工操作进行自动化测试,也可应用于工控领域人机交互界面的系统级测试。

End

标签:

评论留言

我要留言

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。发布前请先查看评论规则:点我查看