主要内容

本页采用了机器翻译。点击此处可查看英文原文。

工程测试状态总结

当您设计复杂的系统(例如巡航控制系统)时,您的团队会管理测试和需求可追溯性,以确保您的模型能够实现您的需求,并且您的需求能够测试您的实现。为了帮助您的团队管理和评估工程中这些目标的进展情况,您可以使用工程模型测试仪表板。

工程模型测试仪表板提供了整个工程的测试状态和需求可追溯性的摘要。您可以利用度量结果来识别差距,例如缺少可追溯性链接和测试不足。通过仪表板,您可以直接导航到受影响的工件,并在相应的开发工具中打开它们以进行进一步的完善。此外,您可以使用工程模型测试仪表板中的链接打开相关的模型测试、SIL 代码测试和 PIL 代码测试仪表板。

当您对工件进行更改时,仪表板可以自动检测到更改并识别过时的度量结果。您可以逐步重新收集这些度量,以确保您的团队掌握最新的工程工件信息,并了解工程的整体状态,从而帮助您的团队保持高质量的测试标准,并支持遵守行业规范和规范。

打开工程和仪表盘

在设计系统时,您需要管理许多不同类型的工件,包括需求、模型、测试和结果。为了组织这些工件并定义仪表板度量分析的工件范围,您需要将工件放在一个工程中。在这个示例中,您将使用巡航控制系统的仪表板示例工程。有关详细信息,请参阅创建工程以使用模型设计和模型测试仪表板

1.打开一个工程,作为巡航控制系统的示例,模拟自动控制车辆速度。该工程包含模型巡航控制系统内部特定行为的单元,以及将这些底层单元集成在一起的组件。巡航控制系统根据需求中规定的具体条件来管理车辆速度。该工程包括系统需求规范以及巡航控制对驾驶员输入的响应和系统行为的测试。

openProject("cc_CruiseControl");

2.点击工程选项卡,然后点击模型测试仪表板,打开工程模型测试仪表板。

打开仪表板时,仪表板会分析工程文件夹中的工件,识别潜在的软件单元和组件,并将基于需求的测试工件追溯到其关联的单元和组件。

如果您已经打开了仪表板应用程序,则可以从仪表板选项卡中打开“工程模型测试”仪表板,方法是点击工具栏仪表板库中的工程模型测试

Project Model Testing button in the Add Dashboard section of the Dashboard toolstrip

该仪表盘收集工程中各单元的工程模型测试度量结果。例如,在示例巡航控制工程中,仪表板收集单位 cc_ControlModecc_DriverSwRequestcc_LightControlcc_ThrottleController 的度量结果。收集度量数据需要获得支持底层工件的产品的许可证,例如 Requirements Toolbox™ 或 Simulink® Test™。收集度量结果后,您只需要一个 Simulink Check™ 许可证即可查看结果。

查看测试总体状态

工程模型测试仪表板可以帮助您查看工程中模型、SIL 代码和 PIL 代码测试的当前状态,识别测试和需求可追溯性方面的差距,并直接导航到需要开发的工件。

查看测试状态

要查看工程中各单元的测试状态概览,可以使用测试状态小组件。

测试状态小组件会显示一个环形图,汇总工程中唯一测试的数量,并按其状态进行分类:

  • 通过 – 测试运行并返回通过结果。

  • 失败 – 测试运行,但返回失败结果。

  • 未经测试 – 测试已运行,但未进行验证。如果未指定 verify 语句或其他准则,或者指定了准则但未执行,则会发生这种情况。

  • 未运行 – 测试尚未运行。

  • 已禁用 – 该测试被有意排除在执行之外,不会运行。

当您运行包含验证语句或其他准则的测试,并且这些语句和准则没有返回通过或失败的结果时,整个测试将返回未测试的结果。该仪表板分析工程中的测试,以确定哪些测试直接影响组件测试的质量,哪些测试用于整体工程测试。如果您发现很多测试尚未运行,请务必查看仪表板将哪些测试归类为组件测试。组件测试在组件的同一执行上下文中评估组件设计或设计的一部分。这些测试有助于评估组件的质量。

您可以点击仪表盘中的小组件,直接导航至符合这些准则的测试。要了解哪些工件对度量有贡献以及度量如何计算度量结果,您可以指向小组件并使用帮助查看与该小组件关联的度量的文档。

目前,示例工程中的测试尚未运行。

1.点击未运行旁边的蓝色方块,查看有关未运行测试的更多信息。仪表板会打开一个度量详情表格,其中包含指向测试和源测试文件的超链接。在度量详情中,您可以点击超链接直接在测试管理器中打开测试或测试文件。

2.打开并运行 cc_DriverSwRequest 模型的测试。在度量详情来源列中,点击 cc_DriverSwRequest_Tests.mldatx 链接。测试文件在测试管理器中打开。在测试浏览器中,右键点击并运行 cc_DriverSwRequest_Tests

