今天接着向大家讲解我们的动态测试工具Model Verifier,首先先简单了解一下何为模型的动态验证,其次再为大家说明我们的Model Verifier在动态验证中的作用。
1 模型动态验证
模型的动态验证是通过仿真验证对基于模型开发(MBD)的模型进行验证的过程。模型动态验证需经过将准备好的测试数据输入到模型中并验证是否输出了预期结果的过程。
根据对象和类型,模型动态验证技术可以分为模型在环(MIL),软件在环(SIL),处理器在环(PIL)和硬件在环(HIL)这四种。另外,验证模型与基于模型生成的源代码间一致性的Back-to-Back测试也是模型动态验证的重要部分。这样的模型动态验证的优点是能够通过在建模阶段检查模型的行为来提前检测出软件运行期间可能出现的错误。
Model Verifier是用于Simulink和TargetLink模型的动态验证自动化工具,这些模型支持MBD(基于模型的开发)。通过本文,我们将基于Model Verifier的主要功能解释模型动态验证所需的过程和技术。
2 模型动态验证步骤和Model Verifier
对于模型动态验证,需要诸如测试准备,测试执行和结果确认之类的过程,如以下<图1>所示。
<图1>模型动态验证程序
在测试准备阶段,需创建一个自动化测试框架以测试模型并为测试准备输入值和预期值。自动化测试框架负责向被测模型提供输入信号,并将输出值与预期输出值进行比较。在测试运行阶段,准备好的材料用于模拟测试工作配置。在确认测试结果步骤中,检查模型的输出是否与预期值一致。需要自动验证工具,若用户手动进行这些步骤并需直接管理自动化测试框架或测试结果,过程将十分繁琐,因此,进行测试时亟需一款自动化软件验证工具
Model Verifier将自动完成创建测试框架,执行仿真测试,自动比较输出值和期望值,测量模型覆盖率等执行模型验证所需的步骤。
由Model Verifier自动生成的测试任务的配置具有<图2>所示的结构。
<图2>自动生成的测试任务(Test Harness)的配置
SingalSubsystem生成用于测试的输入信号和预期值信号。此时,将考虑到测试对象模型其输入数据的结构(vector, bus)和类型来生成数据。TestSubsystem运行被测模型,而AssertSubsystem则将对比被测模型的输出与用户输入的预期值。
通常,用于模型仿真的数据是通过在Signal Builder模块中绘制信号波形来创建的。但是,使用Signal Builder模块自己的编辑器的界面创建材料并不容易。
Model Verifier提供了一个单独的信号编辑器,如<图3>所示,它使编写Signal Builder信号更加容易。信号编辑器提供的功能包括拖动鼠标以绘制信号,编辑表格以进行准确的值输入,复制,粘贴,导出和导入信号。
<图3>信号编辑器
Model Verifier通过MIL,SIL和Back-to-Back方法模拟测试自动化测试框架并收集结果。特别是在背对背方法中,测试自动化测试框架是依次按MIL和SIL方法执行的,比较两个方式下的输出值以确定它们是否一致。
通常,您可以通过将示波器模块附加到模型的输出上来分析模型,并检查结果,从而分析输出波形。Model Verifier不仅在图表中显示自动收集的输出值,而且还将与预期值相比的判断结果显示在图形中,如图4所示。
<图4> I / O图形窗口(视图)
我们使用覆盖率的概念来衡量测试的完整性。例如,测试Switch模块的分支是否满足true和false是很重要的,如果您测量模型的覆盖率,则可以检查是否执行了这些分支。
Model Verifier可测量分支,条件,MC / DC,子系统,Look-up table和状态覆盖范围。通过覆盖率可以轻松知晓模型的每个部分是否在正常运行中。如<图5>所示,每个coverage项目提供了和模型集成的功能,直观地向用户显示。
<图5>覆盖窗口(覆盖视图)
TargetLink块使用TargetLink属性自动生成源代码,并使用Simulink块属性执行MIL仿真。因此,TargetLink块必须匹配具有相同含义的Simulink和TargetLink属性,以匹配MIL和SIL仿真结果。由于TargetLink和Simulink属性是通过不同的接口设置的,因此这两个属性通常不匹配。
Model Verifier提供了一个功能,可以比较TargetLink和Simulink的属性,如<图6>所示,有助于在相同条件下对TargetLink模型进行MIL和SIL仿真。
<图6> TargetLink属性检查功能
3 模型验证程序支持环境
支持的操作系统:Windows XP / Vista / 7
需要安装MATLAB Simulink,Stateflow,嵌入式编码器(支持R2011b之后的版本)
支持TargetLink 3.3或更高版本