在无硬件、无协议栈的情况下,Classic AUTOSAR SWCs软件系统如何测试?

   2022-04-20 盖世汽车资讯0
核心提示:在Classic AUTOSAR SWCs开发、测试时,会存在依赖硬件的才能开展相关工作的问题,那么如果在没有硬件也不关心底层的情况下,基本上可以认为就和IT工程师一样,可以在任何地区做相应的开发和相应的测试,以及相应的交付工作。在疫情、跨

在Classic AUTOSAR SWCs开发、测试时,会存在依赖硬件的才能开展相关工作的问题,那么如果在没有硬件也不关心底层的情况下,基本上可以认为就和IT工程师一样,可以在任何地区做相应的开发和相应的测试,以及相应的交付工作。在疫情、跨团队/地区和跨车厂/供应商之间将会更加敏捷的实现开发迭代。

软件定义汽车,都在聚焦开发的话题,但永远不能忽视其中大量工作是与测试相关。AUTOSAR里面提供了复杂性,但是也提供了很多便捷的接口在里面,因为它是分层的架构体系,这就可以使得在开发的时候能够利用相应的技术,比如需要相应的RTE和底层的BSW,可以采用虚拟的手段,把相应的底层虚拟出来,保证不同的SWCs逻辑,是可以进行相应访问,以及在访问的时候,它的状态也是可以控制的,以及内部的port口,包括Service的一些port口和用户自定义变量,也需要做监控和相应的处理。

在无硬件、无协议栈的情况下,Classic AUTOSAR SWCs软件系统如何测试?

当开发工程师在SWC进行集成时,也需要实现相应的测试应用。随着软件定义汽车的发展,有一部分SWC的软件模块被OEM要求整合到HPC里面去,它可能会在MCU端进行相应的运行部署。这个时候本身就是面临怎么只是去测试相应的软件以及做相应的开发工作,以及到后期的时候,在OEM系统角度而言,肯定会面临软硬结合的应用场景,VECTOR在工具层面提供相应的支撑工具。

Classic AUTOSAR SWC在Windows或Linux中部署测试

从若干SWCs测试开始,到进行虚拟ECU的测试,最后到系统测试,都需要在出现Fail时进行回归,相对于基于硬件板子的测试来说,基于软件的测试会更加灵活一些,与之对应的新的IDE环境也需要满足相应的工作。

具体来说针对今天主题需解决相应的Classic AUTOSAR的SWCs虚拟化集成,VECTOR为此提供的主要工具是vVIRTUALtarget,在这个vVIRTUALtarget里可以加载相应的SWCs的描述文件,以及各个SWCs所对应的代码,通过Visual Studio进行相应的编译和生成,生成虚拟的SWCs或虚拟的ECU,会加载在CANoe平台里面做相应的执行。那么就可以通过这样的手段实现相应的集成和编译。

在无硬件、无协议栈的情况下,Classic AUTOSAR SWCs软件系统如何测试?

在ECU运行的CANoe环境里面,直接基于Visual Studio增加断点做相应的SWCs开发调试。这种方案会明显看到过往开发工程师桌子上肯定会有电源、调试器、板子,现在对应这些东西都是不需要的,因为电脑上只要装软件工具,所有的那些开发调适都可以在电脑上通过相应的软件工具进行实现。

在集成实现相应的调试,后面就要进行相应的测试工作,测试时CANoe提供了相应的功能,能够通过CANoe满足手动交互式的测试应有需求。当然在工具层面也能通过vTESTstudio实现自动化测试。在更加系统的层面实现完整的虚拟ECU,不管是通过仿真的方式还是虚拟化的方式,都可实现了对应的封装。这样一个虚拟的ECU或者和SWCs,它本身是一个“黑盒”的dll,在测试完之后就可以Deliver,Deliver给相应的OEM端或者是别的一些客户,实际项目也遇到有联合开发的情况,也是完全可以Deliver给客户拿去做相应的系统验证工作。

目前在敏捷化时代,开发和测试可以同时进行,需要进行持续集成、持续测试工作。开发和测试两端都是基于客户的需求,针对需求的条目,只要SWC软件开发好一个,能够使用vVIRTUALtarget虚拟化出来,可以在相应的测试环境中通过部署和调度,实现相应的自动化。

