测试序列基础知识
测试序列由按层次结构排列的测试步骤组成。您可以使用测试序列来定义测试输入,以及定义测试如何根据仿真情况而推进。测试步骤包含在该步骤开始时执行的动作。测试步骤可以包含转移,用于定义该步骤何时停止执行以及接下来执行哪个测试步骤。动作和转移使用 MATLAB® 作为动作语言。您可使用 Test Sequence 模块和测试序列编辑器创建测试序列。请参阅使用 Stateflow 图进行测试框架输入和调度。
测试序列层次结构
在 Test Sequence 模块中定义的测试序列可以包含父步骤和子步骤。子步骤只有在父步骤处于激活状态时才能激活。处于同一层次结构级别的一组步骤共享一个常见转移类型。创建测试步骤时,该步骤会成为同一组中其他步骤的转移选项。
测试序列场景
在 Test Sequence 模块中,您可以定义多个测试序列,这些序列被称为测试序列场景。通过使用场景,您可以定义不同的测试序列,而无需在测试框架中创建多个 Test Sequence 模块。您可以通过以下方式运行测试序列场景:
从测试序列编辑器激活单个场景并运行模型
使用 API 命令激活单个场景并运行模型
使用工作区变量控制激活场景并运行模型
使用自定义测试脚本在运行模型时循环执行各场景
在测试管理器中定义迭代,以便在单个测试用例中运行多个场景
有关使用测试序列场景的详细信息和示例,请参阅在测试序列编辑器和测试管理器中使用测试序列场景和以编程方式创建并运行测试序列场景。
转移类型
在 Test Sequence 模块中定义的测试序列通过两种方式实现步骤间的转移:
标准转移:您可以使用标准转移序列定义一系列对仿真条件做出反应的动作。标准转移序列从第一个步骤开始,并根据转移条件和后续步骤进行推进。当一个步骤中有多个转移条件时,转移会按照条件的列出顺序执行。有关转移的详细信息,请参阅定义测试步骤和评估。
此测试序列设置布尔输出
RedButtonIn和GreenButtonIn的值,每个步骤激活 1 秒后发生转移。
When 分解:
When分解序列类似于编程中的switch语句。在When分解序列中,步骤基于模型中发生的特定条件而激活。步骤之间不使用转移。在每个时间步,该模块会按顺序计算每个步骤的条件表达式。当该模块达到条件计算结果为true的步骤时,该步骤变为激活状态,后续步骤保持未经测试状态。以下 When 分解包含三个
verify语句。每个verify在信号gear等于不同值时变为激活状态。有关详细信息,请参阅通过 when 分解验证模型仿真。