主要内容

使用 when 分解验证模型仿真

Test Assessment 模块中,您可以使用 when 分解序列来定义仿真条件,这些条件用于激活包含 verify 语句的步骤。在 when 分解序列中,步骤基于您定义的仿真条件而激活。有关 when 分解序列的详细信息,请参阅测试序列基础知识

verify 语句会计算逻辑表达式的值,并为每个时间步和整个仿真返回 passfailuntested 结果。如果任何时间步的结果为 fail,则会导致整个仿真的结果也为 fail。如果没有出现失败结果,则当任何时间步的结果为 pass 时,整个仿真的结果即为 pass。否则,总体结果为 untested。之后,如果在没有测试用例的情况下运行仿真,则可以在测试管理器或仿真数据检查器中查看测试结果。您可以只记录已测试的 verify 语句结果,选择仅显示 passfail 语句。有关编写 verify 语句的详细信息,请参阅 verify

在以下情况下,您可以在 when 分解中编写 verify 语句:

  • 您的模型未使用 Test Sequence 模块作为源,或者您的测试序列步骤与要验证的条件不符。在这种情况下,您可以使用信号条件激活每个 verify 语句。

  • 您的模型使用 Test Sequence 模块作为源。在这种情况下,您可以使用活动 Test Sequence 模块步骤在 Test Assessment 模块中激活 verify 语句。请参阅使用活动步进输出作为另一个模块的输入

使用信号条件激活 verify 语句

此示例说明,在测试框架中,如何在 Test Assessment 模块的 when 分解中使用 verify 语句来编写评估。

此模型实现了一个简单的信号跟踪器,该跟踪器以三种模式运行:关闭、慢和快。

要观测输出和误差信号,请对模型进行仿真。

打开测试框架

SimpleTracker 子系统包含一个带有 Test Assessment 模块的测试框架。

Test Assessment 模块通过在 when 分解中使用 verify 语句,评估 SimpleTracker 子系统的行为。

CheckError 步骤有一个 when 分解,该分解包含三个子步骤:

  • mode 的值为 0 时,OffMode 处于活动状态。

  • mode 的值为 1 时,SlowMode 处于活动状态。

  • mode 为所有其他值时,QuickMode 处于激活状态。

运行模型评估

要运行评估,请对测试框架进行仿真。打开仿真数据检查器以检查结果。

仅记录已测试的 verify 结果

要仅记录和显示 passfail 结果,请在框架选项卡中点击隐藏未经测试的结果。对测试框架进行仿真并打开仿真数据检查器。仿真数据检查器不会显示 untested 结果。

使用测试序列步骤激活 verify 语句

如果您的模型使用 Test Sequence 作为模块源,您可以使用来自 Test Sequence 模块的活动步骤信号来连接 Test Sequence 模块和 Test Assessment 模块。您可以在 Test Assessment 模块中创建 when 分解,并定义 verify 语句来评估模型仿真。

例如,Harness1_TestSeqAndTestAssessment 框架包含一个 Test Sequence 模块和一个 Test Assessment 模块。Active_Step 信号连接这两个模块。

A test harness with a Test Sequence and Test Assessment block connected by a signal.

Test Assessment 模块包含一个 when 分解序列,该序列有四个子步骤。每个子步骤都包含一个 verify 语句,用于计算两个逻辑表达式。每个 verify 语句使用不同的 Test Sequence 模块步骤激活。

此示例中的 Else 步骤不含任何动作,用于处理与前面的任何 when 条件均不匹配的仿真条件。此步骤不能包含 when 条件。

The Test Editor. The editor shows the steps for the test sequence and test assessment blocks in the harness.

要使用 Test Sequence 模块中的活动步骤在 Test Assessment 模块中激活 verify 语句,请为 Test Sequence 模块创建活动步骤数据输出。在建模选项卡的设计库中,选择属性检查器。然后,选择 Test Sequence 模块,在属性检查器中,选择创建数据以监控激活步骤,并将数据类型设置为 Enum。在枚举名称中输入名称。

Property Inspector for the Test Sequence block

然后,为 Test Assessment 模块创建输入数据。打开 Test Assessment 模块,在符号窗格中,指向输入,点击“添加数据”,并为输入命名。将 Test Sequence 模块的输出连接到 Test Assessment 模块的输入。

在 Test Assessment 模块中创建 when 分解。默认情况下,Test Assessment 模块具有一个 when 分解序列。要在标准序列和 when 分解序列之间切换,请右键点击父步骤并选择 when 分解。对于每个 when 分解步骤,使用活动步骤枚举数据来定义该步骤何时处于活动状态。

VerifyBoth when TSActiveStepIN == ...
    TSActiveStepEnum.PressBothButtons

另请参阅

| | | | | |

主题