模型开发的基于需求的测试
根据需求测试自动驾驶子系统。
这个例子演示了使用测试管理器、测试工具、测试序列块和测试评估块根据需求测试子系统。需求文档链接到测试用例和测试工具,以及验证
语句评估被测组件。
当您构建您的模型时,您可以添加测试用例来根据需求验证模型。后续用户可以运行相同的测试用例,然后添加测试用例来完成进一步的验证目标,例如实现100%的覆盖率或验证生成的代码。
此示例测试卷参考
子系统针对使用三个场景的需求。Test Sequence块提供输入,Test Assessment块评估组件。的卷参考
子系统是自动驾驶仪控制系统的一个组成部分。卷参考
控制飞机滚转控制系统的参考角度。该子系统未能通过一次评估,促使设计更改,限制了该子系统在高输入角度下的输出。
路径和示例文件
输入以下命令来存储示例中的路径和文件名:
topModel =“TestAndVerificationAutopilotExample”;rollModel =“RollAutopilotMdlRef”;testHarness =“RollReference_Requirement1_3”;测试文件=“AutopilotTestFile.mldatx”;reqDoc =“RollAutopilotRequirements.txt”;
打开测试文件和模型
打开RollAutopilotMdlRef
模型。全控制系统TestAndVerificationAutopilotExample
这个模型的引用。
open_system (rollModel)
在测试管理器中打开测试文件。
tf = sltest.testmanager.load(测试文件);sltest.testmanager.view;
打开需求文档。在测试浏览器中展开AutopilotTestFile而且基本设计测试用例在树中,单击1.3测试要求.在Requirement 1.3 test选项卡中展开需求.双击任何需求链接以打开需求编辑器,在那里您可以查看需求。
文件中要求1.3.1规定:当抱滚模式变为主动模式时,抱滚参考应设置为飞机的实际横摇角度,子要求中描述的情况除外。
子要求1.3.1.1规定:在保持辊啮合时,如果实际横摇角度在任何方向上小于6度,则保持辊基准应设置为零。
子要求1.3.1.2规定:如果在保持辊啮合时,实际横摇角度大于30度,则应将保持辊基准设置为与实际横摇角度相同方向的30度。
子要求1.3.1.3规定:滚转参考应设置为驾驶舱旋钮命令,如果旋钮在任何一个方向上的命令为3度或以上,则可设置为30度限制。
测试用例创建三个场景来测试需求中的正常条件和异常。
需求文档使用映射到test Sequence块和测试步骤的url跟踪到测试工具。打开测试工具并突出显示与参考需求1.3相关的组件。
sltest.harness.open ([rollModel/卷参考的), testHarness) rmi (“highlightModel”,“RollReference_Requirement1_3”)
测试序列块、测试评估块和被测试组件链接到需求文档。通过选择突出显示需求链接Apps >需求管理器然后,单击测试工具模型中的高亮链接。您还可以通过单击在Test Sequence Editor中突出显示链接切换需求链接高亮显示在将来发布。
测试序列
打开Test Sequence块。
open_system (“RollReference_Requirement1_3 /测试序列”)
Test Sequence块为三个场景创建测试输入:
在每次测试中,测试序列设置一个信号水平,然后启动自动驾驶仪。测试序列检查了这一点PhiRef
在最短时间内是稳定的吗DurationLimit
在它过渡到下一个信号级别之前。对于前两个场景,测试序列设置EndTest
局部变量,1
触发到下一个场景的转换。
这些场景检查基本组件功能,但不一定能实现100%覆盖率等目标。
测试评估
打开Test Assessment块。
open_system (“RollReference_Requirement1_3 /测试评估”)
测试评估块进行评估卷参考
.评估块是一个库链接子系统,它促进了多个测试工具之间的测试评估重用。块包含验证
语句覆盖:
的要求
PhiRef
=φ
当φ
在低和高的限制内操作。的要求
PhiRef = 0
当φ< 6
度。的要求
PhiRef = 30
当φ> 30
度。当要求
TurnKnob
订婚了,PhiRef = TurnKnob
如果TurnKnob > = 3
度。
验证子系统
要运行测试,在测试管理器中右键单击1.3测试要求在Test Browser窗格中,然后单击运行.
仿真的回报验证
测试管理器中的语句结果和模拟输出。的verify_high_pos
语句失败。
点击结果和工件在测试管理器中。
在结果树中展开验证语句.点击仿真软件:verify_high_pos.跟踪显示语句何时失败。
点击次要情节在工具条中选择垂直排列的两个图。中较低的图可视化窗格。
在结果树中展开结果,1.3测试要求,模拟输出.
选择
PhiRef
而且φ
.的输出迹线与验证
结果如上图所示。观察到PhiRef
超过30度时φ
超过30度。
更新RollReference
限制PhiRef
信号。
关闭测试束带。
如图所示添加一个饱和度块到模型中。
设置下限为
-30年
上限是30.
.将块链接到它的需求。从Requirements浏览器中,将需求1.1.2拖到Saturation块中。一个图标出现在块上,需求被高亮显示。
再次运行测试。的验证
语句通过,测试管理器中的输出显示了这一点PhiRef
温度不超过30度。
close_system (rollModel 0);close_system (topModel, 0);close_system (“RollRefAssessLib”, 0);sltest.testmanager.clear;sltest.testmanager.clearResults;sltest.testmanager.close;清晰的topModelreqDocrollModeltestHarness测试文件harnessLink