当前位置:论文网 > 论文宝库 > 工程技术类 > 汽车论文 > 正文

基于模型测试汽车自动化控制系统对照研究

来源:UC论文网2020-10-02 11:05

摘要:

  摘要:在汽车行业,随着ECU增加的复杂性,需要创建便于早期测试以确保功能的模型,但对于如何编写这些测试以获得最大覆盖范围几乎没有指导。文章评估了原型CANoe+,它从软件开发人员和软件测试人员的角度出发,使用CANoe和(GraphWalker工具VsCANoe关于生成测试用例的覆盖范围最大化。实验通过使用Mann-Whitney-Wilcoxon统计检验时,CANoe+比单独使用顯着更有效,...

  摘要:在汽车行业,随着ECU增加的复杂性,需要创建便于早期测试以确保功能的模型,但对于如何编写这些测试以获得最大覆盖范围几乎没有指导。文章评估了原型CANoe+,它从软件开发人员和软件测试人员的角度出发,使用CANoe和(GraphWalker工具VsCANoe关于生成测试用例的覆盖范围最大化。实验通过使用Mann-Whitney-Wilcoxon统计检验时,CANoe+比单独使用顯着更有效,这些结果加强了现有证据,证明使用基于模型的测试技术(如CANoe+)在汽车系统中使用CANoe等测试方法的优越性。


  关键词:EUC;最大覆盖;CANoe;GraphWalker工具


  中图分类号:U467.1+3


  文献标识码:A


  文章编号:1001-5922(2020)08-0179-04


  1概述


  如今,随着电子控制单元(ElectronicControlUnits,ECU)中的软件变得越来越复杂,汽车行业对高效测试过程的需求日益增加。ECU是任何控制汽车中一个或多个电气系统或子系统的嵌入式系统的通用术语,行业内专家已经提出了基于自动化模型的软件测试,但是由于所构建系统的复杂性,生成自动化测试用例是很巨大的挑战[1]。考虑到这一点,创建一种方法使开发人员能够使用图论理论技术对期望系统的行为进行建模,并生成自动化测试用例实现系统功能测试的智能化。


  该系统主要2种工具(即CANoe[2]和GraphWalker[3])的优势生成和执行最大覆盖范围的测试用例,并成功应用于汽车行业。通过最大覆盖范围,可表示系统的功能由生成的测试用例执行多少来确定。这将通过使用模型来验证系统要求,并验证被测系统是否满足客户的需求;此外,本文所提出的假设是,从长远来看,这种方法将降低了回归测试的成本,开发人员的努力将被引导至探索性和负面测试。


  2基于模型测试介绍


  基于模型的测试是通过应用许多复杂的方法从与被测系统(SvsteinUnderTest,SUT)相关的模型生成测试的过程。基于模型的测试的基本思想是:并非通过手动创建测试用例,而是选择一种算法从模型中自动生成测试用例,这种方式减少了测试设计时间,并且允许通过使用不同的测试选择标准等来从同一模型生成各种测试套件。


  通过使用基于模型的测试工具,测试用例从被测软件的抽象模型中生成,测试用例被实现为可执行测试,然后使用所选算法自动执行测试用例。的每个测试输出和每个预期输出得到。基于模型的测试过程由几个主要步骤组成,即被测软件的建模,从模型生成抽象测试,抽象测试的具体化以使其可执行,针对待测软件(SUT)执行测试以分配判决并分析测试结果等,各步骤介绍如下。


  1)对待测试软件进行建模,根据图1中的实际模型编写待测试系统的抽象模型。抽象模型必须关注测试开发人员想要测试的功能,并将其他不需要测试的细节抽象出来。在描述模型之后,可以检查验证和验证哪种GraphWalker可以用于此效果。


  2)通过模型生成抽象测试。抽象测试是自动生成的,并且是被测软件的简单视图。因此,它们不包含有关如何直接执行测试用例的详细信息,但是它们是在执行测试之前要实现的方法的接口。然后测试开发人员必须决定测试选择标准,测试选择标准也决定了测试覆盖范围,以确定从模型中产生哪些测试,因为可以进行无数次可能的测试。这一步的输出是抽象测试,它是来自模型的操作序列。


  3)将抽象测试转换为可执行的具体测试。可通过使用将每个抽象测试转换为可执行测试脚本的转换工具来完成。这通过在抽象模型中未提及的低级SUT细节中添加抽象测试和具体软件之间的差距。


  4)针对被测系统执行具体测试。这可以在线完成,其中基于模型的测试工具直接连接到SUT,并在基于模型的测试工具生成测试用例作为计算机可读资产(以后可以白动运行)时动态或脱机地进行测试。


  5)分析测试执行结果和采取纠正措施。对于每个失败的测试,必须确定导致失败的故障。当测试失败时,可能是由于SUT中的错误,或者它可能是测试用例本身的错误。尽管如此,该测试模式能够获得有关模型正确性的反馈,因为故障可以与模型或可执行测试相关联。


  3CANoe+测试研究介绍


  CANoe+是解决手头挑战的解决方案,其集成了GraphWalker和CANoe等工具,通过接口的实施构建这两种工具之间的沟通桥梁。但是,除上述工具外,该解决方案还包括模型和测试模块,在使用CANoe+编写测试时涉及3个主要步骤,如图2所示的上下文框图所示[4-9]。


  3.1建模


  CANoe+涉及要测试的功能的建模,使用vEd桌面应用程序,将被测试系统的预期行为模型绘制为扩展的有限状态机。它将待测系统建模为状态和转换,模型以GraphML格式保存,保存的模型作为预期状态,转换和需要测试的值的输入提供给GraphWalker工具。


  3.2GraphWalker


  在如图2所示的上下文中,GraphWalker有3个主要角色:①检查模型以确保从起始状态到结束状态至少有一条直接路径;②生成一个界面,即提供的模型的抽象测试;③以非确定性顺序执行测试。Graph-Walker通过上面提到的通信桥连接到CANoe,为了进行此通信,GraphWalker生成的接口已实现,并使用“gwlnterface.jar”。使用了100%的边缘覆盖选择标准来覆盖所有边缘,从而导致覆盖状态,当执行Graph-Walker时,jar文件只有一个单独的任务,即向服务器发送GraphWalker请求,然后执行测试。Graph-Walker请求包含当前状态/转换及其值的快照,并且快照打包在一个“JSON”对象中。


  3.3CANoe


  CANoe包括一个模拟的CAN网络和一个保存网络值的数据库(通过服务器实现)。如图2中的上下文的模拟CAN网络就是被测系统,CANoe负责测试框架,它是用来测试被测系统的测试驱动程序。本文使用了一个.Net测试模块,它由CANoe提供的库来实现测试模块,测试模块是SUT适配器的实现,它应该与前一步中由GraphWalker生成的接口100%对应。测试模块使用“MBT.dll”,它是上述桥的另一端,并充当服务器以执行从GraphWalker收到的请求。


  3.4测试执行


  GraphWalker使用随机函数通过模型生成随机测试序列,以确保边缘覆盖,因此当它执行时,它会发送一个要执行的给定函数的请求。在发送请求时,它具有附加的期望值。当找到测试模块中要执行的功能时,将比较模型的期望值与CANoe数据库中的实际值。向GraphWalker发回一个确认信息,确认该功能已被执行,然后CANoe会生成一份测试报告,显示被称为测试用例的功能是否合格。


  要使用CANoe+,需要为被测系统建模,添加gwlnterface,将jar添加到GraphWalker并使用它提供的接口来实现可执行测试。在CANoe方面,将MBT.dll库添加到测试模块中,生成的接口被实现为.NET测试模块。通过Incase修改或更改需要在被测系统中进行,例如,如果模型中定义了一个变量,并且需要在测试中使用它,那么需要完成的所有工作就是在实现的java类中定义它生成的接口以及实现生成接口的.NET测试模块。采用这种方法,回归测试变得更容易,因为变更和功能易于并入,并且能够以低得多的成本轻松编写测试。


  4实验设计


  本文选择进行控制实验来评估原型,采用原型评估方式对不同模型的控制系统性能进行对比研究,原型评估是由使用CANoe+和CANoe工具完成的。参与者随机抽样进行两种治疗,以防止偏差影响结果。


  覆盖工具,即将CANoe+的使用与使用CANoe进行了比较。覆盖的依赖或响应变量有助于了解给定模型在创建的测试中覆盖了多少。覆盖范围在3个不同方面进行测量,即烟雾测试,功能测试和稳定性测试。本文主要专注于功能测试,这些测试取决于模型中边缘的100%覆盖率,以充分锻炼待测软件,从而确定有多少软件已被执行。


  定义如下假设:空假设:与使用CANoe相比,使用CANoe+工具生成的基于白动化模型的软件测试用例的覆盖率没有最大化;实验(可选)假设:与使用CANoe相比,使用CANoe+工具可以最大化基于自动化模型的软件测试用例的覆盖率;使用收集到的数据,假设能够提供一个是否拒绝还是拒绝零假设的基础。


  为了分析选择的分析模型,通过运行如下R函数,采用shapiro.test()来测试失败测试用例的样本分布的正态性,qqnorm()和qqline()从正态分布中计算分位数;R函数wilcoxon.test()在0.05的显着性水平下运行,替代性较小的意思是单侧测试,从替代假设使用替代值较少的方法,声明CANoe的平均覆蓋率小于CANoe+的平均覆盖率。对于每种情况,都会显示正态性测试,Mann-Whitney-Wilcoxon测试,Q-Q图和适用的工具的qqline,如下分别介绍了不同模型下的性能指标情况。


  1)无故障。CANoe和CANoe+中失败测试的所有值都是相同的,因此无法描述Shapirowilk正态性测试,如下图所示为CANoe和CANoe中失败测试用例的Q-Q曲线图,没有错误注入,检验结果如图3所示。


  2)一个故障。为Canoe和CANoe+工具运行Shap-irowilk正态性检验,证实的数据不正常。正是基于此,才根据Mann-Whitney-Wilcoxon非参数检验来检查的数据是否有统计学意义,检验结果如图4所示。


  3)两个故障。在运行shapirowilk测试时,CA-Noe+工具提供了非正常数据,通过分析了两组数据,运行Mann-Whitney-Wilcoxon非参数检验来确定是否存在统计学意义,如图5所示为CANoe和CANoe+中带有两次故障注入的失败测试案例的Q-Q图。


  5结语


  文章主要介绍了基于模型测试汽车白动控制系统的工具CANoe+的原型,该工具旨在通过新工具(CA-Noe+)与目前的CANoe工作方式进行比较,研究是否存在覆盖范围最大化的基于模型的测试用例。通过对每次运行、记录失败的测试用例的数量,并进行分析。收集的数据进行统计分析并以对照实验的形式报告。测试结果提供了足够的证据,证明在汽车系统中使用CANoe+与使用CANoe相比可以增加测试用例的覆盖范围。

核心期刊推荐