增加模型的测试覆盖率
此示例说明如何通过生成测试输入增加模型的测试覆盖率。
如果您的测试未实现完整的模型覆盖率,您可以使用 Simulink® Design Verifier™ 来生成测试输入,从而增加覆盖率。
此示例说明如何在初始测试用例的基础上进一步增加测试覆盖率。您将测量测试用例的初始覆盖率。然后,生成新的测试用例,将其添加到测试套件中,运行测试,并查看聚合覆盖率。
工作流
此示例使用测试框架测试自动驾驶系统的组件。来自基础工作区的时间序列数据被映射到测试框架中的根输入端口。测试文件配置为收集覆盖率。
示例工作流如下:
测量初始测试用例的模型覆盖率。
生成附加测试以实现更高的覆盖率。
将新的测试用例添加到测试文件中。
运行所有测试用例并查看聚合覆盖率。
路径和示例文件
为示例设置路径和文件名。
rollModel = 'RollAutopilotRevised'; testHarness = 'RollReference_LoggedDataTest'; testFile = 'RollRefTest.mldatx';
运行初始测试并查看覆盖率
1.打开该测试文件。
sltest.testmanager.load(testFile); sltest.testmanager.view;

2.运行测试。在测试浏览器中,突出显示记录的数据和覆盖率测试套件。点击运行。
3.测试完成后,在测试结果中,展开覆盖率结果部分。该测试实现了对 Roll Reference 子系统的部分覆盖率。
决策覆盖率:80%
条件覆盖率:70%
MCDC:25%

生成测试以增加模型覆盖率
针对缺失覆盖率生成附加测试。
1.在“聚合覆盖率结果”部分中选择 RollAutopilotRevised/Roll Reference 行。在该表下方,点击针对缺失覆盖率添加测试。
2.在针对缺失覆盖率添加测试对话框中,设置以下选项:
框架:
RollReference_LoggedDataTest。这会将新的测试输入映射到现有测试框架。测试用例:
Create a new test case。这将使用生成的测试输入创建一个新的测试用例。测试类型:
Baseline Test。这提供了从模型中捕获用于所生成测试的基线数据输出的选项。测试文件:
RollRefTest。这会重用现有测试文件。
3.点击确定。将出现一个对话框,其中显示测试用例生成的进度。测试用例生成完成后,测试管理器中将出现一个新的测试用例。
您也可以使用 sltest.testmanager.addTestsForMissingCoverage 函数以编程方式添加测试。

运行新测试用例
1.将新的测试用例拖放到记录的数据和覆盖率测试套件中。
2.再次运行记录的数据和覆盖率测试套件。
3.仿真完成后,在结果和工件部分中,选择结果集并展开聚合覆盖率结果。测试套件实现了完整覆盖率:
决策:100%
条件:100%
MCDC:100%

另请参阅
主题
- 收集测试覆盖率
- 基于需求的测试的测试覆盖率
- 运行测试套件并解决缺失的模型覆盖率 (Simulink Coverage)
- 生成模型决策覆盖率的测试用例 (Simulink Design Verifier)