首页 > 智能网

基于模型的测试(壹)

来源:智能网
时间:2020-08-23 18:28:46
热度:80

基于模型的测试(壹)趁着还没“发霉”,把以前的知识在总结总结。本篇是基于MBD测试系列文章的第一篇,也不知道能写多少,且写且看吧。01概述在基于模型(MBD)开发的软件 中经常会涉

趁着还没“发霉”,把以前的知识在总结总结。本篇是基于MBD测试系列文章的第一篇,也不知道能写多少,且写且看吧。

01概述

在基于模型(MBD)开发的软件 中经常会涉及到MIL/SIL/PIL和HIL测试。

我们先来熟悉下以上几个术语的定义:

MIL- Model In Loop:验证控制算法模型是否满足设计功能需求;

SIL- Software InLoop:在PC上验证代码行为是否与模型一致;

PIL- ProcessorIn Loop:在目标处理器上验证代码实现的行为是否与模型一致;

HIL- Hardware InLoop:在整车或系统模拟外设上验证代码与控制器是否满足设计需求。

MIL就是对软件模型在模型的开发环境下(如Simulink)进行仿真,通过输入一系列的测试用例,验证模型是否满足了设计的功能需求。除此之外还需要做模型覆盖率度量:

ConditionCoverage(条件覆盖)

DecisionCoverage(判定覆盖)

Switch-caseCoverage(分支覆盖)

MIL测试结构图如下图所示:

1- 针对范围:单元测试与集成测试;功能模块和集成模块;2- 功能:验证算法模型是否满足设计的功能需求。

02MIL 测试过程

MIL测试除建立控制器模型外,还需建立被控对象模型,将控制器和被控对象连接起来进行闭环测试。但是在不少子模块中,例如输出为开关量或者在输入确定时输出是固定值,无需和受控对象一起组成闭环系统进行测试,而集成的系统则需要受控对象。因此,将 MIL测试分成两部分:带受控对象的MIL测试和不带受控对象的MIL测试。

1- 不带受控对象的MIL测试:不带受控对象的MIL测试,设计人员可以很方便的通过设定输入并给出期望的输出,测试时将模型输入设定的输入值,观测模型的输出值是否和期望值保持一致,判定模型是否有效。具体测试过程如下:设计测试用例设计功能模型的测试用例。测试用例设计时应遵循以下原则:1)- 确定输入和输出,并确定其取值范围。2)- 按照边界值和其左右值,中间值的方式进行输入值的确定,根据确定的输入值,给出期望输出。3)- 包含测试环境描述和测试步骤。4)- 包含执行结果。5)- 包含判定指标和判定结果。建立测试环境将搭好的功能模块模型建立输入、输出环境,设定模块的参数值。执行测试将设定的输入值输入模型,记录模型执行结果。测试结果判定结合判定标准,将执行结果和期望结果进行对比,满足判定标准则认为通过,不满足则未通过。根据测试结果,形成测试报告。输入输出保存保存MIL在测试过程中的输入和输出值,用于后续的SIL、PIL的测试验证。2- 不带受控对象的MIL测试:带受控对象的MIL测试,一般为子功能模型集成后的模型,实现具体的需求功能。直接受控对象为电机模型,联合仿真(如下图所示),在给定输入条件的情况下,监控输出信号,判定输出结果的正确性。

测试系统模型在整车环境下的输出特性时,需要建立整车的模型,因整车模型的特殊性,一般从OEM或者整车模型软件(CarSim,CarMaker等)中获取。

带受控对象的MIL测试流程和不带受控对象的MIL测试流程基本保持一致。设计测试用例设计功能模型的测试用例。测试用例设计时应遵循以下原则:1)确定输入和运行时间参数,确定输出范围。2)包含测试环境描述和测试步骤。3)包含执行结果。4)包含判定指标和判定结果。建立测试环境将搭好的功能模块模型建立输入、输出环境,设定模块的参数值。执行测试将设定的输入值和时间输入模型,记录模型执行结果。测试结果判定结合判定标准,将执行结果和期望结果进行对比,满足判定标准则认为通过,不满足则未通过。根据测试结果,形成测试报告。

03总结

MIL测试主要是验证模型功能的正确性,是否满足设计的功能需求。只有保证了建模的正确性,才能保证在此基础上生成的代码的正确。通过MIL测试,指定输入和期望结果,将仿真结果和期望结果进行比对,根据判定标准验证模型是否正确。