slcoverage.MetricSelector 类
命名空间: slcoverage
选择覆盖率过滤器的度量标准
创建对象
描述
在目标索引 sel
= slcoverage.MetricSelector(type
,element
,objIndex
,outIndex
)objIndex
和结果索引 outIndex
处为指定模型元素 element
创建类型为 type
的度量选择器对象。
您只能为度量选择器创建一条申述规则。有关申述和排除之间的区别的更多信息,请参阅覆盖率过滤。
有关报告中生成的条件和决策覆盖率表的更多信息,请参阅顶层模型覆盖率报告。
输入参量
type
— 度量选择器类型
slcoverage.MetricSelectorType.ConditionOutcome
| slcoverage.MetricSelectorType.DecisionOutcome
| slcoverage.MetricSelectorType.MCDCOutcome
| slcoverage.MetricSelectorType.RelationalBoundaryOutcome
| slcoverage.MetricSelectorType.SaturationOverflowOutcome
度量选择器类型,指定为:
slcoverage.MetricSelectorType.ConditionOutcome
对象选择条件度量目标结果。slcoverage.MetricSelectorType.DecisionOutcome
对象选择决策度量目标结果。slcoverage.MetricSelectorType.MCDCOutcome
对象选择 MCDC 度量目标结果。slcoverage.MetricSelectorType.RelationalBoundaryOutcome
对象选择与关系边界结果相关的结果度量。slcoverage.MetricSelectorType.SaturationOverflowOutcome
对象选择与整数溢出结果饱和度相关的结果度量。
element
— 要选择的模型元素
句柄 | Simulink® ID
要选择的模型元素,指定为模型元素的句柄或 Simulink 标识符。
示例: 'slcoverage_lct_bus:18'
objIndex
— 目标索引
整数
您想要过滤的目标的索引,指定为整数。
示例: 1
outIndex
— 结果索引
整数
您想要过滤的结果的索引,指定为整数。
示例: 2
属性
ConstructorCode
— 用于创建此选择器对象的代码
字符数组
用于创建此选择器对象的代码,以字符向量形式返回。
属性:
GetAccess | public |
SetAccess | 受保护 |
Description
— 选择器的描述
字符向量
选择器的描述,以字符向量形式返回。Simulink Coverage™ 根据选择器创建描述。
属性:
GetAccess | public |
SetAccess | 受保护 |
Id
— 元素标识符
Simulink ID (默认) | 句柄
模型元素的标识符,以 Simulink ID 的字符向量或句柄形式返回。
属性:
GetAccess | public |
SetAccess | 受保护 |
ObjectiveIndex
— 目标索引
整数
此选择器的目标索引,以整数形式返回。
属性:
GetAccess | public |
SetAccess | 受保护 |
OutcomeIndex
— 结果索引
整数
此选择器的结果索引,以整数形式返回。
属性:
GetAccess | public |
SetAccess | 受保护 |
Type
— 度量选择器类型
ConditionOutcome
| DecisionOutcome
| MCDCOutcome
| RelationalBoundaryOutcome
| SaturationOverflowOutcome
选择器类型,返回为 ConditionOutcome
、DecisionOutcome
、MCDCOutcome
、RelationalBoundaryOutcome
或 SaturationOverflowOutcome
。
属性:
GetAccess | public |
SetAccess | 受保护 |
方法
公共方法
allSelectors | 模型或代码元素的选择器 |
示例
将度量选择器规则添加到过滤器
此示例显示如何选择一个度量并添加使用该度量的规则。在此示例中,您创建一条规则来对 Saturation 模块中一条未满足的决策进行申述。
打开模型并启用覆盖率分析
将模型加载到内存中。
modelName = 'slvnvdemo_covfilt';
load_system(modelName);
使用 Simulink.SimulationInput
对象来配置模型的覆盖率。
covSet = Simulink.SimulationInput(modelName); covSet = covSet.setModelParameter('CovEnable','on'); covSet = covSet.setModelParameter('CovMetricStructuralLevel','MCDC'); covSet = covSet.setModelParameter('CovSFcnEnable','on'); covSet = covSet.setModelParameter('StopTime','20'); covSet = covSet.setModelParameter('CovSaveSingleToWorkspaceVar','on'); covSet = covSet.setModelParameter('CovSaveName','covData');
使用 SimulationInput
对象作为输入来仿真模型。
simOut = sim(covSet);
在应用过滤器之前查看覆盖率结果。您可以使用 decisioninfo
访问覆盖率,也可以使用 cvhtml
查看 HTML 报告。
covInitial = decisioninfo(covData,[modelName,'/Saturation']);
percentInitial = 100 * covInitial(1)/covInitial(2)
percentInitial = 50
cvhtml('covReportInitial',covData);
decisioninfo
和 cvhtml
都显示出相同的结果,即 50% 的决策覆盖率。如果您不打算让当前的测试得出这个结果,那么您可以申述该结果,以便不再将其报告为缺失覆盖率。
在这个例子中,我们申述了 Saturation 模块中 input > lower limit
决策目标的 false
决策结果。
证明缺失条件目标
MetricSelector
对象接受模块路径或模块句柄作为第二个输入。使用 getSimulinkBlockHandle
获取 Saturation 模块的模块句柄。
id = getSimulinkBlockHandle([modelName,'/Saturation']);
因为被证明的目标是一个决策结果,所以度量选择器构造函数的第一个输入是 slcoverage.MetricSelectorType.DecisionOutcome
。第二个输入是模块句柄。最后两个分别是需要申述的目标的索引和该目标的结果的索引。
因为 input > lower limit
决策目标是 Saturation 模块的第一个目标,所以它的目标索引是 1
。因为这个目标的 false
结果是第一个结果,所以它的结果索引也是 1
。因此,最后两个输入是 1,1
。
metr = slcoverage.MetricSelector(slcoverage.MetricSelectorType.DecisionOutcome,id,1,1);
创建过滤器和规则。在这种情况下,我们使用默认的过滤模式申述。然后使用 addRule
方法将规则添加到过滤器。
filt = slcoverage.Filter;
rule = slcoverage.FilterRule(metr,'Expected result');
filt.addRule(rule);
使用 save
方法将过滤器保存到过滤器文件。然后通过将 filter
属性分配给新的过滤器文件,将过滤器文件应用于 cvdata
对象。
filt.save('metrfilter'); covData.filter = 'metrfilter';
使用新过滤的 cvdata
对象重新生成 Saturation 模块的覆盖率结果。
covFiltered = decisioninfo(covData,[modelName,'/Saturation']);
percentInitial = 100 * covFiltered(1)/covFiltered(2)
percentInitial = 75
cvhtml('covReportFiltered',covData);
在 HTML 报告中,缺失的决策结果被突出显示,以表明已对其进行申述。Saturation 模块的决策覆盖率现在为 75%。
版本历史记录
在 R2017b 中推出R2020b: 证明单个 MCDC 目标的缺失覆盖率结果
您可以使用 slcoverage.MetricSelectorType.MCDCOutcome
来申述单独修正条件/决策覆盖率(MCDC) 结果,而无需排除整个表达式。
MATLAB 命令
您点击的链接对应于以下 MATLAB 命令:
请在 MATLAB 命令行窗口中直接输入以执行命令。Web 浏览器不支持 MATLAB 命令。
Select a Web Site
Choose a web site to get translated content where available and see local events and offers. Based on your location, we recommend that you select: .
You can also select a web site from the following list:
How to Get Best Site Performance
Select the China site (in Chinese or English) for best site performance. Other MathWorks country sites are not optimized for visits from your location.
Americas
- América Latina (Español)
- Canada (English)
- United States (English)
Europe
- Belgium (English)
- Denmark (English)
- Deutschland (Deutsch)
- España (Español)
- Finland (English)
- France (Français)
- Ireland (English)
- Italia (Italiano)
- Luxembourg (English)
- Netherlands (English)
- Norway (English)
- Österreich (Deutsch)
- Portugal (English)
- Sweden (English)
- Switzerland
- United Kingdom (English)