使用模型测试仪表板探索测试活动的状态和质量
模型测试仪表板收集工程中模型设计和测试工件的度量数据,以帮助您评估基于需求的模型测试的状态和质量。
仪表盘分析工程中的各种工件,例如需求、模型和测试结果。仪表板中的每个度量模型测试质量的不同方面,并反映了行业认可的软件开发标准(如 ISO 26262 和 DO-178C)中的指导原则。
本示例展示了如何使用模型测试仪表板评估单元的测试状态。如果工程中的需求、模型或测试发生变化,请使用仪表板评估对测试的影响,并更新工件以实现测试目标。收集每个度量的结果需要 Simulink Check™、Requirements Toolbox™、Simulink Coverage™ 和 Simulink Test™ 的许可证。如果已收集度量结果,则查看结果只需要 Simulink Check 许可证。有关详细信息,请参阅模型测试度量。

探索工程的测试工件和度量
1.打开包含模型和测试工件的工程。对于此示例,在 MATLAB® 命令行窗口中输入:
openProject("cc_CruiseControl");2.在工程选项卡上,点击模型测试仪表板以打开仪表板窗口。
3.点击工具栏仪表板库中的模型测试,打开模型测试仪表板。
首次打开工程仪表板时,仪表板会识别工程中的工件并收集可追溯性信息。工程面板显示当前工程中与当前仪表板兼容的工件。

4.在“工程”面板中选择 cc_DriverSwRequest,即可收集和查看单元 cc_DriverSwRequest 的度量结果。仪表板显示您在工程面板中选择的单位的度量结果。
当您最初在工程面板中选择一个单元时,仪表板会自动收集该单元的度量结果。要收集工程中每个单元的度量,点击收集>全部收集。如果您之前收集过某个单元的度量数据,则仪表板会填充现有数据。
查看设计和测试工件的可追溯性
工件面板显示与该单元相关的工件。展开文件夹和子文件夹,查看工程中与在工程面板中选择的单元相关的工件。要查看文件夹或子文件夹的更多信息,点击三个点,然后点击帮助图标
(如果可用)。
追踪到的工件包括:
功能性需求 - 类型
Functional的需求,这些需求要么由该单元实现,要么由该单元的上游实现。使用 Requirements Toolbox 在需求文件 (.slreqx) 中创建或导入需求。设计工件 - 包含您要测试的单元以及模型使用的库、数据字典和其他设计工件的模型文件。
测试 - 可追溯到单元的测试和测试框架。使用 Simulink Test 创建测试。测试可以是测试用例中的一次测试迭代,也可以是不包含迭代的测试用例。
测试结果 - 该单元的测试结果。仪表盘显示了最新的测试结果。
如果存在意外的需求链接、损坏或仪表板不支持的需求链接,或者仪表板无法将工件追溯到某个单元,则工件会出现在跟踪问题文件夹下。该文件夹包含缺乏可追溯性的工件和仪表板无法追踪的工件。如果在可追溯性分析过程中某个工件产生错误,它将出现在错误文件夹下。有关工件跟踪问题和错误的更多信息,请参阅 追溯工件至单位和组件。
导航至取消开关检测的需求工件。展开 cc_DriverSwRequest > 功能性需求 > 已实现 > cc_SoftwareReqs.slreqx 并选择需求 取消开关检测 。要查看从工程根目录到工件的路径,点击工件名称右侧的三个点。您可以使用搜索栏右侧的菜单按钮
来折叠或展开工件列表,或者恢复工件列表的默认视图。
有关仪表板如何跟踪工件面板中显示的工件的更多信息,请参阅在仪表板中管理工程工件以进行分析。
查看单位的度量结果
您可以收集和查看出现在工程面板中的每个单元的模型测试度量结果。要查看单元 cc_DriverSwRequest 的结果,请在工程面板中点击 cc_DriverSwRequest。点击某个单元后,仪表盘会显示该单元的模型测试信息。仪表盘标签页顶部显示单元名称、数据收集时间戳和收集数据的用户名。
如果您收集结果,然后对工程中的工件进行更改,仪表板会警告您刷新仪表板,并在可能显示过时数据的组件上显示“过时”图标
。
![]()
当您看到警告横幅时,请点击收集按钮刷新仪表板。对于本例中的单位,仪表板中的度量结果并未过时。
仪表盘小组件汇总了度量数据结果,并显示了您可以解决的测试问题,例如:
需求和测试之间缺乏可追溯性
测试或需求中,需求与测试之间的链接数量过多。
测试失败或已禁用
缺少模型覆盖率
您可以使用模型测试仪表板中的叠加层来查看小组件的度量结果是否合规、不合规,或者生成警告,提示应审查度量结果。如果结果显示完全可追溯性、测试完成或模型覆盖率,则结果符合要求。该叠加层会显示在包含该类别结果的小组件上。您可以在仪表盘右上角看到每个合规类别中的小组件总数。
要查看度量的合规性阈值,请将鼠标悬停在叠加图标上。

