主要内容

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

查看工程中软件单元的代码测试活动状态

SIL 代码测试和 PIL 代码测试仪表板分析工程中的工件(如模型和测试结果),并收集度量,帮助您了解工程代码测试活动的状态。SIL 代码测试仪表板提供了软件在环 (SIL) 测试的概述,PIL 代码测试仪表板提供了处理器在环 (PIL) 测试的概述。仪表板中的每个度量都衡量代码测试质量的不同方面,并反映了行业认可的软件开发标准(如 ISO 26262 和 DO-178C)中的指导原则。在完成模型测试后,使用模型测试仪表板进行代码测试,以帮助执行软件单元及其关联代码之间的等效性测试。

通过仪表盘中的度量结果,您可以:

  • 查看软件单元的代码测试结果摘要、背靠背测试结果和代码覆盖率。

  • 查看代码测试结果与相关模型测试结果的上下文关系。

  • 查看工程中测试工件的详细信息。

  • 监测在符合 ISO 26262 和 DO-178C 等行业标准方面的进展。

  • 识别并解决工程中的问题,以达到代码测试需求。

您可以点击仪表板中的小组件来查看有关当前结果的详细信息,并使用超链接打开受影响的工件。您可以直接在仪表板中查看度量结果,生成报告以供离线查看,或者以编程方式收集度量。

本页展示了如何使用 SIL 代码测试仪表板评估 SIL 测试的状态,但您也可以按照相同的步骤在 PIL 代码测试仪表板中分析 PIL 测试。代码测试仪表板使用相同的布局,但度量结果分别来自 SIL 测试或 PIL 测试。

注意

在详细审查代码测试结果之前,请先在模型测试仪表板中审查并处理任何不合规的模型测试结果。由于模型位于生成代码的上游,因此有些代码测试问题只能在模型测试期间解决。模型测试结果是指在正常仿真模式下运行测试的结果。有关如何查看和修复模型测试结果的信息,请参阅 修复基于需求的测试问题

查看代码测试状态

您可以使用代码测试仪表板查看工程中每个软件单元的代码测试状态。

打开 SIL 代码测试或 PIL 代码测试仪表板:

  1. 打开一个工程。如果没有工程,可以直接从模型创建一个工程。有关信息,请参阅 创建工程以使用模型设计和模型测试仪表板

  2. 工程选项卡上,点击模型测试仪表板,或者在 MATLAB® 命令行窗口中输入:

    modelTestingDashboard

  3. 在工具栏的添加仪表板部分展开仪表板库,即可查看可用的仪表板。点击 SIL 代码测试打开 SIL 结果仪表板。您也可以点击 PIL 代码测试打开 PIL 结果的仪表板。

    The Add Dashboard section of the toolstrip

    SIL 代码测试仪表盘和 PIL 代码测试仪表盘是两种类型的模型测试仪表盘。

    The Model Design and Model Testing Dashboards in the dashboard gallery

仪表盘小组件显示所选软件单元的度量结果摘要。默认情况下,仪表板会打开工程面板中列出的第一个软件单元。您可以点击工程面板中的不同单元,查看该单元的模型测试结果。在这个示例中,点击单元 cc_DriverSwRequest。有关工程工件面板的更多信息,请参阅 使用仪表盘分析您的工程

以下图片展示了一个已经拥有模型测试和 SIL 测试结果的工程的度量结果。有关如何收集模型和代码测试结果以及如何解决测试问题的信息,请参阅 识别并解决代码测试结果和覆盖率中的不足之处

SIL Code Testing dashboard showing test results and coverage

审查测试状态和覆盖率结果

仪表盘分为两个主要部分,每个部分都包含显示度量结果的各个小组件:

  • 测试结果

    SIL Test Results section with widgets for Test Summary, Test Status, SIL only Test Failures, Model Test Failures, Back-to-Back Test Summary, and Back-to-Back Test Status

  • 覆盖率结果

    SIL Coverage Results section with widgets for Aggregated Coverage and Coverage Recap

要查看小组件中的度量结果信息,请将鼠标指针指向该小组件。小组件右上角出现三个点。

Test Summary widget with three dots in top-right corner

将鼠标指针指向三个点,然后点击帮助 图标,以查看有关该度量的信息以及仪表板如何计算该度量结果。

Test Summary widget with Help icon in top-right corner

要查看更详细的度量结果,点击小组件本身。表格列出了单元中的工件及其度量结果。表格中提供了超链接,可以打开每个工件,以便查看工件的详细信息并解决测试质量问题。

评估测试结果

测试结果部分显示了代码测试结果的度量结果。有关如何收集和修复代码测试结果的信息,请参阅 识别并解决代码测试结果和覆盖率中的不足之处评估模型与代码覆盖率之间的差异 (Simulink Coverage)

