工件追踪
Units
单元是软件架构中的功能实体,您可以独立执行和测试它,也可以将其作为更大系统测试的一部分来执行和测试。软件开发标准,例如 ISO 26262-6,定义了单元测试的目标。单元测试通常必须涵盖单元的每个需求,并且必须证明需求、测试和单元之间的可追溯性。单元测试还必须满足单元的某些覆盖率目标,例如修正条件/决策覆盖率 (MC/DC)。
默认情况下,仪表板会分析工程文件夹中的所有模型,并将 Simulink® 模型视为单元。
可以使用追溯视图查看工程中的单元和组件。有关详细信息,请参阅使用溯源视图探索可追溯性信息。。如果要从仪表板中排除某些模型,请通过在工程中标记哪些模型是单元或组件,并配置仪表板以识别该标签来指定这些模型,如 将模型指定为组件和单元 所示。
组件
组件是将多个可测试单元整合在一起的实体。
默认情况下,仪表板会分析工程文件夹中的所有模型,并将 System Composer™ 架构模型视为组件。支持的架构包括 System Composer 架构模型、System Composer 软件架构模型和 AUTOSAR 架构。
可以使用追溯视图查看工程中的单元和组件。有关详细信息,请参阅使用溯源视图探索可追溯性信息。。如果要从仪表板中排除某些模型,请通过在工程中标记哪些模型是单元或组件,并配置仪表板以识别该标签来指定这些模型,如 将模型指定为组件和单元 所示。
将模型指定为组件和单元
您可以通过在工程中给模型贴上标签,并配置仪表板以识别这些标签,来控制哪些模型显示为单元和组件。
打开一个工程。对于此示例,在 MATLAB® 命令行窗口中,输入:
此示例工程已配置好组件和单元模型。openExample("slcheck/ExploreTestingMetricDataInModelTestingDashboardExample"); openProject("cc_CruiseControl");
创建一个工程标签类别,用于存放您的测试架构标签。在工程选项卡的环境部分中,点击设置。然后,在标签部分,点击新建类别。输入类别名称,例如
Testing Interface,然后点击确定。为单位创建标签。点击您创建的类别,然后选择新建标签。输入标签名称
Software Unit。为组件创建标签。点击您创建的类别,然后选择新建标签。输入标签名称
Software Component。点击确定关闭工程设置对话框。
有关如何创建工程标签类别和标签的更多信息,请参阅 Create and Manage Labels。
将工程中的模型标记为组件和单元。在工程窗格中,右键点击模型,点击添加标签,然后选择类别和标签。例如,在
models文件夹中,将这些标签应用于这些模型:cc_CruiseControl- 测试接口 > 软件组件cc_ControlMode- 测试接口 > 软件单元cc_DriverSwRequest- 测试接口 > 软件单元cc_LightControl- 测试接口 > 软件单元cc_TargetSpeedThrottle- 测试接口 > 软件单元
有关如何添加工程标签的更多信息,请参阅 Add Labels to Project Files。
您可以使用以下方法之一打开仪表盘窗口:
在工程选项卡的工具部分中,点击模型测试仪表板。
在工程选项卡的工具部分中,点击模型设计仪表板。
在仪表板选项卡中,点击选项。
在“工程选项”对话框的分类部分中,指定您为组件和单位创建的类别和标签。对于组件接口,将类别设置为
Testing Interface,将标签设置为Software Component。对于单元接口,将类别设置为Testing Interface,将标签设置为Software Unit。
点击应用。仪表板会更新工程面板中的工件列表。
要打开单元或组件的仪表板,点击工程面板中的单元或组件名称。仪表盘显示您选择的单元或组件的度量结果。
追溯工件至单位和组件
工程面板显示与当前选择的仪表板兼容的当前工程的工件。例如,您可以打开工程中某个单元的模型测试仪表板,也可以打开工程中某个单元或组件的模型维护仪表板。您可以通过在工程中标记实体并配置仪表板以识别标签,来指定软件架构中的哪些实体是单元或更高级别的组件。默认情况下,如果您未指定被视为组件的模型,则仪表板会考虑:
将 Simulink 模型视为单元。
将 System Composer 架构模型视为组件。
有关详细信息,请参阅将模型按层级结构分类为组件或单元。

为了确定哪些工件属于某个单元或组件的范围,仪表板会分析工程中工件、软件单元模型和组件模型之间的可追溯性链接。默认情况下,仪表板会分析工程文件夹中的所有文件,即使这些文件不在路径中或未添加到工程中。如果要从仪表板中排除某些模型,请通过在工程中标记哪些模型是单元或组件,并配置仪表板以识别该标签来指定这些模型,如 将模型指定为组件和单元 所示。
要查看仪表板在单元或组件与其工件之间找到的可追溯性路径,请点击可追溯性选项卡,然后从工具栏的添加追溯视图部分选择跟踪视图,打开跟踪视图。跟踪视图是交互式图,您可以使用它来查看工件如何追溯到设计中的单元和组件,并查看工程中需求、测试和测试结果的可追溯性信息。有关详细信息,请参阅使用溯源视图探索可追溯性信息。。
当您在工程面板中选择一个工件时,工件面板将显示与所选工件相关的工件。对于单元和组件,追踪到的工件包括:
功能需求
设计工件
测试
测试结果

