车载测试用例编辑执行闭环的资产复用与受控执行方法及系统与流程

摘要: 本发明属于计算机软件测试,尤其涉及车载测试用例编辑执行闭环的资产复用与受控执行方法及系统。背景技术:1、在车载总线硬件在环(hil)台架测试与电子控制单元(ec...
车载测试用例编辑执行闭环的资产复用与受控执行方法及系统与流程

本发明属于计算机软件测试,尤其涉及车载测试用例编辑执行闭环的资产复用与受控执行方法及系统。

背景技术:

1、在车载总线硬件在环(hil)台架测试与电子控制单元(ecu)自动化测试领域,测试用例的编辑、执行与管理是保障车载软件质量的核心环节。随着汽车电子电气架构日趋复杂,ecu 数量激增,车载 can 总线承载的信号交互量呈指数级增长,这对测试系统的效率、可靠性与资产复用能力提出了前所未有的要求。

2、在现有技术方案中,can 总线测试软件主要采用测试编辑模块与测试执行模块分离设计的架构模式。以典型的商用 can 测试工具及自研单功能测试程序为例,其编辑端通常基于可视化表格、图形界面构建测试用例,生成的编辑文件采用私有格式存储;而执行端则依赖专属脚本文件或编译后的二进制文件进行自动化测试。这种设计与实现方式在技术发展的早期阶段确能有效满足基础测试需求,但随着测试任务规模的持续扩大以及测试场景复杂度的不断提升,其在原理层面所固有的结构性缺陷逐渐显现,成为制约测试效率与系统可靠性的关键瓶颈。

3、首先,测试资产与底层配置之间缺乏统一的数据模型关联,导致资产在跨环节流转过程中产生显著的格式转换损耗。编辑资产与执行资产采用不同的序列化格式,两者之间不存在统一的解析逻辑,每次自动化测试均需经历“编辑文件导出、脚本转换、执行程序导入”的中转流程,该过程不可避免地造成参数丢失、信号绑定关系断裂、自定义校验逻辑缺失以及业务模板损毁等系统性风险。同时,总线配置信息与测试用例采用独立存储机制,同一车型、同一台架的总线配置信息需在多个测试工程中重复录入,既降低了配置一致性,又严重制约了测试资产的跨项目复用能力。

4、其次,在测试执行管控层面,现有技术方案未设置全局唯一的运行状态仲裁控制点,导致测试行为缺乏有效的准入约束。硬件驱动、总线接口、脚本解释器、ecu 仿真程序、测试用例执行器各自独立维护运行状态标识,各模块可自主发起总线报文发送、系统变量修改、硬件启停操作,进而产生大量非法执行场景:系统处于离线回放状态时脚本仍可下发硬件报文指令,硬件连接断开后测试用例仍持续修改变量,台架停止运行后自动化程序仍继续执行测试步骤。

5、再次,在进程架构层面,多数商用测试软件将测试脚本解释器、ecu 仿真逻辑与主程序 ui、硬件驱动置于同一进程内运行,导致故障隔离能力严重不足。一旦测试脚本存在死循环、内存溢出、非法内存访问等异常状况,将直接引发主程序与总线硬件驱动的同步崩溃,造成台架硬件断连、正在采集的总线数据全部丢失等严重后果。

6、此外,在数据观测层面,现有工具中硬件实时采集、离线文件回放、ecu 仿真输出、测试脚本动作分别对应独立的数据分发通道,trace 报文窗口、曲线显示模块、日志记录模块、测试报告生成模块各自订阅独立的数据源。这种多套数据处理、缓存、查询逻辑的并行存在模式导致代码冗余度极高,且各模块数据缓存相互独立、互不兼容。

7、最后,在编辑与执行的协同层面,现有工具的测试编辑程序与执行程序之间缺乏标准化的进程间交互通道,批量自动化测试过程中编辑界面与执行进程相互阻塞、互为制约。当发生硬件断线、脚本异常、ecu 进程崩溃等故障时,测试进度、缓存数据将被直接清空,故障恢复后需从头重新加载全部测试用例、重新配置总线环境,已执行的测试步骤及其中间校验结果无法复用,导致大批量整车自动化测试的总体耗时大幅增加,测试效率与资源利用率显著降低。

8、因此,如何在车载测试平台中构建统一、标准化的测试资产建模与存储机制,实现资产的无损耗加载与跨场景复用;如何建立全局唯一的运行状态仲裁控制点,对测试执行行为实施有效的准入校验与请求路由管控;如何通过进程隔离与受控请求封装技术,实现测试逻辑与主程序的安全隔离;如何构建统一的事件驱动式数据流通道,实现测试校验时序与真实总线数据时序的对齐;以及如何在故障发生时实现测试资产与执行进度的可恢复复用,已成为本领域技术人员当前面临的关键技术挑战和亟待解决的技术难题。

技术实现思路

1、本发明涉及车载总线硬件在环测试与电子控制单元自动化测试领域,具体公开了一种车载测试用例编辑执行闭环的资产复用与受控执行方法及系统,旨在解决现有技术中测试资产割裂、执行行为不可控、观测链路碎片化以及故障恢复困难等技术问题。

2、为实现上述发明目的,本发明采用如下技术方案:

3、第一方面,提供一种车载测试用例编辑执行闭环的资产复用与受控执行方法,由车载测试平台执行,该平台包括主宿主程序、运行控制引擎、数据流模块、测试用例编辑组件、执行器测试执行器、ipc进程隔离管理模块、标准化调用接口cansystemapi,该方法包括以下步骤:

4、在步骤s1中,进行统一标准化测试资产建模存储。具体而言,通过测试用例编辑组件构建标准化测试资产载体,生成包含.tsoproj测试工程文件、.tt用例表、参数配置文件、output dll自定义函数库的成套测试资产;同步读取项目配置、dbc网络矩阵、ecu拓扑、系统变量、硬件测量配置并封装为全局统一的网络容器配置模型;将成套测试资产与网络容器配置模型关联绑定存储,形成可跨场景复用的一体化测试资产池。

5、在步骤s2中,进行资产无损耗加载与复用。当平台启动时,由主宿主程序将网络容器配置模型加载至运行控制引擎;当触发测试执行指令时,执行器读取步骤s1输出的成套测试资产,通过组件载入器动态反射加载output dll自定义函数库,直接解析复用.tsoproj、.tt内的测试单元、测试步骤、校验逻辑、业务模板,无需经过中间格式转译;执行器复用网络容器中已加载的总线信号、系统变量、硬件通道资源,完成测试资产与底层车载总线配置的自动关联。

6、在步骤s3中,进行运行态统一事件主干构建。运行控制引擎作为唯一运行状态仲裁中心,维护包含starting、running、stopping、stopped、crashed五种状态的标准化状态机;将硬件can总线实时报文、离线asc回放数据、ecu交互指令、执行器下发的测试动作统一转换为标准化运行事件,推送至数据流模块;数据流模块基于测量配置创建多类型数据通道,对全部运行事件进行通道化分发,缓存写入sqlite数据库并生成统一dataprovider数据查询入口。

7、在步骤s4中,进行ipc进程隔离与受控请求封装。将测试用例编辑组件、执行器、ecu业务逻辑部署为独立子进程,通过mmf共享内存结合事件通知构建ipc双向通信通道;执行器的所有测试操作均通过cansystemapi封装为标准化ipc请求,该ipc请求包含报文发送、系统变量修改、面板控制、日志快照、总线复位操作类型;子进程仅具备请求发起权限,无直接操作硬件、运行控制引擎底层资源的权限。

8、在步骤s5中,进行执行准入校验与请求路由管控。主进程ipc资源管理单元接收步骤s4输出的ipc请求,首先调用运行控制引擎读取当前全局运行状态机;若状态机处于非运行状态,直接拦截丢弃ipc请求并终止测试动作;若状态机处于运行状态,对ipc请求进行参数合法性校验,校验通过后转发至运行控制引擎执行底层硬件、变量、总线操作。

9、在步骤s6中,进行事件驱动式受控测试断言执行。执行器基于步骤s3构建的数据流模块数据通道,订阅信号变更事件、状态变更事件的标准化运行事件;当数据流模块分发总线信号或系统变量变更事件时,触发执行器内置的等待、校验、断言回调逻辑;全部断言结果同步推送至数据流模块写入sqlite缓存,生成带时序关联的测试证据资产。

10、在步骤s7中,进行故障收敛与资产可恢复复用。实时监控运行控制引擎硬件链路、ecu子进程、执行器执行进程运行状态;若出现硬件断开、ecu进程崩溃、执行器执行异常,运行控制引擎触发级联安全停止指令,拦截全部新增ipc请求;保留步骤s1存储的成套测试资产、步骤s3缓存的sqlite测试证据、当前已执行测试步骤进度;故障解除后,执行器直接加载原有测试资产与进度断点,接续完成剩余测试执行。

11、根据本发明的优选实施方式,在步骤s1中,标准化测试资产载体分为编辑资产与执行资产,编辑资产由测试用例编辑组件可视化编辑生成,执行资产为编译输出的outputdll;编辑资产与执行资产共用同一套序列化解析逻辑,实现编辑、执行双向资产复用。通过这种双向复用机制,编辑环境下的测试用例可直接在执行环境中运行,无需进行格式转换或数据迁移,有效避免了资产在编辑端与执行端之间流转时产生的信息损耗。

12、根据本发明的优选实施方式,在步骤s3中,数据流模块输出的统一dataprovider数据查询入口同时供给trace时序窗口、graphics曲线展示、日志记录、测试报告生成、执行器断言读取模块复用,在线采集、离线回放场景共用同一套数据分发与缓存逻辑。该设计消除了原有技术方案中多套独立数据通道造成的代码冗余,确保 trace报文窗口、graphics曲线展示、日志记录、测试报告生成等模块所获取的原始数据具有统一的时序基准,为故障定位与测试证据追溯提供了可靠的数据基础。

13、根据本发明的优选实施方式,在步骤s4中,ipc通道区分通知报文与请求报文,notify用于运行控制引擎向子进程推送变量变更、总线报文接收状态,request用于子进程向主进程发起受控操作,双向通信采用独立mmf内存分区隔离不同ecu、测试执行器的数据。该设计通过内存分区隔离机制,确保了多ecu并行测试场景下各子进程数据互不干扰,同时通过通知报文与请求报文的分类管理,实现了主进程与子进程之间信息交互的规范化与可控化。

14、根据本发明的优选实施方式,在步骤s5中,运行控制引擎为全局唯一运行状态权威,所有ui面板、ecu子进程、执行器均无独立运行状态判断权限,全部测试动作的执行准入仅以运行控制引擎状态机校验结果为唯一判定依据。该设计从根本上消除了原有技术方案中各模块自主判断运行状态所引发的非法执行场景,通过建立统一的运行状态仲裁中心,确保了测试执行行为的合规性与可审计性。

15、根据本发明的优选实施方式,在步骤s6中,测试断言摒弃轮询检测机制,完全绑定数据流模块实时事件通道,测试校验时序与车载总线真实数据时序完全对齐,所有断言结果绑定原始总线事件存入sqlite缓存作为可复现测试证据资产。该设计彻底解决了原有技术方案中轮询检测机制所带来的校验时序失真问题,通过事件驱动的断言执行模式,确保了测试校验动作与真实总线报文在时序上的精确对应,显著提升了测试断言的准确性与可靠性。

16、根据本发明的优选实施方式,步骤s7的故障收敛处理包括三层分级管控机制:第一层为配置层,当资产加载失败时自动回滚网络容器配置模型;第二层为硬件与ecu异常层,当检测到硬件断开或ecu进程异常时,阻断全部测试动作并保存当前测试进度;第三层为ipc子进程崩溃层,当ipc子进程发生崩溃时,保留完整测试资产与缓存数据,支持断点续跑复用原有测试资产。该三层分级管控机制针对不同层次的故障类型提供了差异化的处理策略,确保了测试资产与执行进度的全面保护与高效恢复。

17、第二方面,提供一种车载测试用例编辑执行闭环的资产复用与受控执行系统,用于实现上述任一实施方式所述的方法,该系统包括:主宿主程序模块,用于加载工程配置、管理窗口布局、触发项目加载与测试执行指令;运行控制引擎,作为全局运行状态唯一仲裁中心,内置硬件管理器、ecumanager_ipc进程协调器、报文解码器、变量处理器,维护标准化运行状态机,统一处理总线报文、系统变量变更;数据流模块,与运行控制引擎对接构建统一事件主干,划分多类型数据通道,配置writermanager缓存写入sqlite数据库,输出统一dataprovider数据查询接口;测试用例编辑组件,用于可视化构建.tsoproj、.tt标准化测试资产,编译生成output dll自定义函数库;执行器测试执行器,独立子进程部署,用于加载解析成套测试资产,通过cansystemapi封装测试操作生成ipc请求;ipc进程隔离管理模块,包含ipc资源管理单元、ecu流程管理单元、隐藏ipc客户端代理,搭建mmf共享内存ipc通信通道,实现子进程请求接收、状态监控、异常捕获;标准化调用接口cansystemapi,封装统一测试操作门面,将执行器、ecu业务逻辑的操作指令转换为合规ipc请求。

18、主宿主程序模块作为整个车载测试平台的顶层入口,负责管理测试工程的生命周期。该模块在启动时首先加载项目配置文件,解析.tsoproj工程文件中定义的测试用例集合、参数配置、输出路径等关键信息,同时初始化主窗口的界面布局。主宿主程序维护与运行控制引擎的通信链路,当用户触发测试执行指令时,将执行命令转发至运行控制引擎进行运行状态机的状态转换调度。此外,主宿主程序还负责管理测试用例编辑组件与执行器的进程启动与终止,确保各子进程在主进程的生命周期内得到正确管理。

19、运行控制引擎是整个平台的核心控制枢纽,承担着全局运行状态仲裁、硬件资源管理、总线报文处理三项核心职能。该引擎内置的硬件管理器负责管理can总线硬件通道的分配与释放,维护硬件连接状态,当硬件发生断开异常时触发告警并执行安全停止流程;ecumanager_ipc进程协调器负责管理ecu仿真子进程的创建、监控与终止,通过标准化的ipc通道与各子进程进行状态同步和指令交互;报文解码器负责解析can总线原始报文,依据dbc网络矩阵将原始数据帧转换为具有物理意义的信号值;变量处理器负责维护系统变量的定义、赋值与查询,支持变量表达式运算与条件触发。这四个组件在运行控制引擎的统一调度下协同工作,共同支撑标准化状态机的状态转换逻辑。

20、数据流模块构建了连接运行控制引擎与各数据消费模块的统一事件主干。该模块从运行控制引擎接收所有类型的运行事件,包括硬件can总线实时报文、离线asc回放数据流、ecu仿真输出数据、系统变量变更事件、测试动作执行事件等,按照事件类型划分为多个独立的数据通道。writermanager组件负责将各通道的事件数据缓存写入sqlite数据库,生成带时序标识的持久化记录;统一dataprovider数据查询接口向上层模块提供标准化的数据查询api,支持按时间范围、信号名称、事件类型等条件的灵活检索。数据流模块的设计解决原有技术方案中多套独立数据通道并存造成的代码冗余与数据碎片化问题。

21、测试用例编辑组件提供了可视化的测试用例构建环境。该组件支持用户通过图形界面创建测试工程、定义测试用例、配置测试参数、编写自定义测试函数;测试用例以.tsoproj项目文件和.tt用例表的格式序列化存储;用户自定义的测试函数经过编译生成output dll文件,供执行阶段动态加载调用。测试用例编辑组件与主宿主程序集成运行在同一进程内,通过标准化的资产序列化管理器实现测试资产的持久化存储与版本管理。

22、执行器测试执行器作为独立子进程部署,负责加载和执行测试资产。该执行器在启动时接收主宿主程序传递的测试工程路径和执行参数,通过组件载入器组件动态加载测试工程文件和output dll文件,解析提取测试单元、测试步骤、校验逻辑、业务模板等执行要素;执行器内置的测试调度器按照预设的执行顺序依次调用测试步骤,通过标准化调用接口cansystemapi将测试动作封装为ipc请求发送至主进程;测试执行过程中的所有断言结果通过数据流模块的事件通道写入sqlite缓存,形成带时序关联的测试证据记录。

23、ipc进程隔离管理模块是实现进程安全隔离与受控通信的关键组件。该模块包含三个核心子组件:ipc资源管理单元负责接收和管理来自各子进程的ipc请求,根据当前运行状态机状态执行准入校验,将通过校验的请求转发至运行控制引擎执行底层操作;ecu流程管理单元负责监控ecu仿真子进程的运行状态,当检测到子进程异常退出时触发故障收敛流程;隐藏ipc客户端代理,运行在子进程内部,负责将子进程的发起的操作请求转换为符合规范的ipc请求格式。通过mmf共享内存技术,ipc进程隔离管理模块在主进程与各子进程之间构建了高效可靠的通信通道,同时通过内存分区隔离机制确保了多ecu并行测试场景下的数据安全。

24、标准化调用接口cansystemapi是面向执行器和ecu业务逻辑的统一操作门面。该接口封装了所有测试操作对应的ipc请求构建方法,包括报文发送接口、变量修改接口、面板控制接口、日志快照接口、总线复位接口等。业务逻辑层通过调用cansystemapi,无需关心底层ipc通信的实现细节,即可完成对硬件资源、总线通道、系统变量的受控操作。cansystemapi的设计实现了业务逻辑与底层通信的解耦,提升了平台的模块化程度与可维护性。

25、本发明通过上述技术方案的实施,能够产生以下技术效果:

26、首先,通过统一标准化测试资产建模存储步骤与资产无损耗加载复用步骤的协同配合,实现了编辑资产与执行资产的一体化管理。测试用例在编辑阶段生成的.tsoproj工程文件和.tt用例表无需经过任何格式转换即可被执行器直接加载执行,output dll自定义函数库通过动态反射机制在运行时加载调用,整个过程不存在中间格式转译环节,从而解决原有技术方案中因资产格式转换而导致的参数丢失、信号绑定关系断裂、自定义校验逻辑缺失等问题。

27、其次,通过运行态统一事件主干构建步骤与事件驱动式受控测试断言执行步骤的设计,建立了统一的数据流通道。数据流模块将硬件can总线实时报文、离线asc回放数据、ecu交互指令、测试动作事件统一转换为标准化运行事件,通过多类型数据通道进行分发处理,所有事件数据同步写入sqlite数据库并生成统一dataprovider数据查询入口。测试断言完全绑定数据流模块的实时事件通道,摒弃了传统的轮询检测机制,测试校验时序与车载总线真实数据时序完全对齐,解决原有技术方案中校验时序失真导致的误判与漏判问题。

28、再次,通过ipc进程隔离与受控请求封装步骤与执行准入校验与请求路由管控步骤的协同配合,实现了测试逻辑与主程序的安全隔离。测试用例编辑组件、执行器、ecu业务逻辑各自部署为独立子进程,所有测试操作均通过cansystemapi封装为标准化ipc请求,子进程仅具备请求发起权限而无直接操作硬件资源的权限。

29、最后,通过故障收敛与资产可恢复复用步骤的三层分级管控机制,实现了测试资产与执行进度的全面保护。当发生硬件断开、ecu进程崩溃、执行器执行异常等故障时,运行控制引擎触发级联安全停止指令,拦截全部新增ipc请求,保留已存储的成套测试资产、sqlite测试证据以及当前已执行测试步骤进度。故障解除后,执行器可直接加载原有测试资产与进度断点,接续完成剩余测试执行,无需从头重新加载全部测试用例,显著提升了批量整车自动化测试的执行效率。