当前位置:首页 > 经济 > 正文

王英蕾:ECU的性能压力测试方案及测试指南文件发布

  • 经济
  • 2024-11-11
  • 2
  • 更新:2024-11-11 13:53:02

王英蕾:ECU的性能压力测试方案及测试指南文件发布  第1张

  11月7日-8日,2024中国汽车软件大会在上海嘉定召开。AUTOSEMO测试工作组负责人、测试中心经理王英蕾发表演讲。

  以下内容为现场发言实录:

  各位老师各位同仁大家下午好!我是来自经纬恒润的王英蕾,今天主要是跟大家分享一下ECU性能压力测试方案及测试指南文件的发布。

  今天的分享主要分为3部分,第一部分是性能压力测试的需求概述,第二部分是性能压力测试的相关指标及实施流程,第三部分是汽车软件测试指南文件的发布。

  首先,先看第一部分,也就是需求概述,我们在做汽车软件测试的过程中,性能压力的需求其实来源于多个方向,这边举了两个比较典型的需求方向,第一,是大家比较熟悉功能安全,在26262当中提出了很多与性能压力测试相关的要求,比如在架构设计中提出仿真时间、调度分析要求,映射到性能压力测试,就是相应的执行时间分析与调度时间分析,比如在测试执行时间时,就需要考虑测试它的平均值、最大值、最小值以及最差工况下的执行时间。同理调度时间测试也需要相似的内容。除了在架构上的要求之外,单元验证、软件集成方向也提出关于资源占用,故障注入的要求。在性能压力测试阶段,对于资源占用相关的测试可以考虑关注ram rom以及flash相关内存的分配与占用情况,同时也包括整个系统在运行时的CPU占用情况;那所谓故障注入,就是使用故障注入的测试方法模拟构造场景,达到压力测试目的。除了此之外,还有关于软硬件集成提出相应要求,此处便不一一赘述了。

  第二,除了来自于功能安全的要求之外,在整个软件开发过程中有很多需求,代码开发阶段,如果芯片选型不合适或者在芯片选型适配初始阶段,这个前提下,如果前期有一些性能压力测试指标输出给开发人员,能够让他们在最开始的时候能够更合理分配系统内存、设定任务周期,就可以让很多问题在前期被规避。在代码后期电子电气系统设计阶段,也有很多需要性能压力测试场景,比如通信资源抢占,比如报文周期不稳定等等,都需要性能压力测试输出相关的测试数据,为软件提升提供方向。

  第二章节是性能压力关键指标及具体实施流程,首先对于测试策略主要是分成了4个环节,第一,功能验证,主要根据现有的被测对象的功能,比如通信、诊断、操作系统等等,通过相关的功能构造出复杂的压力场景,在压力场景下看系统功能、系统之间交互是否正常。第二资源评估,主要是看系统在特定工况之下它所在的内存占用率、CPU负载率是否符合相关的阈值要求。第三,压力监测,去检测系统软件的鲁棒性、稳定性,针对某些故障与异常是否具备正向的反应。第四,机制保护,检验芯片安全特性是否健全,内存读写、处理逻辑等等是否合理。

  性能压力测试流程也可以分为静态测试和动态测试,静态测试可以利用一些工具,通过对已编译完成的二进制可执行文件进行分析,然后通过仿真方式模拟量化推导出堆栈用量,或者最差路径、最大负载下的负载率和执行时间。第二,动态跟踪,可以借助性能测试工具,也可以由测试人员自行搭建一些自动化测试体系,通过这样的测试体系,去模拟软件在实时环境下进行调度以及运行负荷测试。第三,压力监测,主要构建高频、长时间、高负载异常工况场景,在这样的场景之下,去看整个系统的应变能力。第四,软件优化,通过前三个环节所测试出的数据,给到开发、产品,能够做一些优化、调整的方向和指示。

  性能压力测试关键指标有很多,在此处简单列举了关于性能和压力指标的一部分。对于性能,一个方向是对内存的情况的测试,二是关于时间指标的测试,内存需要关注堆栈,比如在最差的工况之下堆栈用量,验证空间分配是否合理,以及系统ram和rom的内存占用率及负载分析、特定执行场景下的CPU负载等等内容,都是需要在测试中关注到的内容。第二,时间方面,需要分析系统在正常工况下及最差工况下的执行时间和调度时间,这些都是在性能上的重点关注内容。

  压力测试指标,压力测试主要是根据系统被测的相关功能去构造复杂场景,通过这样的方式去模拟特别的场景,看整个系统的鲁棒性。比如bootloader,在测试时对于正常的刷写流程需要构建超过24小时,48小时等长时间的刷写,或者是一些异常指令或者异常刷写的故障注入,那对于CAN/LIN/ETH等相关总线,也会构造一些bus off、休眠唤醒等故障注入,或者长时间不间断等异常测试,或者监控一些高负载、异常负载、突发负载的情况,看系统是否具备良好的处理能力。

  接下来看一下性能压力测试的自动化测试方案,首先静态测试,通过原码编译成二进制文件,再和工具进行适配,实现工具对整个代码中进行的任务、中断以及相关接口的堆栈用量、相关时间分析,并且通过工具自动分析数据流,看代码之间的运行逻辑,在代码开发初期,让开发工程师更好了解到整个系统的流转情况。动态测试也是第一方面可以借助相关工具,也可以由测试人员自行搭建一套性能测试系统,这样的一个系统可以实时关注或者监控系统运行情况,比如操作系统中的任务、中断,或者想要关注的接口,并且可以图形化显示调度行为、负载占比,能够更真实更准确还原系统运行情况。

  接下来是第三部分,也是今天的重点内容汽车软件测试指南文件的发布。这个文件是AUTOSEMO测试工作组推出的指南文件,测试工作组在2023年4月成立,一年半的时间,目前已经有23家组织或单位参与其中,在去年推出了测试行业摸底的测试白皮书,今年主要是推出测试指南文件,希望为后续测试流程和规范起到指示作用。

  其实刚才不管是前两章提到的性能压力测试,或者前面几位老师提到的一些关于开发中的困难或者挑战,亦或者不管是软件定义汽车,还是AI定义汽车,开发要做一些相应动作或者升级,测试同样也需要做好这方面的工作。对于测试而言,在工作中也面临诸多挑战,比如代码架构的复杂性,代码产品的敏捷化开发,以及现在信息安全对软件的要求等等,基于这些要求和挑战,AUTOSEMO测试工作组希望集结行业力量能够相应规范,比如推出基于通用基础软件的测试规范,基于专项测试的测试规范,通过这些规范的内容可以标准化在测试工作中的相应流程及行为。

  今年主要推出汽车软件测试指南文件,他的内容主要是测试通用流程的标准化介绍。希望它的推出,第一希望为后续测试工作组做规范性文档提供总体指示,希望后续规范文件按照测试指南的要求流程进行编写,形成统一的支持文档。第二也希望为后续想要了解测试工作的同事更方便快捷地了解测试工作。

  测试指南文件一共4个部分,6个章节,前3个部分主要范围、术语定义等等,第四个章节主要简述测试过程中的要求,包含测试准备、测试实施阶段以及测试总结阶段的要求。

  第五部分主要是一些测试工具的介绍。第六部分关于测试人员的要求。

  我们重点看一下第四五章,第四章对测试过程进行了拆分,并详细进行了描述。比如将测试准备阶段分成测试计划、测试准则以及环境准备阶段,在测试准则阶段,在文档中详细说明测试准入条件,中止条件,启动条件,结束条件等等相关内容。比如将测试执行阶段分成需求解析、用例设计、测试执行等阶段,并在测试执行阶段详细描述了测试准备、测试执行、测试检查以及缺陷管理等不同的内容,希望通过这样的文档,不管想要了解测试的同事,还是后续编写规范的同事都可以更加清晰地了解到测试的相关流程。

  第五章主要介绍测试在使用过程中的一些工具,比如有总线监控工具,通过这样的一些工具,可以监控到需要关注的总线报文、信号、周期等相关数据。第二,白盒测试工具,主要进行比如功能安全要求的条件覆盖、语句覆盖、函数覆盖等内容。第三,性能测试,主要是能够进行前两章介绍的性能压力相关的测试工作。第四,安全测试工具,为了匹配安全测试的要求,像是21434里要求的模糊测试,渗透测试,漏洞扫描测试等测试内容。第五,测试管理工具,主要做测试过程中的管理,比如缺陷管理、用例管理,希望通过应用一些测试管理工作,能够让整个测试流程更加流畅。

  测试指南文件是在2024年6月开始提出投入编写,到2024年11月编写完成,正式定版,如果大家对这个文件比较感兴趣,可以通过AUTOSEMO测试工作组对这个文件进行查看,如果有意见可以给工作组进行反馈。

  关于测试工作组后续工作展望,其实刚才已经提到,目前整个的测试其实缺少一些标准规范性文档或者说明,如何证明测试的完备性,如何规范测试的全面性,各个厂商、公司都有自己的标准,测试工作组希望借助AUTOSEMO的平台,整合整个行业的力量推出汽车测试行业自己的测试标准,希望大家多多加入我们,也希望大家多提宝贵意见,谢谢大家!

  (注:本文根据现场速记整理,未经演讲嘉宾审阅)