使用一个基于需求的测试规范模型
这个例子展示了如何使用一个规范模型来执行基于需求的测试。在这个例子中,您遵循系统化方法来验证您的设计模型与需求。规范模型的详细描述,请参阅规范模型是什么?。
步骤1:作者需求在需求编辑器
这个例子使用一卷自动控制器,RollAutopilotMdlRef
这是一个设计模型,控制飞机的横摇角。辊自动驾驶仪控制器在两个高级运营模式:
1。辊保持状态:这种模式保持当前飞机的横摇角或根据用户指定的角度变化。
2。标题保持状态:这种模式保持当前标题或卷飞机达到指定的值。对辊自动驾驶仪控制器系统的详细信息,明白了基于需求的测试模型发展(金宝app仿真软件测试)。
自动驾驶仪控制器的需求描述系统接口,高级系统模式,和控制器的预期行为。这些需求撰写需求编辑和保存在AP_Controller.slreqx
文件。要求编辑器的更多信息,请参阅在编辑器的需求与要求(需求工具箱)。查看需求,打开需要编辑器通过输入:
slreq.open (“AP_Controller”);
要求编辑器显示卷保存,保存的高级需求模式。当你点击每个需求,选项卡列出的细节要求。
步骤2:创建一个规范的模型
当您创建规范模型时,需要考虑几个因素,如需求的类型,选择模型块,和抽象层次。按照指南中描述创建规范模型。
打开sldvexSpecPartial
规范模型,该模型涵盖了自动驾驶仪的设置要求:
spec_model =“sldvexSpecPartial”;open_system (spec_model);
的sldvexSpecPartial
模型由输入和输出接口。真值表捕获需求。
打开真值表,输入:
open_system (“sldvexSpecPartial /美联社控制器需求”);
步骤3。链接要求规范模型
执行以下步骤链接要求规范模型。
1。右键单击真值表命名美联社控制器的要求
规范的模型。在上下文菜单中,单击需求>选择链接与仿真软件金宝app。
2。打开需求在需求编辑器。右键单击要求你想真值表,并单击链接从美联社控制器链接需求(真值表)。如果你有多个事实表,每个指定的一组需求,链接。
步骤4:为规范模型生成测试用例
使用sldvoptions
为规范模型生成测试用例。每个需求与个体有关测试生成目标使用sldv.test ()
。
选择= sldvoptions;选择。模式=“TestGeneration”;选择。ModelCoverageObjectives =“没有”;[~、文件]= sldvrun (spec_model,选择,真);
分析完成后,结果总结窗口显示的六个目标是满意的。
第五步:创建一个测试转换系统设计模型上运行测试
自动驾驶仪控制器模型和设计模型有不同的接口规范这意味着测试生成的步骤4中不支持对设计模型进行仿真。金宝app
例如,飞机横摇角枚举类型范围的规范,但双输入设计模型。
在测试期间转换过程,如果一个信号值,如RA_Horizontal,是一个范围,你可以选择任何范围的价值下跌。各种启发式,如中点(你可以选择范围的中点),边界值(你可以选择低或范围的上限),甚至是随机策略(你选择一个随机值范围)可以使用。自动驾驶仪控制器的子系统sldvexDesignHarness /测试转换
实现了中点策略利用模型如下所示:
design_model =“sldvexDesignHarness”;load_system (design_model);open_system (“sldvexDesignHarness /测试转换”);
第六步:模拟测试用例的设计模型和识别丢失的需求
设计模型是独立开发利用需求文档。验证设计,创建一个包含这四个子系统:利用模型
(我)规范的模型。
(2)设计模型。
(3)在步骤5中描述的测试转换子系统。
(iv)运行时验证。这个块检查设计信号值是否在指定的范围规范模型。
从第五步运行测试使用的设计模型sldvruntest
并生成一个模型覆盖报告。
cvopts = sldvruntestopts;cvopts。coverageEnabled = true;[~,initCov] = sldvruntest (design_model、files.DataFile cvopts);cvhtml (“InitialCov”,initCov);
分析结果报告,不是实现全覆盖roll_ap_mod
,实现子系统覆盖设计模型。
第七步:更新规范模型通过添加缺失的需求
添加的需求sldvexSpecFull
规范模型进行分析。
spec_model =“sldvexSpecFull”;open_system (spec_model);
(一)更新的规范模型生成测试用例
使用sldvoptions
生成测试用例。
选择= sldvoptions;选择。模式=“TestGeneration”;选择。ModelCoverageObjectives =“没有”;[~、文件]= sldvrun (spec_model,选择,真);
(b)模拟测试用例的设计模型并生成覆盖报告
打开sldvexDesignHarness
模型,该模型包含了设计模型、规范模型和测试转换子系统。
design_model =“sldvexDesignHarness”;open_system (design_model);
通过使用模拟测试用例sldvruntest
并生成一个模型覆盖报告。
cvopts = sldvruntestopts;cvopts。coverageEnabled = true;[~,FinalCov] = sldvruntest (design_model、files.DataFile cvopts);cvhtml (“FinalCov”,FinalCov);
覆盖率报告显示是设计模型的实现全覆盖。
bdclose (“所有”);slreq.clear;