您可以通过在仪表板左上角选择阈值设置来控制仪表板中显示哪些类型的合规性叠加层。

阈值设置允许您在以下选项中进行选择:
无阈值 - 仪表板不显示合规性叠加层。
无需求测试 - 仪表板仅显示测试度量的合规性叠加层
基于需求的测试 - 该仪表板显示了需求度量和测试度量的合规性叠加层。
默认情况下,仪表板会显示需求度量和测试度量的合规性叠加层。您还可以通过点击工具栏中叠加层部分中的选定类别来隐藏叠加层图标。小组件会根据底层度量的合规性阈值显示为合规或不合规。有关每项度量的合规性阈值的更多信息,请参阅 模型测试度量。
要更详细地探索数据,点击单个度量小组件以打开度量详情。对于选定的度量,表格会显示每个工件的度量值。表格中提供了打开工件的超链接,以便您可以获取详细结果并修复有问题的工件。在浏览表格时,请注意您可以使用列标题中的选项对结果进行排序和过滤。
评估需求的测试和可追溯性
衡量测试质量的标准之一是各项需求与验证这些要求的测试之间的可追溯性。要评估测试和需求的可追溯性,请使用仪表板的测试分析部分中的度量数据。通过使用小组件中汇总的数据,您可以快速发现需求和测试中的问题。点击小组件即可查看包含详细结果的表格以及打开工件的链接。
需求缺少测试
在与测试相关的需求部分中,未链接小组件指示有多少需求缺少与测试的链接。为了解决未关联的需求,创建测试来验证每个需求,并将这些测试与需求关联起来。带有测试的需求仪表小组件显示链接进度,以具有测试的需求百分比表示。
点击该部分中的任何小组件,即可在与测试相关的需求表中查看详细结果。对于每个需求工件,该表显示包含该需求的源文件,以及该需求是否与至少一个测试相关联。点击未链接小组件时,表格将被过滤,仅显示缺少测试链接的需求。

测试数量不成比例的需求
每个需求的测试部分总结了与每个需求关联的测试数量的分布情况。对于每个值,一个彩色方框表示与该测试数量相关的需求数量。颜色越深表示需求越高。如果一个需求包含太多测试,则该需求可能过于宽泛,您可能需要将其分解为多个更细粒度的需求,并将每个需求链接到相应的测试。如果某个需求对应的测试用例太少,请考虑添加更多测试用例并将其链接到该需求。
要查看具有特定数量测试的需求,点击相应的数字以打开过滤后的每个需求的测试表格。对于每个需求工件,该表显示了包含该需求的源文件以及链接的测试数量。要查看每个需求的结果,请在链接测试列中,点击过滤器图标,然后选择清除过滤器。

测试缺少需求
在与需求关联的测试部分中,未关联小组件指示有多少测试未与需求关联。要解决未链接的测试,请从这些测试添加指向它们所验证的需求的链接。与需求的测试计量小组件显示链接进度,以链接到需求的测试百分比表示。
点击该部分中的任何小组件,即可在与需求相关的测试表中查看详细结果。对于每个测试工件,该表显示包含测试的源文件以及该测试是否链接到至少一个需求。当您点击未链接小组件时,表格将被过滤,仅显示缺少与需求链接的测试。

测试需求数量不成比例地偏高
每个测试的需求小组件汇总了与每个测试相关的需求数量的分布情况。对于每个值,一个彩色方框表示与该测试数量相关的需求数量。颜色越深表示测试次数越多。如果一项测试的需求过多或过少,则调查该测试的失败原因可能会更加困难,您可能需要更改测试或需求,以便更容易跟踪它们。例如,如果一个测试验证的需求比其他测试多得多,可以考虑将其拆分成多个较小的测试,并将它们与需求关联起来。
要查看具有特定数量需求的测试,点击相应的方框以打开每个测试的需求表格。对于每个测试工件,该表显示了包含测试的源文件和链接的需求数量。要查看每个测试的结果,请在关联需求列中,点击过滤器图标,然后选择清除过滤器。

