主要内容

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

功能测试从基于需求构建测试用例开始。这些测试涵盖设计的关键方面,并验证各个模型组件是否满足需求。用于功能测试的测试用例包括输入、预期输出和验收标准。此外,如果将功能测试用例存储在测试套件中,可以系统地运行功能测试。

您还可以运行回归测试并测量不同级别的覆盖率,以进一步完善测试。要检查回归,可以在测试用例中添加基线标准,并将模型输出与一组基线数据进行比较。然后,可以对模型进行覆盖率测量,以确定测试对模型的执行程度,并确定是否需要添加测试或需求,以达到覆盖率目标。

The functional testing process. You define tests and run tests. Then you collect test coverage or refine your model. After you collect coverage, you define additional requirements or report the test results.

此示例说明如何对巡航控制模型执行基于需求的测试。在此示例中,您:

  1. 运行测试。

  2. 使用 Simulink® Coverage™ 确定测试覆盖率。

  3. 使用 Simulink Design Verifier™ 生成更多测试,从而提高覆盖率。

  4. 报告结果。

打开测试框架和模型

  1. 打开示例工程:

    openExample("shared_vnv/CruiseControlVerificationProjectExample");
    pr = openProject("SimulinkVerificationCruise");

  2. 打开模型和测试框架。

    open_system("simulinkCruiseAddReqExample");
    sltest.harness.open("simulinkCruiseAddReqExample","SafetyTest_Harness1")
  3. 在 Simulink 测试管理器中打开测试文件 slReqTests.mldatx

    pf = fullfile(pr.RootFolder,"tests","slReqTests.mldatx");
    tf = sltest.testmanager.TestFile(pf);
    sltest.testmanager.view

  4. 在测试框架中,打开 Test Sequence 模块。序列验证系统在出现以下任一情况时不啮合:

    • 踩下制动踏板。

    • 速度超限。

测量模型覆盖率

  1. 在 Simulink 测试管理器中,选择 slReqTests 测试文件。

  2. 要启用覆盖率收集,请在右窗格中展开覆盖率设置,然后展开要收集的覆盖率

    • 选择记录引用模型的覆盖率

    • 选择决策条件MCDC

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

  4. 测试完成后,点击结果和工件。在结果和工件窗格中,选择结果。右窗格会在聚合覆盖率结果部分显示覆盖率结果。该测试实现了 50% 的决策覆盖率、41% 的条件覆盖率和 25% 的 MCDC 覆盖率。

    Coverage results

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

使用 Simulink Design Verifier 生成附加测试以增加模型覆盖率。

  1. 结果和工件中,选择 slReqTests 测试文件,并打开右窗格中的聚合覆盖率结果部分。

  2. 右键点击测试结果,然后选择针对缺失覆盖率添加测试

  3. 框架设置为创建新框架

  4. 点击确定。待测模型必须在 MATLAB® 路径上或者在工作文件夹中。

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

另请参阅

(Simulink Test) | (Simulink Test)

主题