测试摘要

代码测试结果要符合要求,100% 的代码测试必须通过。

您可以在测试摘要小组件中查看测试通过的百分比。

Test Summary widget showing that 100% of tests passed

如果通过的测试少于 100%,则小组件会显示红色不合规叠加图标 。使用测试状态仅限 SIL模型小组件来识别和修复测试问题。

测试状态

如果某些测试未通过,您可以使用测试状态小组件来识别哪些具体的测试未通过。测试状态小组件显示通过的测试数量、失败的测试数量、未测试的测试数量、未运行的测试数量或已禁用的测试数量。

Test Status widget showing 5 passed tests, 1 failed test, and 1 disabled test

您可以点击小组件中的图标,详细查看度量结果。例如,如果您点击失败 旁边的图标,您可以查看详细的度量结果。结果包括一个表格,其中列出了单元中失败的测试,并提供了打开相关测试文件的超链接。

为了解决这些问题,运行尚未运行的测试,确认已禁用的测试可以保持禁用状态,并处理失败或未测试的测试。

测试失败

使用测试失败组来识别哪些故障仅在模型测试或代码测试中发生。该组包含两个组件:

  • 仅限 SIL - 模型测试期间通过但在 SIL 测试期间失败的测试数量。如果仅限 SIL 小组件显示的数字大于 0,则在分析覆盖率结果之前,先调查并修复代码测试失败。

  • 模型 - 模型测试期间失败的测试数量。如果模型小组件显示的数字大于 0,请使用模型测试仪表板调查并修复该问题。您应该尝试通过模型测试而不是代码测试来解决仅模型本身存在的故障。

Test Failures group with SIL only widget showing 0 test failures and Model widget showing 1 test failure

背靠背测试总结

对于软件单元中的每个测试,仪表板会将正常模式和 SIL 或 PIL 模式的测试运行进行比较,以确定模型和生成代码的背靠背测试状态。

要使连续测试结果符合要求,100% 的测试必须通过。您可以在背靠背测试摘要小组件中查看测试通过的百分比。

Back-to-Back Test Summary showing 100% of tests passed back-to-back testing

如果通过的测试少于 100%,则小组件会显示红色不合规叠加图标

连续测试状态

如果您有测试未能通过连续测试,您可以使用背靠背测试状态小组件来识别哪些具体的测试没有通过。该小组件显示了通过、失败或未连续运行的测试数量。

Back-to-Back Test Status widget showing 5 tests passed, 1 test failed, and 1 test has not run back-to-back

您可以点击小组件中的图标,详细查看度量结果。例如,如果您点击未运行 旁边的图标,您可以查看详细的度量结果。结果包括一个表格,其中列出了单元中尚未运行的测试,并提供了打开相关测试文件的超链接。

为了解决这些问题,请确保在两种仿真模式(正常模式和 SIL 或 PIL 模式)下运行测试,并处理失败或未测试的测试。

分析覆盖率结果

覆盖率结果部分显示了代码覆盖率结果的度量结果。有关如何收集和修复代码覆盖率结果的信息,请参阅 识别并解决代码测试结果和覆盖率中的不足之处

汇总覆盖率

为了使代码覆盖率符合要求,必须满足单元测试要求的覆盖率类型,并达到 100% 的汇总覆盖率。要确定所需的覆盖率类型,请考虑软件单元的安全级别。如果代码测试实现了覆盖率,或者使用覆盖率过滤器证明了覆盖率的合理性,则仪表板会将覆盖率视为已完成

您可以在聚合覆盖率小组件中查看单元的汇总语句、决策、条件、MC/DC、函数调用和函数覆盖率。

Aggregated Coverage widget showing a bar chart with a bar for each coverage type

如果覆盖率类型覆盖率低于 100%,则小组件会显示红色不合规叠加图标 。使用覆盖率摘要小组件来识别和修复覆盖率问题。

覆盖率概要

使用覆盖率摘要小组件查看模型和代码测试的合理且完整的覆盖率。如果覆盖率已实现或得到证明,则仪表盘会将覆盖率视为已完成

Coverage Recap widget showing the justified and completed coverage for the different coverage types

使用此小组件可以帮助您识别模型和代码测试结果中的问题。例如:

  • 您可以找出在模型测试期间已经证明合理,但在 SIL 代码测试期间没有申述的测试。

  • 如果在模型测试期间整数溢出覆盖率存在缺口,则需要返回并解决模型测试中的该缺口。使用模型测试仪表板来识别和修复缺失覆盖率的根源。您可以在模型测试仪表板的聚合覆盖率小组件中查看整数溢出覆盖率。

另请参阅

主题