某一类型测试数量过多
使用测试分解来决定是否要向工程中添加特定类型或带有特定标签的测试。
组件小组件显示有多少测试对单元的度量结果做出贡献。要查看哪些测试是组件测试,点击组件小组件。
独立小组件显示有多少测试对度量结果没有贡献。要查看哪些测试是独立测试,点击独立小组件。独立测试可以独立于组件执行,并且可以根据测试框架中指定的条件表现出不同的行为。因此,这些测试并不能明确表明组件测试的质量,也不会对模型测试仪表板中的其他度量结果做出贡献。独立测试包括对库、子系统引用和虚拟子系统的测试。
按类型测试用例和带标签的测试用例小组件显示了单元中每种类型和每个自定义标签的测试用例数量。在行业标准中,测试通常分为常规测试和稳健性测试。您可以使用 Normal 或 Robustness 标记测试用例,并使用带标签的测试用例查看每个标签的总计数。要查看某一类型的测试用例,点击按类型测试用例表中的相应行,打开测试用例类型表。对于每个测试用例工件,该表显示了包含测试的源文件和测试类型。要查看每个测试用例的结果,请在类型列中点击过滤器图标,然后选择清除过滤器。要查看带有标签的测试用例,点击带有标签的测试用例表中的相应行,打开测试用例标签表。对于每个测试用例工件,该表显示了包含测试的源文件以及测试用例上的标签。要查看每个测试用例的结果,请在标签列中,点击过滤图标,然后选择清除过滤器。

分析测试结果和覆盖率
要查看测试结果和覆盖率测量值的摘要,请使用仪表板的仿真测试结果分析部分中的小组件。利用测试结果度量查找测试和模型中的问题。利用覆盖率度量发现覆盖率差距,并添加测试来弥补缺失的覆盖率。
运行模型测试并收集仪表板度量,以检查模型测试问题。
未通过的测试
在模型测试状态部分:
失败小组件显示有多少测试失败。点击失败小组件,查看失败的测试表格。点击每个失败的测试工件的超链接,即可在测试管理器中打开它,并调查导致失败的工件。修复工件,重新运行测试,并导出结果。
未测试小组件指示有多少测试没有通过/失败准则,例如验证语句、自定义准则、基线准则以及逻辑或时序评估。如果测试不包含通过/失败准则,则它无法验证所关联需求的功能。在测试中添加一个或多个通过/失败准则,以帮助验证模型的功能。
未运行和已禁用小组件指示该单元有多少测试尚未运行。
您可以点击小组件查看经过过滤的度量结果表格,其中包含指向测试和结果源文件的超链接。该仪表盘仅分析与每次测试相关的最新测试结果。

缺失覆盖率
模型覆盖率小节显示是否存在测试未覆盖的模型元素。如果其中一种覆盖率类型的覆盖率低于 100%,您可以点击仪表板小组件来调查覆盖率差距。添加测试以弥补不足或申述无需涵盖的内容的合理性。然后再次运行测试并导出结果。有关覆盖率申述的更多信息,请参阅修复基于需求的测试问题。
要查看某一类型覆盖率范围的详细结果,点击相应的栏目。对于模型和测试工件,该表显示了源文件以及已达到的和合理的覆盖率。

总体覆盖率来源
已实现覆盖率小节显示了总体已实现覆盖率的来源:
基于需求的测试部分标识了通过基于需求的测试实现的总体覆盖率的百分比。基于需求的测试是指与设计中的至少一个需求相关联的测试。将测试与需求关联起来,就能在测试和测试所验证的需求之间建立可追溯性。如果不将测试与需求关联起来,就不清楚该测试验证的是设计的哪个方面。如果其中一种覆盖率类型显示,来自基于需求的测试的总体覆盖率不足 100%,则添加从相关测试到它们所验证的需求的链接。
单元边界测试部分标识了单元边界测试所占总覆盖率的百分比。单元边界测试是测试整个单元的测试。在单元边界上执行测试时,测试可以访问单元设计的整个上下文。如果只测试设计中的底层子元素,则测试可能无法捕捉到这些子元素在整个单元上下文中的实际功能。子元素的类型包括子系统、子系统引用、库子系统和模型引用。如果其中一种覆盖率类型显示,单元边界测试所达到的总体覆盖率不足 100%,则应考虑添加测试整个单元的测试,或者重新考虑单元模型定义。

行业认可的软件开发标准建议使用基于需求的单元边界测试来确认覆盖率的完整性。有关详细信息,请参阅在模型测试仪表板中监控底层测试结果。