西安建设网站平台,宁夏城乡住房建设厅网站,公司 网站建设 简介,王野天天一、 验证平台概要
1.1 测试软件方法论
“软件定义汽车” 的时代#xff0c;软件在整车制造中的重要性日渐凸显。但不同于其他行业的软件开发#xff0c;汽车行业有自己独特的软件开发要求。首先是需求严谨、需求层次复杂、需要通过专业的工具进行管理#xff1b;其次开发…一、 验证平台概要
1.1 测试软件方法论
“软件定义汽车” 的时代软件在整车制造中的重要性日渐凸显。但不同于其他行业的软件开发汽车行业有自己独特的软件开发要求。首先是需求严谨、需求层次复杂、需要通过专业的工具进行管理其次开发团队技术需覆盖多个领域一整套嵌入式软硬件开发的解决方案涉及硬件设计开发、基础软件开发、上层应用软件开发等各团队之间技术栈差异极大最后还要求不同领域 / 团队之间协同紧密即使是一个简单的功能开发可能需要涉及多个领域协作完成。
V模型开发与验证
传统的汽车软件开发一般遵循“V模型”的方式ASPICE即为其中的代表。
Automotive SPICE简称 ASPICE全称是“Automotive Software Process Improvement and Capacity Determination”即“汽车软件过程改进及能力评定”模型框架。其起源于1994年是国际标准化组织ISO、国际电工委员会IEC等机构制定的联合标准之一后由德国汽车工业联合会VDA运营发展用于指导实现高标准的车载软件开发流程从而改善车载软件的质量。目前ASPICE是汽车产业的软件流程改进和能力测定标准当前已成为全球汽车产业评价供应商软件研发能力的普遍标准之一。
ASPICE源自于ISO 12207及ISO 15004–5:2006 提供的重评估模型目前由VDA WG13 (德国汽车联合公会工作小组13)发行并且由VDA注册商标。现在最新的ASPICE标准是2017年11月发布的3.1版本。
ASPICE过程域
ASPICE将汽车系统研发过程划分为了32个过程并将这32个过程归类到3大类、8个过程组。
过程即Process。首先将一个完整的汽车软件开发项目切割成8个组Group。然后对每个组再次切分成若干个子模块即过程Process。每个过程都有自己的过程ID过程名称过程目的和过程成果。
如下图所示 在系统组(SYS)和软件组(SWE)的工作流程中开发与验证是对应的关系。
在ASPICE的V模型中需求分析、系统设计、详细设计和编码实现构成了左半部分单元测试、集成测试、系统测试构成了右半部分其中左半部分是右半部分的准备阶段右半部分是左半部分的实现阶段。如下图可以看到SWE.1 软件需求分析对应的是SWE.6 软件合格性测试SWE.3 对应的是SWE.4详细设计对应单元测试。 在需求分析阶段要考虑系统验证的计划包括确保每一个需求点都是可验证的并设计相应的初 步系统验证用例在概要设计阶段要考虑部件验证计划设计相应用例验证高级模块的功能以及模块之间的接口关系进行基础软件验证时需按照顺序开展代码静态验证、单元验证、部件验证包括软软集成、软硬集成、系统验证等测试执行工作。其验证类型可分为白盒测试、黑盒测试两类。白盒测试包含代码静态验证、 单元验证重点侧重于代码逻辑、接口实现等内容。黑盒测试包含部件验证、系统验证重点侧重于硬件功能实现、人机交互实现及通信功能实现等内容。
自动化测试云平台
在汽车的测试中HIL(Hardware in Loop, 硬件在环)和MIL(Model in Loop, 模型在环) 是两种重要的测试类型。
HIL测试是一种在整套硬件系统上验证代码实现的功能是否与需求定义一致的测试方法是进行整车仿真测试和实车路试前重要的验证环节。这是一种在硬件在环仿真系统中进行的测试可以模拟实际车辆的各种工况以便验证车辆的各项性能指标和功能是否达到预期。
MIL测试是用模型驱动工程开发嵌入式系统的时候在开发的初期阶段及建模阶段中进行的仿真方式。一般在应用层软件开发用来验证控制算法模型是否准确地实现了需求。这是一种模型在环仿真系统的测试主要目的是检查模型算法的正确性。
这两种测试方法都是为了在车辆真正上路之前尽可能发现并解决潜在的问题以确保车辆在实际运行中的安全性和可靠性。
因此必须搭建汽车软件测试验证平台以验证可能存在的问题。为了提高验证的效率可以采用云平台的方式实现全面的端云一体无人值守测试体系。
整体架构采用云到端的框架实现远程监控集中管理自动构建持续集成无人值守的测试
平台构成云服务器数据服务器测试台架测试目标机监控客户端等 在上述云测试平台系统中测试台架和测试车机是控制并实现HIL测试的关键设备。它们需要支持如下功能
支持CAN/LIN/Ethernet 信号收发与诊断支持外设控制电源控制音频模拟与截取图像模拟与截取等功能支持多种日志记录与分析包括Linux系统日志QNX日志Android日志记录等支持自动部署软件自动上下电自动运行自动抓取Log等功能
对于自动化测试云平台来说需要满足如下的功能需要
支持服务仿真、同域和跨域交互仿真、持续集成CI、持续部署CD以及Android、QNX、Linux等多种主流操作系统。协助研发人员高效便捷的搭建SOA仿真环境并在研发阶段进行服务仿真调试和自测。具有自动化测试执行、测试用例及脚本自动生成等功能。拥有广泛的应用领域适用于服务订阅/发布测试、服务功能测试、服务接口测试、服务性能测试、服务压力测试、服务稳定性测试等多种场景。
1.2 测试软件体系
在汽车软件自动化测试云平台中智能座舱的测试软件体系主要分为以下几部分
云端管理软件这一部分的软件包含了云测试管理平台它对测试资源进行统一管理对测试任务、测试用例、测试活动、测试远程控制、测试记录与报表等实行集中管理。上位机软件这一部分的软件运行在上位机(测试台架)中主要面向汽车信号模拟测试与智能座舱操作控制测试同步、自动完成利用图像识别技术自动进行结果验证生成可视化测试报表。信号控制硬件这一部分的硬件主要用来模拟常用的汽车信号以及发送CAN信号另外还提供多个外设接口模拟一些特殊的信号例如外接音频分析仪进行报警音检测等。车机软件这一部分软件运行在被测试的车机上它按实际工作逻辑接收仿真信号注入产生应答并按标准接口将应答信息或日志记录等上传。
无疑台架软件(上位机软件)是承上启下实现自动测试的关键要点。它在测试体系中主要负责以下功能
信号模拟与测试台架可以模拟汽车信号以及发送CAN信号并且可以提供多个外设接口模拟一些特殊的信号例如外接音频分析仪进行报警音检测等。操作控制测试针对智能座舱的操作控制测试它可以实现自动化测试并且可以利用图像识别技术自动进行结果验证生成可视化测试报表。数据记录与分析可以记录测试过程中的各种数据包括但不限于信号的变化、测试结果、时间戳等并且可以对这些数据进行统计分析以便于发现问题、改进测试方案。远程监控与控制可以通过云端管理软件对远程的测试资源进行监控和控制使得测试过程可以更加灵活和高效。系统集成与优化可以集成其他测试工具、仪器和设备并且可以根据实际需求进行优化和调整以提升整体测试效率和质量。
如下图给出了一个简要的自动测试流程可见台架软件是如何通过以下步骤实现信号模拟与测试的 连接硬件台架软件需要与硬件设备连接例如CAN总线适配器、USB转串口适配器、音频分析仪等。这些硬件设备可以通过串口、USB接口或其他方式与台架软件进行通信。模拟信号生成台架软件可以根据测试需求通过模拟信号生成模块来生成不同的模拟信号。例如可以生成模拟车辆速度、发动机转速、温度等信号也可以模拟车辆故障信号如ABS故障、发动机故障等。信号采集与转换在测试过程中台架软件需要获取来自硬件设备的信号例如电压、电流、温度等信号。这些信号在信号控制硬件被采集后转换为数字信号并通过通信接口与台架进行数据传输。信号分析与处理台架软件通过数字信号处理技术例如FFT快速傅里叶变换算法、滤波算法等对采集到的信号进行分析和处理以提取出有用的测试数据。数据存储与分析云端软件将测试数据存储在本地或云端数据库中并且可以通过数据可视化技术例如曲线图、柱状图等对测试数据进行展示和分析。这样测试人员可以更加方便地查看测试结果并且可以通过对数据的分析发现测试中存在的问题和改进测试方案。
1.3 自动化测试工具
对于测试系统来说一个好的自动化测试工具是提升效率节省时间和金钱的效费比选择。在之前介绍的自动化测试平台中有2类自动化测试工具可供选用。
1. 云端自动测试工具
可用的云端自动测试工具很多在此仅举一个例子用来说明
Phoenix Framework是一款基于Selenium、webdriver、autoIt研发的自动化测试工具使用java语言封装包含无脚本模式执行、无人值守模式执行、自由定制模式、分布式执行等功能。它主要用于应对复杂应用系统的测试提高测试效率和质量缩减测试成本。
Phoenix Framework具有以下特点
跨浏览器兼容性Phoenix Framework支持四种浏览器类型包括Chrome、Firefox、Safari和Edge可以满足不同浏览器的测试需求。智能识别机制它支持七种元素动态定位方式能够智能地识别和定位页面元素提高了测试的准确性和效率。数据维护模块Phoenix Framework集成了数据维护模块方便了自动化后期脚本数据维护的问题减少了人工干预和错误。属性录制模块该框架还具有属性录制模块能够方便地记录和导入元素定位信息减少了手动的测试工作量。自定义模块Phoenix Framework还支持自由定制模式用户可以根据自己的测试需求自定义测试脚本和流程实现更灵活的自动化测试。分布式执行该框架支持分布式执行可以同时在多台计算机上执行测试任务加快了测试速度提高了测试效率。详细的测试报告Phoenix Framework提供了详细的测试报告和执行过程的录制回放功能可以帮助测试人员对测试结果进行全面的分析和评估。多平台支持Phoenix Framework不仅可以在Windows上运行还可以在Linux和Mac OS等平台上运行具有很好的跨平台兼容性。支持B/S结构的系统的自动化测试Phoenix Framework能够应对B/S结构的系统的自动化测试包括Web应用程序、Web服务、REST API等。与其他工具集成Phoenix Framework可以与其他测试工具、缺陷管理工具和持续集成/持续部署CI/CD工具集成如Jira、TestRail、Jenkins等方便了测试管理和自动化流程的整合。支持多种数据库除了默认的MySql数据库Phoenix Framework还支持Oracle、DB2、SQL Server等多种数据库。
Phoenix Framework的系统框架主要由以下几部分组成
用户接口User Interface用户接口是用户与Phoenix Framework交互的方式。用户可以通过该接口创建、编辑、运行和管理测试脚本以及查看测试报告和执行结果。测试脚本引擎Test Script Engine测试脚本引擎是Phoenix Framework的核心组件之一负责解析、执行和报告测试脚本的执行情况。浏览器驱动Browser Driver浏览器驱动是Phoenix Framework与被测系统被测应用或网站进行交互的组件。它负责模拟用户操作如点击、输入、滚动页面等并与测试脚本引擎通信确保测试的正确性和稳定性。数据库DatabasePhoenix Framework使用数据库来存储和管理测试数据、配置信息和其他相关信息。模块Modules模块是Phoenix Framework的功能扩展组件可以增强框架的功能和灵活性。例如数据维护模块可以方便地管理测试数据属性录制模块可以方便地记录和导入元素定位信息等。
2. 台架自动测试工具
台架软件上可运行的自动测试工具一般需要定制开发它属于专用的上位机软件。一般来说造车新势力主机厂或者智能座舱Tier1供应商等都会有相对较大的座舱软件团队他们会根据自己的需要设计专用的自动化测试台架。部分Tier1供应商也会为不同的客户提供基础测试软件平台并可基于客户的要求进行客制化。这些座舱测试软件平台拥有共同的特质
设备连接与测试环境搭建系统可以快速实现与被测设备的连接并搭建稳定的测试环境支持多种类型的座舱设备如车载信息娱乐系统、导航系统、仪表盘等。自动化测试脚本生成基于图像和文字识别技术系统能够自动识别被测设备的界面元素并生成可执行的自动化测试脚本。用户可以通过简单的操作来生成测试用例减少了手动编写测试脚本的工作量。实时测试过程监控在测试执行过程中系统可以实时监控被测设备的状态包括界面元素的状态、设备硬件的运行状态等。如果出现异常情况系统会立即告警以便测试人员及时处理问题。测试数据统计与分析系统能够自动记录测试过程中的各种数据如测试用例的执行结果、设备性能指标等。用户可以对这些数据进行统计和分析以便更好地评估座舱软件的质量和稳定性。远程协同测试多个测试人员可以在不同地点进行协同测试。这对于大规模的座舱软件测试项目来说可以提高测试效率并减少人力成本。自动化测试报告生成系统可以自动生成详细的测试报告包括测试用例的执行情况、缺陷记录、性能指标等。用户可以根据测试报告来评估座舱软件的质量和改进方向。
对于台架测试软件来说各家的功能大同小异其核心价值在于测试Case的设计与数量而这些测试Case需要项目与经验的积累。 二、验证平台案例
2.1 测试用例概述
智能座舱的功能复杂度与日俱增新技术的挑战层出不穷。随着多屏联动、语音识别、手势控制、增强现实、多模交互等新技术的涌现座舱功能越来越丰富、越来越复杂在丰富功能的同时也给测试带来很多新的挑战。为了迅速抢占先机占领市场产品上市周期随之缩短。如何在交付之前保证产品的安全可靠如何控制替换成本是当下智能座舱供应商面临的严峻考验。
传统人工测试的方式早已被证明效率低下座舱测试引入自动化也不是什么新鲜事物。
自动化测试的关键在于如何确认测试用例对于智能座舱测试来说它的测试用例test case主要包括以下几类
基础功能测试测试智能座舱的基本功能是否正常例如音响、导航、车窗、空调、语音识别等。性能测试测试智能座舱的性能是否满足设计要求例如响应时间、精度等。界面测试测试智能座舱的界面是否易用、美观例如按钮布局、菜单结构、字体大小等。兼容性测试测试智能座舱是否能够适应不同的硬件、软件环境例如不同的手机、操作系统等。安全性测试测试智能座舱的安全性能例如密码保护、数据加密等。可靠性测试测试智能座舱的可靠性例如长时间使用是否会出错、是否耐高温等。自动化测试使用自动化测试工具进行测试例如模拟用户的实际操作测试智能座舱的反应是否正常。用户体验测试测试智能座舱的用户体验是否良好例如是否容易上手、是否符合用户习惯等。稳定性测试在长时间、大量次数的使用下测试智能座舱是否仍能保持稳定性。
如下图给出了智能座舱中典型的测试场景 以上简要介绍了智能座舱中需要验证的典型场景下一步还需要给出两个详细的实例进行说明。
2.2 网络通信测试验证
网络通信是实现汽车各控制器进行信息交互的桥梁在汽车主干网中常用的总线通信类型大致包含CAN总线、 LIN 总线、以太网三类。此外智能网联化的发展也对车辆的网络通信提出了低延时大带宽高可靠的要求。上述三类网络通信方式的组合及其在基础软件验证平台的应用基本能够满足汽车在不同架构类型及不同功能场景下的通信需求。与之相对应的基础测试验证则成为了检验基础软件是否满足通信需求的重要一环。
以下为摘自《中国汽车基础软件发展白皮书3.0》中关于网络通信测试验证的具体实例内容。
1. 需求分析
基础软件虽然具备软硬件的解耦、接口的可复用性、平台的可移植性等优势但是其可灵活配置的特 性也决定了其面向整车系统时配置参数具有差异化或在基础软件代码开发移植阶段存在不满足整车通信 需求的情况。例如某一车型平台或某一架构下各个控制器的基础软件在开发阶段的通信参数设置、信号交互、总线通信故障处理逻辑等与期望不一致的情况。这些差异化的内容往往会导致汽车总线无法通信、功能无法正常执行等问题因此网络通信测试的验证务必在单个控制器开发完成后进行以保证装车后的通信质量。
2. 验证方法
CAN/LIN 网络通信的验证主要针对通信配置参数、总线容错处理及恢复逻辑、报文交互等内容进行验 证因此测试设计方法主要为需求分析方法、边界值分析、等价类法。为实现网络通信验证需视不同的需求搭建测试环境。网络通信验证的测试环境可分为基于示波器的测试、基于总线分析仪的测试、基于总线干扰仪的测试三类。
3. 验证范围
依据 OSI 模型为保证基础软件开发严格按照需求进行需针对通信需求内容进行覆盖。网络通信的测试验证主要包含数据链路层、交互层、应用层测试。数据链路层主要针对采样点、波特率、帧类型兼容等层面进行基础软件通信配置参数的验证交互层主要针对车辆的报文交互是否严格按照通信定义开发进行验证应用层主要针对总线故障及 bus off 等网络容错处理恢复策略进行验证。此外如有功能或信息安全的应用需基于交互层进行算法逻辑的验证。如下表格为网络通信基础验证的部分用例详细测试用例中的每条用例应包含有唯一的编号、需明确需求点、测试目的、测试环境、测试步骤、评价标准等内容。
CAN验证范围 图片来源中国汽车基础软件发展白皮书3.0
LIN验证范围 图片来源中国汽车基础软件发展白皮书3.0
ETH验证范围 图片来源中国汽车基础软件发展白皮书3.0
2.3 图像失效测试验证
在智能座舱中在仪表屏上显示关键告警图标(称为Telltale)是涉及到功能安全的关键功能。自动化测试验证平台如何识别并判断发生了Telltale安全失效呢采用图像失效验证是一个可行的测试方法。
通过自动化测试验证图像失效的一种方案为
定义图像识别规则根据仪表屏显示区域的设计要求定义图像识别的规则和标准主要是telltale图标在仪表屏上显示的坐标显示区域尺寸等数据。该规则也称为ROI(Region of Interest)。采集ROI图像在软件设计和开发过程中采集标准的图像样本包括正常情况下的图像以及异常情况下的图像用于后续的图像比对和验证。台架软件通过通信网络下发截取ROI区域的指令。被测的车机软件接收到指令后通过截屏指令抓取ROI区域的图像显示数据一般为RGB或者YUV格式。图像识别与对比编写自动化测试脚本台架软件首先从车机软件获取截取的ROI图像数据。然后它使用图像识别算法对抓取的ROI截图与预先存储的标准ROI图像进行比对判断图像是否符合设计要求。执行测试脚本执行自动化测试脚本模拟用户在智能座舱中的操作并在执行过程中对界面进行截图将截图与标准图像进行比对。如果比对失败则判断测试fail图像失效。分析与报告根据比对结果分析图像失效的原因和影响范围并生成测试报告。根据测试报告的结果修复软件中的问题并进行再次测试直到达到预期的测试结果。
通过自动化测试验证图像失效的关键在于定义准确的图像识别规则、采集全面的ROI图像、编写稳定可靠的自动化测试脚本、执行测试并正确地分析测试结果。