一旦谈到持续集成、持续测试,不得不说相关环境是基于服务器系统里面,通常会是Linux系统。在Linux系统里面,Vector同样一套工具体系(比如CANoe4SW Server Edition)也是能够把Classic AUTOSAR SWCs模块部署到Linux里面做相应的测试,或者在Docker环境里面做相应的测试,是完全可行的。因为这样对于后期打通SoC端软件的虚拟集成和测试等等,相应来说是一个更加完整的系统。

在无硬件、无协议栈的情况下,Classic AUTOSAR SWCs软件系统如何测试?
 

SiL测试的重要性   

从单元测试到整车测试都是为了验证系统中的软件无故障运行。无论从软件最开始的静态测试还是到后期的HiL测试,都是过往常规的测试手段。在整个流程中需要增强一个概念:建立系统化的SiL能力

传统SiL指“背靠背”,现在我们讨论的是SiL是更广泛的,指在虚拟环境里面做相应的测试工作,那可能是单个的软件模块,也可能集成系统。当然在整个环境里面,作为工具厂商,在每一环节都是能够提供相应的工具。其中在工具这一块,很多工具是大家已经“耳熟能详”的。不被大家熟悉的就是今天话题的主角,就是这里面看到的CANoe4SW、CANoe4SW Server Edition、vVIRTUALtarget等。这些产品都是为了面向SiL市场,专门定制化开发的一些产品,而这些产品目前已经是发布多年的成熟产品。

在无硬件、无协议栈的情况下,Classic AUTOSAR SWCs软件系统如何测试?

有必要针对SIL展开做一个补充说明,大家可以看到在早期软件开发时都是单个或若干函数构成,随着迭代开发才会有整个软件系统,一旦有一个软件模块能够运行起来,就可以把它称之为一个SIL,技术层面就可以实现相应的Deliver,以及开展相应的测试工作。随着HPC区域控制器以及ADAS的应用,包括敏捷,以及大环境下疫情的影响,SiL更应在公司层面开展陆续做相应的试点。

无自动化脚本即无敏捷,vTESTstudio可支持主流XiL平台

无论是SiL也好,单元测试也好,还是“黑盒”HiL也好,测试设计是永恒的话题。只有好的测试设计框架和自动化脚本才能保障CI/CT,如果公司里面没有自动化测试脚本的,基本就是“空谈”敏捷开发持续集成与测试,是没有办法实现快速的迭代和相应的回归验证。所以在这里面有一个很重要工作就是要做好测试设计。

在测试设计里面有很多理论的方法可参考,Vector提供非常智能化以及能够支持众多测试里面的工具vTESTstudio。具体来看,所有的测试都是从需求开始的,不管是单元测试还是代码的检查,不管集中部门还是分布式的部门,都需要建立“追溯性”来满足A-SPICE、ISO2626和ISO21434等流程要求。

无论是开发还是测试,都需要以需求进行相应的设计。所以在各个公司里面可能会遇到不同的TDM系统,都需要能够把相对Requirements的信息加载在相应的测试工具里面去。VECTOR已经把主流的ALM和TDM系统,全部以免费的插件的方式打通了对接,同时VECTOR也提供了开放的接口,使得用户能够自行开发,或者双方沟通定制实现,实行相应的开发,当vTESTstudio导入Requirements进行相应的设计,vTESTstudio可以暂时测试覆盖度。可以看到哪个Requirements是由那些Test case去覆盖它,这个信息是非常重要的。可以看到vTESTstudio对各类流程要求的基于需求的测试都是可以覆盖的。

在进行相应的HPC或者一些区域控制器时,遇到的问题就是代码非常复杂,在这种情况下做相应的单元测试、集成测试以及相应的系统测试时,回归测试将会遇到很大的问题是,当出现Fail时,怎么做相应的回归,是全部回归还是仅选中相关Fail的做回归。这两种方式都是效率不高的,也会存在一些问题。

在无硬件、无协议栈的情况下,Classic AUTOSAR SWCs软件系统如何测试?

可以看到每一部分代码都是有它相对应的测试运力做相应的覆盖,别的代码也是一样的。假设系统软件中一部分代码是有异常的,它所对应的关联测试率是红色所示的。通过映射关系会明显知道这部分Test case是覆盖了红色所标识的这部分代码。当其中一个Test case出现了相应的Fail,进行代码的更改,更改完代码之后是希望能够把它有关联的,这段代码所引起的关联的Test case,从单元测试到后面的HiL测试回归,VECTOR希望能够智能化的实现相应的筛选。