3.测试运行完毕后,返回工程模型测试仪表板。仪表盘会自动检测新的测试结果,并显示警告横幅,提示度量结果已过时。点击收集以更新当前度量详情表中受影响的结果。cc_DriverSwRequest 的测试不再出现在度量详情中未运行的测试列表中。

4.使用仪表板顶部的面包屑导航,从度量详情返回到 cc_CruiseControl 工程的主要工程度量结果。

5.点击警告横幅中的收集,更新“工程模型测试”整体仪表板中受影响的度量结果。在测试状态小组件中,环形图显示了您在实现工程测试目标方面取得的进展。目前,10 项测试通过,42 项测试尚未运行。通常情况下,您需要执行工程中的每个测试。在这个示例中,其余的测试都不要运行。

6.查看各单元测试的通过率。在仪表板底部的组件测试状态部分,可以看到模型测试通过列。包含测试的组件会显示测试通过的百分比。例如,cc_DriverSwRequest 模型现在 100% 的测试都通过了。没有组件测试可以追溯到它们的组件显示 N/A

7.查看 cc_DriverSwRequest 模型、测试和结果之间的可追溯性。在工具栏中,点击可追溯性选项卡,然后在跟踪视图库中,点击测试和结果跟踪视图。在工程面板中,点击 cc_DriverSwRequest 以查看跟踪到 cc_DriverSwRequest 的测试和结果工件。

在这个巡航控制系统示例中,车辆驾驶员可以使用五个按钮来控制巡航控制。这些按钮控制巡航控制系统的激活、取消和车辆速度设置。驾驶员切换请求系统确保如果驾驶员使用这些按钮请求更改巡航控制模式,系统只会发送一次请求,并允许优先级更高的命令(例如取消巡航控制)覆盖优先级较低的请求。cc_DriverSwRequest 模型包含用于验证驾驶员请求功能性的测试,以确保巡航控制系统能够按照需求处理驾驶员的输入。例如,有驱动程序切换请求测试,用于评估为满足需求而实现的功能,例如确保系统检测到短按和长按按钮以及处理来自驱动程序的不同优先级请求。通过运行这些测试,模型开发人员和测试工程师可以验证模型是否按预期解释和处理驾驶员输入,从而提供驾驶员与车辆巡航控制系统之间预期的交互。

在跟踪视图中,您可以查看单元的测试文件、测试套件、测试用例以及这些测试与其各个测试结果之间的关联。跟踪视图还包括与影响测试覆盖率的其他工件(例如覆盖率过滤器)的关系。

您可以通过将鼠标指针指向跟踪视图工作区中的工件来查看有关该工件的更多信息。您还可以使用工具栏中的布局菜单自动重新排列工件。Cluster 布局选项有助于可视化具有复杂层次结构的大型工程。

8.在跟踪视图工作区上方,点击工程模型测试 - cc_CruiseControl 选项卡,返回到工程模型测试仪表板。

查看测试用例和结果

要了解工程中的测试用例类型或查找使用特定标签的测试用例,您可以使用测试分解小组件。该小组件按类型和标签对测试用例进行分类,以帮助您确定工程的测试方法和需要审查的测试用例。单个组件如下:

  • 按类型划分的测试用例显示了工程中仿真、等效性和基线测试用例的数量。要查看每个类别中包含哪些具体测试用例,您可以点击表格中的相应行。

  • 带有标签的测试用例按每个唯一的标签对测试用例进行分类。点击带有相应标签名称的行,即可查看每个类别中包含的具体测试用例。您可以使用测试管理器应用程序为测试用例添加标签。此小组件可帮助您按开发状态或您定义的其他工作流程来组织、过滤和跟踪测试用例。

如果您需要跟踪已导出的测试结果,可以使用已导出的测试结果小组件。运行测试用例并生成测试结果后,您可以将这些测试结果导出到单独的文件 (MLDATX) 中。导出的测试结果小组件统计工程中导出的测试结果文件的数量。您可以使用此小组件来跟踪您已导出的测试结果。

识别影响可追溯性的工件问题

要识别和解决可能影响度量结果的潜在问题,请查看工件问题小组件。该组件会突出显示与工程工件相关的错误数量,例如模型回调错误。解决这些问题可以帮助您在仪表板中正确反映工件和度量结果的最新状态和进度。打开仪表板时,数字线程会分析工程并收集有关工程工件、工件结构体以及工件(例如测试和需求)之间的可追溯性关系的信息。如果在工件分析期间工件生成警告或错误,仪表板会将其视为工件问题。工程工件问题可能导致度量结果不准确。

您可以点击工件问题小组件来调查工件问题。工件问题选项卡显示工件问题的消息、来源和严重性。如果出现警告或错误,“工件问题”选项卡会显示每个问题的详细信息。否则,您会看到一张空表格。

