Main Content

本页的翻译已过时。点击此处可查看最新英文版本。

执行功能测试并分析测试覆盖率

功能测试从基于需求构建测试用例开始。这些测试可以涵盖设计的关键方面,并验证各个模型组件是否满足需求。测试用例包括输入、预期输出和验收标准。

通过在测试套件中收集各个测试用例,您可以系统地运行功能测试。为了检查回归,请在测试用例中添加基线标准,并以迭代方式测试模型。覆盖率测量反映这些测试覆盖模型运行范围的程度。覆盖率测量还可以帮助您添加测试和需求,以满足覆盖率目标。

使用测试用例生成逐步增加测试覆盖率

此示例说明巡航控制模型的基于功能测试的测试工作流。首先从包含链接到外部需求文档的测试的模型开始,在 Simulink® Coverage™ 中分析该模型的覆盖率,使用 Simulink Design Verifier™ 逐步增加覆盖率,并报告结果。

探查测试框架和模型

  1. 在工作文件夹中创建一个工程副本。在命令行中输入:

    path = fullfile(matlabroot,'toolbox','shared','examples',...
    'verification','src','cruise')
    run(fullfile(path,'slVerificationCruiseStart'))

  2. 打开模型和测试框架。在命令行中输入:

    open_system simulinkCruiseAddReqExample
    sltest.harness.open('simulinkCruiseAddReqExample','SafetyTest_Harness1')
  3. Test Model Against Requirements and Report Results (Simulink Test)加载测试套件,并打开 Simulink 测试管理器。在命令行中输入:

    sltest.testmanager.load('slReqTests.mldatx')
    sltest.testmanager.view

  4. 打开测试序列模块。序列会测试系统在以下情况下不啮合:

    • 踩下制动踏板

    • 速度超限

    一些测试顺序步骤链接到需求文档 simulinkCruiseChartReqs.docx

测量模型覆盖率

  1. 在 Simulink 测试管理器中,点击 slReqTests 测试文件。

  2. 要为测试文件启用覆盖率收集,请在右侧页中的 Coverage Settings 下:

    • 选择 Record coverage for referenced models

    • 使用 Coverage filter filename 指定用于覆盖率分析的覆盖率筛选器。默认设置遵循模型配置参数设置。将该字段留空不会应用任何覆盖率筛选器。

    • 选择 DecisionConditionMCDC

  3. 要运行测试,请在测试管理器工具条中,点击 Run

  4. 测试完成后,在测试管理器中选择 Results。汇总的覆盖率结果表明,示例模型实现了 50% 的决策覆盖率、41% 的条件覆盖率和 25% 的 MCDC 覆盖率。

生成测试以增加模型覆盖率

  1. 使用 Simulink Design Verifier 生成附加测试以增加模型覆盖率。在 Results and Artifacts 中,选择 slReqTests 测试文件,并打开位于右窗格中的 Aggregated Coverage Results 部分。

  2. 右键点击测试结果,然后选择 Add Tests for Missing Coverage

  3. Harness 下,选择 “Create a new harness”。

  4. 点击 OK 以使用 Simulink Design Verifier 向测试套件添加测试。待测模型必须在 MATLAB 路径上或者在工作文件夹中。

  5. 在测试管理器工具条中,点击 Run 以执行更新后的测试套件。测试结果现在包含新增的测试用例输入的覆盖率,实现了更高的模型覆盖率。

相关主题