主要内容

增加模型的测试覆盖范围

通过生成测试输入来增加测试覆盖范围。

如果您的测试获得不完整的模型覆盖范围,则可以通过使用Simulink®DesignVerifier™生成测试输入来增加覆盖范围。金宝app此示例显示了如何将测试覆盖率增加到初始测试案例之外。您可以测量测试案例的初始覆盖范围。然后,您生成新的测试用例,将它们添加到测试套件中,运行测试并查看总覆盖范围。

此示例使用Simulink Desi金宝appgn验证仪和Simulink®Coverage™。

工作流程

此示例使用测试线束测试自动驾驶系统的组件。基本工作区的时间序列数据被映射到测试安全带中的根源。测试文件配置为收集覆盖范围。

示例工作流是:

  1. Measure model coverage of the initial test case.

  2. Generate additional tests to achieve greater coverage.

  3. 将新测试用例添加到测试文件中。

  4. 运行所有测试用例并查看总覆盖范围。

路径和示例文件

为示例设置路径和文件名。

RollModel ='RollAutopilotRevised';testharness ='RollReference_loggedDatatest';testfile ='Rollreftest.mldatx';

进行初始测试并进行审查覆盖范围

1. Ensure the working folder is writable.

2.打开测试文件。

sltest.testmanager.view;sltest.testmanager.load(testfile);

3.运行测试。在里面测试浏览器,突出显示记录数据和覆盖范围测试套件。Click

4.测试完成后,在test results, expand theCoverage Results部分。该测试实现了部分覆盖卷引用子系统。

  • 决策范围:80%

  • 条件覆盖范围:70%

  • MCDC 25%

生成测试以增加模型覆盖范围

为缺少覆盖范围生成其他测试。

1.在覆盖范围下方,单击添加测试以缺少覆盖范围

2.在添加测试以缺少覆盖范围对话框,设置以下选项:

  • 马具:RollReference_loggedDatatest。这将新的测试输入映射到现有的测试安全带。

  • 测试用例创建一个新的测试用例。This creates a new test case with the generated test inputs.

  • 测试类型:基线测试。这给出了从模型中捕获基线数据输出的选项。

  • 测试文件:Rollreftest。这重新使用了现有的测试文件。

3.点击OK。A dialog box shows progress of the test case generation. When test case generation is complete, a new test case appears in the Test Manager.

运行新测试用例

1.将新测试用例剪切并粘贴到记录数据和覆盖范围测试套件。

2.运行记录数据和覆盖范围再次测试套件。

3.仿真完成时,结果和工件部分,选择结果集并展开汇总结果。测试套件获得完整的覆盖范围:

  • 决定:100%

  • Condition: 100%

  • MCDC:100%

清理

Clear variables and test results, and close the model.

clearreqDocRollmodelTestfile测试topModel;sltest.testmanager.clearresults;sltest.testmanager.close;CLOSS_SYSTEM('RollAutopilotRevised',0);