如果仪表板不支持特定的工件、建模结构或关系,工件会生成警告。例如,仪表盘在模型加载或关闭时不会执行回调。如果一个模型依赖于回调函数链接到另一个工件,那么当仪表板运行工件可追溯性分析时,该工件不会链接到该模型。例如,假设您工程中的某个模型使用了回调函数。当仪表板执行工件分析时,工件会返回警告,因为仪表板在加载模型进行分析时不会执行模型加载回调。

如果仪表板无法正确跟踪工件、分析工件或收集度量,工件会生成错误。例如,在重新保存测试用例之前,仪表板无法分析已损坏的测试用例。

修复工件问题,以避免度量结果不正确。

查看需求与测试之间的可追溯性

为了确保工程需求有相应的测试,您可以使用需求与测试测试与需求的刻度盘小组件。这些小组件显示了工程中已实现的功能性需求与组件测试之间的联系。这些度量结果显示了工程中各单元的平均百分比。

该仪表板分析工程中的需求,以确定哪些需求直接有助于组件的功能实现,哪些需求是针对整个工程的。该组件用于:

  • 需求与测试确定每个功能需求是否与工程中的至少一个测试用例或测试迭代相关联。

  • 带有需求的测试确定每个测试用例或测试迭代是否与至少一个功能需求关联,链接类型为 Verify

对于本示例工程,需求位于驾驶辅助规范参考工程的接口控制文档、系统需求和软件需求文件中。通过验证您的需求和测试是否正确关联,您可以评估模型的需求可追溯性和关联性状态,并维护跟踪已实现和功能性需求的行业标准。

验证或测试工程师需要为该模型开发测试用例。要查看现有软件需求与设计中的实现之间的关系,您可以使用需求到设计跟踪视图。

1.在工具栏中,点击可追溯性选项卡,点击设计需求跟踪视图,然后在工程面板中,点击“cc_ThrottleController”。当系统非活动时,油门控制器需要保持车辆速度控制或允许手动油门控制。跟踪视图显示了模型中各种需求和子系统之间的关系。跟踪视图显示了各个需求、与单元主模块的链接、底层子系统以及所涉及的数据字典。

2.在跟踪视图的工具栏中,搜索 FeedThrough。跟踪视图突出显示了子系统。

油门控制器模型包含一个 FeedThrough 子系统,当系统非活动时,该子系统可保持油门信号的完整性。当巡航控制系统不在 ACTIVE 模式下时,油门控制器必须直接传递油门值,不得进行任何修改。该单元的其他需求适用于 Throttle_PI_Controller 子系统,该子系统应用控制算法来调整油门值,以确保该值不会超过最大或最小阈值。当巡航控制系统处于活动时,系统必须计算出合适的油门值,以使油门值保持在预定义的限度内。您可以在跟踪视图中看到与这些需求相关的链接。这些需求需要通过测试来验证油门控制器是否实现了这些功能行为。

Search results for the term "feedthrough" inside the cc_ThrottleController trace view graph

在这个示例工程中,油门控制器模型使用来自数据字典文件 cc_CruiseControlData.sldd 的巡航控制数据,该文件需要来自基本配置和驾驶辅助规范数据字典的信息。您可以看到这些数据字典以黄色显示,它们与主模块相连。如果您将箭头指向连接主数据字典和主模块的箭头,您可以看到这些工件之间的可追溯性关系是 REQUIRES 关系。

3.点击工件并检查工件邻居面板,即可查看直接工件关系,例如数据字典和模型模块之间的直接连接。要查看有关工件的详细信息,请在跟踪视图中指向该工件。

Artifact neighbors for the library data dictionary of the cc_ThrottleController model

识别并解决模型和代码测试中的不足

工程模型测试仪表板概述了工程中各单元的模型和代码测试状态。当您在模型测试、代码测试和需求可追溯性中发现问题时,可以使用仪表板中的链接直接导航到底层模型测试、SIL 代码测试和 PIL 代码测试仪表板及其详细的度量结果。

仪表板的组件测试状态部分的工件列显示了工程中有效的 Units。如果您在工件列中看不到您的模型,请确保该模型是有效的单元。要从仪表板中包含或排除某些模型,您可以通过在工程中标记哪些模型是单元,并配置仪表板以识别该标签来指定这些模型,如 将模型指定为组件和单元 所示。

在开发模型和测试时,您可以使用模型测试、SIL 代码测试和 PIL 代码测试仪表板中的详细度量结果来评估单个模型的模型和代码测试进度。您可以通过点击组件测试状态表中的单元超链接,打开特定单元的模型测试、SIL 代码测试和 PIL 代码测试仪表板。模型测试通过列中的链接打开该工件的模型测试仪表板,SIL 测试通过列包含指向 SIL 代码测试仪表板的链接,PIL 测试通过列包含指向 PIL 代码测试仪表板的链接。有关模型测试仪表板的更多信息,请参阅 使用模型测试仪表板探索测试活动的状态和质量。有关 SIL 代码测试和 PIL 代码测试仪表板的更多信息,请参阅 查看工程中软件单元的代码测试活动状态

另请参阅

主题