功能需求
文件夹功能需求显示类型 Functional 的需求,这些要求要么由单元或组件实现,要么在其上游实现。
收集度量结果时,仪表板仅分析单元或组件直接实现的功能性需求。文件夹功能需求包含两个子文件夹,用于帮助识别哪些需求是由单元或组件实现的,哪些需求是单元或组件的上游需求:
已实现 - 与单元或组件直接关联的功能性需求,链接为类型或
Implements。仪表盘在单元或组件的度量中使用这些需求。上游 - 与已实现的需求间接或传递相关的功能性需求。仪表盘在单元或组件的度量中并未使用这些需求。
使用 Requirements Toolbox™ 在需求文件 (.slreqx) 中创建或导入需求。如果某个需求无法追溯到某个单元或组件,则会出现在 追踪问题 文件夹中。如果您预期某个需求会出现在工件面板中但它却没有出现,请参阅解决缺失的工件、链接和结果。
有关仪表板如何追溯工程文件之间的依赖关系的详细信息,请参阅利用数字线程监控工件可追溯性并检测过时结果。
设计工件
文件夹设计显示与当前单元或组件相关的工程工件,包括:
包含单元或组件模块的模型文件。
该单元或组件引用的模型。
模型部分或全部使用的库。
与模型关联的数据字典。
外部 MATLAB 代码,可追溯到模型。
如果某个工件没有按预期出现在设计文件夹中,请参阅 解决缺失的工件、链接和结果。有关仪表板如何追溯工程文件之间的依赖关系的详细信息,请参阅利用数字线程监控工件可追溯性并检测过时结果。
注意
如果您期望外部 MATLAB 代码出现在仪表板中,但它没有出现,请检查该构造是否不受支持:
如果类方法满足以下条件,则该方法不会显示在工件面板中:
使用点号表示法调用的非静态方法。
使用函数表示法调用的非静态方法。
使用点号表示法从 Simulink 模型调用的静态方法。
超类方法。
与类定义文件分开定义。
对于这些方法,仪表板会在设计文件夹中显示相关的类定义。
如果构造函数是超类构造函数,则类构造函数不会出现在工件面板中。仪表板显示了设计文件夹中关联的超类定义,但没有显示方法本身。
如果从 Simulink 或 Stateflow® 调用类属性,则该类属性不会出现在工件面板中。仪表板在工件面板中显示相关的类定义。
枚举类未出现在工件面板中。例如,如果您在 Simulink 中使用 Enumerated Constant 模块,则仪表板不会显示定义
enum类型的 MATLAB 类。如果一个类文件包含一个同名的方法和一个同名的局部函数,则使用点表示法的调用会调用类定义中的方法,而使用函数表示法的调用会调用类文件中的局部函数。
测试
文件夹测试显示与所选单元相关的测试和测试框架。一个测试可以是测试迭代,也可以是不带迭代的测试用例。
当您收集单元的度量结果时,仪表板仅分析单元测试。文件夹测试包含子文件夹,用于帮助识别测试是否被视为单元测试以及哪个测试利用了对单元的跟踪:
单元测试 - 仪表板视为单元测试的测试。单元测试直接测试整个单元或单元中的较低级别元素,例如子系统。仪表盘将这些测试结果用于该单元的度量中。
其他 - 可追溯到单元但仪表板不将其视为单元测试的测试。例如,仪表板不会将对库、子系统引用或虚拟子系统的测试视为单元测试。该仪表盘在单元度量中未使用这些测试。
测试框架 - 可追踪到单元或单元中较低级别元素的测试框架。双击测试框架将其打开。
使用 Simulink Test™ 创建测试。如果测试结果无法追溯到某个单元,则会出现在 追踪问题 文件夹中。如果测试未出现在工件面板中,或者您未按预期看到测试的度量结果,请参阅 解决缺失的工件、链接和结果。
有关仪表板如何追溯工程文件之间的依赖关系的详细信息,请参阅利用数字线程监控工件可追溯性并检测过时结果。
测试结果
当您收集单元的度量结果时,仪表板仅分析单元测试的测试结果。文件夹测试结果包含子文件夹,用于帮助识别哪些测试结果来自单元测试。
模型、SIL 和 PIL 子文件夹分别包含正常单元测试、软件在环 (SIL) 单元测试和处理器在环 (PIL) 单元测试的仿真结果。仪表盘会将这些结果用于该部门的度量中。
将显示以下几种类型的测试结果:
已保存的测试结果 - 您在测试管理器中收集并导出到结果文件的结果。
临时测试结果 - 您在测试管理器中收集但尚未导出到结果文件的结果。从测试管理器导出结果时,仪表板会分析已保存的结果,而不是临时结果。此外,当您关闭工程或在 Simulink Test 结果浏览器中关闭结果集时,仪表板将停止识别临时结果。如果要在后续的测试或工程阶段分析结果,请将结果导出到结果文件。
其他 - 结果并非仿真结果、并非来自单元测试、来自已禁用的测试,或者只是报告。仪表盘并未将这些结果用于该单元的度量中。
如果测试结果无法追溯到某个单元,则会出现在 追踪问题 文件夹中。如果测试结果未出现在工件面板中,或者您在预期看到测试度量结果时没有看到,请参阅 解决缺失的工件、链接和结果。
如果您使用外部 MATLAB 函数,请参阅 外部 MATLAB 函数的控制内联。函数内联可能会导致仪表盘中覆盖率度量结果不一致。
有关仪表板如何追溯工程文件之间的依赖关系的详细信息,请参阅利用数字线程监控工件可追溯性并检测过时结果。
注意
请注意,模型覆盖率度量并未将覆盖覆盖率限定于需求。如果在测试结果中选中将覆盖率结果限定为链接需求复选框,仪表板将忽略该选择,并且不会对仪表板中显示的模型覆盖率度量结果进行范围界定。有关将覆盖率结果限定为链接需求选项的信息,请参阅 限定基于需求的测试的覆盖率 (Simulink Test)。
追踪问题
文件夹追溯问题显示仪表板尚未追溯到单元或组件的工件。使用文件夹追溯问题检查工件是否缺少到单元或组件的可追溯性。文件夹追溯问题包含子文件夹,用于帮助识别跟踪问题的类型:
意外的实现链接 - 类型为
Container或类型为Informational的需求,却具有类型为Implements的需求链接。仪表板并不期望这些链接属于类型Implements,因为容器型需求和信息型需求不会影响其所在需求集的实现和验证状态。如果不需要实现某个需求,您可以更改链接类型。例如,您可以将类型为Informational的需求更改为类型为Related to的链接。未解析和不支持的链接 - 工程内已损坏或仪表板不支持的需求链接。例如,如果模型模块实现了某个需求,但您删除了该模型模块,则该需求链接现在尚未解决。仪表盘不支持对某些工件和某些链接可追溯性分析。
未追溯的测试 - 对模型或较低级别元素(如子系统)执行的测试,这些元素不在工程路径中。
未追溯的结果 - 仪表板无法追溯到测试的结果。例如,如果一项测试产生了结果,但您删除了该测试,则仪表板无法将结果追溯到该测试。
仪表盘不支持对某些工件和某些链接可追溯性分析。如果某个工件无法追踪到某个单元或组件,请参阅 解决缺失的工件、链接和结果 中的故障排除解决方案。
工件问题
要查看分析过程中导致错误、警告和信息性消息的工件的详细信息,点击可追溯性选项卡,然后点击工具栏中的工件问题。问题在 MATLAB 会话之间仍然存在,您可以按严重性、消息、来源或消息 ID 对消息进行排序。
信息显示:
仪表板不支持的建模结构
仪表盘未追踪的链接
仪表板不支持的测试框架或用例
测试结果缺少覆盖率或仿真结果
仪表板加载时返回错误的工件
仪表板停用的模型回调信息
不在路径上且在追踪过程中未被考虑的工件
有关详细信息,请参阅在工程中查看工件问题。
工件错误
如果仪表板执行工件分析时工件返回错误,则会显示文件夹错误。以下是一些在可追溯性分析过程中工件可能返回的错误:
当可追溯性分析开始时,如果工件存在未保存的更改,则会返回错误。
如果测试结果文件是用以前版本的 Simulink 保存的,则会返回错误。
要查看仪表板在工件分析期间发现的警告和错误的详细信息,点击可追溯性选项卡,然后点击工具栏中的工件问题。打开这些工件并修复错误。仪表板顶部会显示一个横幅,表明工程和工件面板中显示的工件可追溯性已过时。点击横幅上的追溯工件按钮,刷新工程和工件面板中的数据。
诊断
如果在度量收集过程中出现错误或警告,仪表板中的诊断面板会显示诊断消息,可以帮助您识别和解决这些问题。您可以按类型过滤诊断消息,也可以从查看器中清除消息。
如果您期望某个工件对度量结果有所贡献,但它没有,请务必检查工件面板中的追溯问题文件夹。追溯问题文件夹及其子文件夹显示了仪表板无法追溯到当前工件的工件。只有与当前工件相关的工件才能对仪表板中的度量结果做出贡献。有关工件可追溯性的更多信息,请参阅 解决缺失的工件、链接和结果。