mcdcinfo
从 cvdata
对象中检索修正条件/决策覆盖率信息
语法
说明
从 covInfo
= mcdcinfo(cvdo
,modelObject
)cvdata
对象 cvdo
返回由 modelObject
指定的模型组件的修正条件决策覆盖率(MCDC) 结果。
从 covInfo
= mcdcinfo(cvdo
, modelObject
, simMode
)cvdata
对象 cvdo
返回由 modelObject
指定的模型组件的 MCDC 结果,适用于仿真模式 simMode
。
返回 covInfo
= mcdcinfo(cvdo
,modelObject
,ignoreDescendants
)modelObject
的 MCDC 结果,具体取决于 ignoreDescendants
的值。
[
返回 covInfo
, description
] = mcdcinfo(cvdo
,modelObject
)modelObject
中每个条件/决策的 MCDC 结果和文本描述。
示例
检索 MCDC 覆盖信息
收集 slvnvdemo_cv_small_controller
模型的 MCDC 覆盖率,并确定增益子系统中逻辑模块收集的 MCDC 覆盖率百分比:
mdl = 'slvnvdemo_cv_small_controller'; openExample(mdl); open_system(mdl); %Create test specification object testObj = cvtest(mdl) %Enable MCDC coverage testObj.settings.mcdc = 1; %Simulate model data = cvsim(testObj) %Retrieve MCDC results for Logic block blk_handle = get_param([mdl, '/Gain/Logic'], 'Handle'); cov = mcdcinfo(data, blk_handle) %Percentage of MCDC outcomes covered percent_cov = 100 * cov(1) / cov(2)
输入参数
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
— 覆盖率信息
标量
覆盖率信息,如果 cvdo
包含 MCDC 数据,则返回为 [covered_outcomes,total_outcomes]
形式的双元素数组,如果不包含,则返回为空数组。
covered_outcomes | 满足 modelObject 的 MCDC 结果数量 |
total_outcomes | modelObject 的 MCDC 结果总数 |
数据类型: double
description
— MCDC 覆盖率描述
structure
MCDC 覆盖率描述,以具有以下字段的结构体数组形式返回:
isFiltered
— 模块排除标志
0
| 1
模块排除标志,如果模块被排除则返回为 1
,如果没有被排除则返回为 0
。
数据类型: double
filterRationale
— 模块覆盖率过滤器原理
character array
模块覆盖率过滤器原理,以字符数组形式返回。
数据类型: char
justifiedCoverage
— 已申述覆盖率目标结果的数量
scalar
已申述覆盖率目标结果的数量,以双精度标量形式返回。
数据类型: double
text
— 测量目标描述
character array
测量目标的描述,以字符数组形式返回。
数据类型: char
condition
— 个人 MCDC 结果信息
structure
单个 MCDC 结果的信息,以包含以下字段的结构体返回:
isFiltered
— MCDC 结果排除标志
0
| 1
MCDC 结果排除标志,如果 MCDC 结果被排除则返回为 1
,否则返回为 0
。
数据类型: double
isJustified
— MCDC 结果申述标志
0
| 1
MCDC 结果申述标志,如果 MCDC 结果已申述则返回 1
,否则返回 0
。
数据类型: double
filterRationale
— 覆盖率过滤器原理
character array
覆盖过滤器的基本原理,以字符数组形式返回。如果未应用过滤器,或者应用的过滤器不包含过滤规则,则 filterRationale
将作为空数组返回。
数据类型: char
text
— MCDC 结果描述
character array
MCDC 结果的描述,以字符数组形式返回。
数据类型: char
achieved
— MCDC 结果标志
0
| 1
MCDC 结果标志,如果 MCDC 结果完全满足则返回为 1
,如果不满足则返回为 0
。如果每个条件独立影响决策结果,则 MCDC 结果完全令人满意。
数据类型: double
trueResult
— 实现 true
MCDC 结果的条件值
scalar
实现 true
MCDC 结果的条件值,返回为
数据类型: double
falseResult
— 时间步数条件为 false
scalar
条件为 false
的时间步数,以标量形式返回。
数据类型: double
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
数据类型: double
数据类型: struct
备选方法
使用覆盖率设置来收集模型的 MCDC 覆盖率:
打开模型。
在模型编辑器中,选择建模选项卡上的模型设置。
在配置参数对话框的覆盖率窗格中,选择启用覆盖率分析。
在覆盖率度量下,选择 MCDC 作为结构覆盖率级别。
点击确定关闭配置参数对话框并保存更改。
通过点击运行按钮来仿真模型并查看结果。
版本历史记录
在 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)