该如何实现?毫无疑问,要借助于该代码打桩及借助于Code Coverage技术来实现

在工具层面会提供相应的功能,VectorCAST能够给代码ECU打桩,之后CANoe相应的测试,每条测试执行完之后,CANoe都能够拿到相应的Cover信息。每个测试力以及相应的源代码都是与之对应的requirements是有关联的,所以把所有的Cover拿到之后会加载到VectorCAST里面,看到代码是什么样的关联关系,应该做相应的回归,整个系统可以实现相应的联动。当然也支持在HiL层面的自动化筛选实现回归。

倡导理论:测试建模

在测试里面也会同样提倡的理论就是测试建模,我们可以反思一个话题:凭什么研发开发逻辑的时候,是通过MATLAB/Simulink去建模的?为什么不是手写代码?难道测试不可以建模吗?毫无疑问在工具层面Vector能够提供相应的功能,方便大家做测试的时候也建立相应的测试模型。在测试模型里面,vTESTstudio支持状态机模型和序列图模型,这两种模型都是能够按照用户制定的相应规则和相应系统的设计,能够有效的生成相应的Test case。每种测试理论也一些差异,但是针对具体的Requirements点,针对这个Requirements,在设计的时候需要着重考虑,到底是由建模,还是通过表格,还是通过原始代码去写。

在无硬件、无协议栈的情况下,Classic AUTOSAR SWCs软件系统如何测试?

核心要考虑的因素是要看一下怎么样测的更全一些。另一个核心因素是考虑怎么样在不同项目或者不同阶段的复用性,并不是说全部的建模,也知道在开发那端,也一些算法逻辑就是手写的,所以在测试这端,提倡和推广大家以测试建模的方式开展,但仍然有大量工作还是会采用传统方式去做相应的支持。另外也会提倡大家在做测试设计使能够把参数和相应的脚本分开,在测试里常用的理论方法就是等价类、边界值等进行测试设计,与之对应的抽象设计就是分类树法。分类数的数据驱动型的架构,在工具层面也完全能做相应的支持,也提供了相应的编辑器,后面大家定义参数,去复制相应的测试,当然了同样的工具理念Vector也集成到集成测试工具VectorCAST中,相关参数可实现复用。

数据驱动里,除了离散的参数还有大量的连续参数,在工具里会提供连续曲线的参数做相应的激励。除了传统的单元测试和集中测试,很多时候是没有去做的,但现在如果你做这些,你的ECU或者其他的是用起来的,那我就可以增加连续性,连续性曲线给ECU或者软件做输入,就可以连续的去做观测和判断,在工具层面vTESTstudio也提供了相应的功能。

另外一个测试理论就是分层的“关键字”法,在行业内有时候会看到说关键字(Keyword)驱动的架构。在测试工具里,vTESTstudio同样是能支持封层的设计,所需要的关键字,vTESTstudio在工具底层都是能够支持的,而且是有相应的封装。

在无硬件、无协议栈的情况下,Classic AUTOSAR SWCs软件系统如何测试?

最后是在vTESTstudio里能够支持Python,可直接在工具里实现相应的Python开发。当然vTESTstudio可支持主流XiL平台的集成。

《智能网联汽车产业分析月刊》

本文来源:盖世汽车资讯

 
反对 0举报 0 评论 0
 

