conditioninfo
从 cvdata
对象中检索条件覆盖率信息
语法
说明
从 covInfo
= conditioninfo(cvdo
,modelObject
)cvdata
对象 cvdo
返回由 modelObject
指定的模型组件的条件覆盖率结果。
返回来自 covInfo
= conditioninfo(cvdo
,modelObject
,simMode
)cvdata
对象 cvdo
的仿真模式 simMode
的条件覆盖率结果。
返回 covInfo
= conditioninfo(cvdo
,modelObject
,ignoreDescendants
)modelObject
的条件覆盖率结果,根据 ignoreDescendants
的值包括或忽略后代对象。
[
返回 covInfo
,description
] = conditioninfo(cvdo
,modelObject
)modelObject
中每个条件的条件覆盖率结果和文本描述。
示例
查看条件覆盖率数据
此示例显示如何查看模型中模块的条件覆盖率。
加载模型。
modelName = 'slvnvdemo_cv_small_controller';
load_system(modelName);
使用 Simulink.SimulationInput
对象配置模型的覆盖率设置。
simIn = Simulink.SimulationInput(modelName); simIn = simIn.setModelParameter('CovEnable','on'); simIn = simIn.setModelParameter('CovMetricStructuralLevel','MCDC'); simIn = simIn.setModelParameter('CovSaveSingleToWorkspaceVar','on'); simIn = simIn.setModelParameter('CovSaveName','covData');
通过将 simIn
作为输入传递给 sim
来仿真模型。
simOut = sim(simIn); covData = simOut.covData;
通过使用模块路径调用 conditioninfo
来查看增益子系统中逻辑模块的条件覆盖率结果。
condCov = conditioninfo(covData,[modelName,'/Gain/Logic'])
condCov = 2 4
conditioninfo
返回一个包含两个标量的数组。第一个值是满足的条件结果的数量,第二个值是总条件结果的数量。使用这些来确定逻辑模块的满足条件结果的百分比。
percentCondCov = 100 * condCov(1) / condCov(2)
percentCondCov = 50
输入参数
cvdo
— 覆盖率数据
cvdata
对象
覆盖率数据,指定为 cvdata
对象。
数据类型: cvdata
modelObject
— 模型对象
character array
| string array
| Simulink® handle
| Stateflow® ID
| cell array
模型对象,指定为字符数组、字符串数组、Simulink 句柄、Stateflow ID 或元胞数组。
要指定模型对象(例如模块或 Stateflow 图),请使用以下格式之一:
对象设定 | 描述 |
---|---|
| 模型或模块的完整路径 |
| 模型或模块 |
| Simulink API 对象的句柄 |
| Stateflow ID |
| 来自单独实例化的 Stateflow 图的 Stateflow API 对象的句柄 |
| 包含 Stateflow 图或原子子图的路径以及该图或子图中包含的对象的 ID 的元胞数组 |
| 包含 Stateflow 图或子图的路径以及该图或子图中包含的 Stateflow 对象 API 句柄的元胞数组 |
| 带有 Stateflow 图或原子子图句柄的元胞数组以及该图或子图中包含的对象的 ID |
要指定 S-Function 模块或其内容,请使用以下格式之一:
对象设定 | 描述 |
---|---|
| 包含 S-Function 模块路径和源文件名称的元胞数组 |
| 具有 S-Function 模块句柄和源文件名称的元胞数组 |
| 包含 S-Function 模块的路径、源文件的名称和函数名称的元胞数组 |
| 带有 S-Function 模块句柄、源文件的名称和函数名称的元胞数组 |
要指定代码覆盖率结果,例如在软件在环(SIL) 或处理器在环(PIL) 分析期间收集的覆盖率数据,请使用以下格式之一:
对象设定 | 描述 |
---|---|
| 包含源文件名称和函数名称的元胞数组 |
| 具有模型名称或模型句柄和源文件名称的元胞数组 |
| 具有模型名称或模型句柄、源文件的名称和函数名称的元胞数组 |
数据类型: char
| string
| cell
| Stateflow.State
| Stateflow.Transition
simMode
— 仿真模式
character array
| string array
覆盖率分析期间的仿真模式,指定为以下选项之一:
对象设定 | 描述 |
---|---|
| 普通仿真模式下的模型。 |
| 软件在环 (SIL) 或处理器在环 (PIL) 仿真模式下的模型。 |
| SIL 或 PIL 仿真模式下的模型参考。 |
| 在 SIL 或 PIL 仿真模式下的模型引用,代码接口设置为顶层模型。 |
数据类型: char
| string
ignoreDescendants
— 是否忽略覆盖率结果中的后代
false
或 0
(默认) | true
或 1
是否忽略覆盖率结果中的后代,指定为数字或逻辑 1 (true)
或 0 (false)
,其中:
0 (false)
包括后代对象的覆盖率结果。1 (true)
忽略后代对象的覆盖率结果。
数据类型: single
| double
| logical
输出参量
covInfo
— 覆盖率信息
scalar
覆盖率信息,如果 cvdo
包含条件覆盖率数据,则返回为 [covered_outcomes,total_outcomes]
形式的双元素数组,如果不包含,则返回空数组。
covered_outcomes | modelObject 满足的条件结果数 |
total_outcomes | modelObject 的条件结果总数 |
数据类型: double
description
— 条件覆盖率描述
structure
条件覆盖率描述,以具有以下字段的结构体返回:
isFiltered
— 模块排除标志
0
| 1
模块排除标志,如果模块被排除则返回为 1
,如果没有被排除则返回为 0
。
数据类型:
filterRationale
— 模块覆盖率过滤器原理
character array
模块覆盖率过滤器原理,以字符数组形式返回。
数据类型: char
justifiedCoverage
— 已申述覆盖率目标结果的数量
scalar
已申述覆盖率目标结果的数量,以双精度标量形式返回。
数据类型: double
isJustified
— 模块申述标志
0
| 1
模块申述标志,如果模块对齐则返回 1
,否则返回 0
。
数据类型: double
condition
— 个别情况结果的信息
structure
个别条件结果的信息,以包含以下字段的结构体返回:
isFiltered
— 条件排除标志
0
| 1
条件排除标志,如果条件被排除则返回 1
,如果不被排除则返回 0
。
数据类型: double
isJustified
— 条件申述标志
0
| 1
条件申述标志,如果条件证明则返回 1
,如果条件不证明则返回 0
。
数据类型: double
filterRationale
— 覆盖率过滤器原理
character array
覆盖过滤器的基本原理,以字符数组形式返回。
数据类型: char
text
— 病情描述
character array
条件描述,以字符数组形式返回。
数据类型: char
trueCnts
— 时间步数条件为 true
scalar
条件为 true
的时间步数,以标量形式返回。
数据类型: double
falseCnts
— 时间步数条件为 false
scalar
条件为 false
的时间步数,以标量形式返回。
数据类型: double
trueOutcomeFilter
— true
条件结果的覆盖率过滤信息
structure array
true
条件结果的覆盖率过滤信息,以具有以下字段的结构体数组形式返回:
isFiltered | 条件结果的过滤标志,如果结果经过过滤则返回 1 ,如果未经过过滤则返回 0 。 |
isJustified | 条件结果的申述标志,如果结果已申述则返回 1 ,如果结果未申述则返回 0 。 |
filterRationale | 过滤器原理,以字符数组形式返回。 |
数据类型: struct
falseOutcomeFilter
— false
条件结果的覆盖率过滤信息
structure array
false
条件结果的覆盖率过滤信息,以具有以下字段的结构体数组形式返回:
isFiltered | 条件结果的过滤标志,如果结果经过过滤则返回 1 ,如果未经过过滤则返回 0 。 |
isJustified | 条件结果的申述标志,如果结果已申述则返回 1 ,如果结果未申述则返回 0 。 |
filterRationale | 过滤器原理,以字符数组形式返回。 |
数据类型: struct
trueExecutedIn
— 聚合覆盖率测试用例可追溯性信息
structure array
| []
聚合覆盖率测试用例可追溯性信息,以结构体数组形式返回。如果您的覆盖率数据不包含来自多个仿真的聚合结果,则 trueExecutedIn
是一个空数组。如果您的覆盖率数据包含聚合结果,trueExecutedIn
表示哪些测试运行执行了 true
条件结果,并具有以下字段:
uniqueId | 执行此条件结果的测试用例创建的 cvdata 对象的唯一标识符,以字符数组的形式返回。 |
analyzedModel | 所分析模型的名称,以字符数组形式返回。 |
description | 测试用例描述,以字符数组形式返回。 |
date | 创建 cvdata 对象的仿真的日期和时间,以字符数组形式返回。 |
traceLabel | 测试用例的简称,以字符数组形式返回。 |
testRunInfo | 测试详细信息,以结构体数组返回。 |
testRunInfo.runid | 生成覆盖率结果的运行的标识符,以双精度标量形式返回。 |
testRunInfo.runName | 生成覆盖率结果的测试用例的名称,以字符数组形式返回。 |
testRunInfo.testId | 识别生成覆盖率结果的测试用例的数据,以结构体数组的形式返回。 |
testRunInfo.testId.uuid | 生成覆盖率结果的测试用例的唯一标识符,以字符数组形式返回。 |
testRunInfo.testId.contextType | 获取覆盖率结果的测试上下文,以下列值之一返回:
|
数据类型: struct
falseExecutedIn
— 聚合覆盖率测试用例可追溯性信息
structure array
| []
聚合覆盖率测试用例可追溯性信息,以结构体数组形式返回。如果您的覆盖率数据不包含来自多个仿真的聚合结果,则 falseExecutedIn
是一个空数组。如果您的覆盖率数据包含聚合结果,falseExecutedIn
表示哪些测试运行执行了 false
条件结果,并具有以下字段:
uniqueId | 执行此条件结果的测试用例创建的 cvdata 对象的唯一标识符,以字符数组的形式返回。 |
analyzedModel | 所分析模型的名称,以字符数组形式返回。 |
description | 测试用例描述,以字符数组形式返回。 |
date | 创建 cvdata 对象的仿真的日期和时间,以字符数组形式返回。 |
traceLabel | 测试用例的简称,以字符数组形式返回。 |
testRunInfo | 测试详细信息,以结构体数组返回。 |
testRunInfo.runid | 生成覆盖率结果的运行的标识符,以双精度标量形式返回。 |
testRunInfo.runName | 生成覆盖率结果的测试用例的名称,以字符数组形式返回。 |
testRunInfo.testId | 识别生成覆盖率结果的测试用例的数据,以结构体数组的形式返回。 |
testRunInfo.testId.uuid | 生成覆盖率结果的测试用例的唯一标识符,以字符数组形式返回。 |
testRunInfo.testId.contextType | 获取覆盖率结果的测试上下文,以下列值之一返回:
|
数据类型: struct
数据类型: struct
数据类型: struct
备选方法
您还可以在 Simulink 编辑器中收集模型的条件覆盖率。设置模型配置参数并运行模型:
打开您想要收集条件覆盖率的模型。
在 Simulink 编辑器的建模选项卡中,选择模型设置。
在配置参数对话框的覆盖率窗格中,选择启用覆盖率分析。
在覆盖率度量下,选择条件决策作为结构覆盖率级别。
点击确定关闭配置参数对话框并保存更改。
通过点击运行来仿真模型。查看结果。
版本历史记录
在 R2006b 中推出
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)