免责声明:本文仅代表作者个人观点,与爱美生活网(本网)无关。其原创性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容、文字的真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
    本网站有部分内容均转载自其它媒体,转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责,若因作品内容、知识产权、版权和其他问题,请及时提供相关证明等材料并与我们留言联系,本网站将在规定时间内给予删除等相关处理.

  • 怎么办泰国旅游签证 泰国签证办理步骤
    怎么办泰国旅游签证 泰国签证办理步骤
    想要办理泰国旅游签证吗?不用担心!本文将告诉你如何一步步办理泰国旅游签证。无论你是选择申请普通旅游签证还是落地签证,本文都会提供必要的文件准备和办理流程。只需耐心阅读,你就能轻松了解如何获得你梦寐以求的泰国旅游签证了!泰国旅游签证办理步骤如
  • 没钱怎么去旅游 穷游的方法分享
    没钱怎么去旅游 穷游的方法分享
    没有足够的资金并不能成为阻碍我们去旅行的理由。通过制定详细的预算计划、积极寻找优惠、选择经济实惠的住宿和交通方式,以及与其他旅行者分享资源,我们仍然可以在有限的预算下享受到旅行的乐趣和益处。旅游无疑是一种享受生活、放松身心、开阔眼界的方式,
  • 怎么去印度旅游 印度旅游简介
    怎么去印度旅游 印度旅游简介
    前往印度旅行可以是一个令人难以忘怀的经历。计划和准备足够的时间,尽可能地了解当地的文化和习俗,并享受这个神奇而多样化的国家给你带来的独特体验。如果你计划去印度旅游,以下是一些建议来帮助你顺利安排和执行你的旅行计划。1. 确定行程和目的地:印
  • 怎么去迪拜旅游 迪拜旅行简介奢华之旅放松身心
    怎么去迪拜旅游 迪拜旅行简介奢华之旅放松身心
    迪拜是一个令人难以置信的旅游目的地,拥有现代化的建筑、丰富多样的美食和独特的文化体验。通过提前了解旅游时间、办理签证、选择合适的住宿、参观主要景点、购物和尝试当地的美食以及参与各种活动,您可以充分体验到迪拜的魅力和魔力。迪拜是一个令人兴奋的
  • 北京一天怎么玩 北京一天旅游攻略
    北京一天怎么玩 北京一天旅游攻略
    一直以来,北京作为我国的首都,都是旅游的热门目的地之一。这座城市拥有丰富的历史文化和景点,一天的时间对于游客来说或许不够,但我们可以规划出一条较为完整的行程,体验北京的历史古迹、名胜景点和美食文化。一天的行程:早晨:早上7点,可以选择前往北
  • 去千岛湖怎么玩 千岛湖旅游观光攻略
    去千岛湖怎么玩 千岛湖旅游观光攻略
    千岛湖是中国著名的旅游胜地之一,拥有众多的岛屿和美丽的湖景。在这里,你可以参观风景秀丽的岛屿,体验丰富多样的水上活动,品尝当地美食,还可以感受大自然带来的宁静和放松。以下是一些在千岛湖有趣的活动和景点。1. 参观岛屿:千岛湖有1078个岛屿
  • 重庆一天怎么玩 重庆一日游攻略
    重庆一天怎么玩 重庆一日游攻略
    重庆作为中国西南地区最大的城市之一,拥有丰富的自然风光和历史文化遗址。在一天的时间里,你可以领略到这座城市的独特魅力。以下是一份关于重庆一日游的建议,让你在短暂的停留中留下深刻的印象。一、早餐:品尝重庆特色美食早上来到重庆,必不可少的是品尝
  • 珠海长隆怎么玩 珠海长隆游玩攻略
    珠海长隆怎么玩 珠海长隆游玩攻略
    珠海长隆是中国最大的主题乐园,拥有丰富多样的游乐设施,包括动物园、水上乐园、海洋馆等,让游客能够尽情享受娱乐和探索的乐趣。本文将为你介绍珠海长隆的各个主要项目,让你在游玩时能够更加充分地体验和利用这里的各种设施。珠海长隆位于广东珠海市,是中
  • 到昆明怎么玩 昆明旅游攻略
    到昆明怎么玩 昆明旅游攻略
    昆明是中国云南省的省会,以其气候宜人、自然风景优美而闻名。无论是独具特色的民俗文化,还是壮丽的自然景观,都使得昆明成为了一个独一无二的旅游目的地。下面将为您介绍在昆明旅行时的几个不容错过的地方。一、石林风景区石林风景区是昆明旅游的必去之处。
  • 桂林怎么玩 桂林游玩参考攻略
    桂林怎么玩 桂林游玩参考攻略
    桂林,素有“山水甲天下”的美誉,位于中国广西壮族自治区,是一个以山水风光闻名的旅游胜地。在桂林旅游,你可以领略到仙境般的风景,体验壮族文化,并品尝丰富的美食。1. 桂林漓江:桂林最著名的景点之一,被誉为“壮美的画卷”。你可以选择乘坐船只游览
点击排行